AWS S3에 앱 연결하기
앱을 AWS S3에 연결하여 S3 버킷의 CSV, JSON, Parquet 등 데이터 파일을 Lovable 앱에서 읽고 쓸 수 있습니다.
Amazon S3는 클라우드 객체 스토리지 서비스입니다. S3 버킷에서 CSV, JSON, Parquet 등의 데이터 파일을 직접 읽고 쓸 수 있어 외부 데이터셋, 배치 내보내기, 파일 업로드, 파일 기반 데이터 소스로 작업하는 앱을 구축할 수 있습니다.
AWS S3를 연동하면 앱에서 다음과 같은 작업이 가능합니다
- S3 버킷에서 CSV, JSON 등 데이터 파일 읽기
- S3 버킷에 파일 업로드 (쓰기 접근 활성화 시)
- 접두사 필터링으로 버킷 내 객체 목록 조회 및 탐색
- 외부 데이터 소스를 Lovable 앱에 통합
- 엔터프라이즈 데이터 파이프라인의 배치 데이터 내보내기 접근
AWS S3는 S3에 저장된 파일(분석 내보내기, 데이터 파이프라인 출력, 사용자 업로드, 공유 데이터셋 등)을 읽거나 써야 할 때 적합합니다.
주요 활용 사례 및 예시 앱
| 예시 앱 | 프롬프트 예시 | 설명 |
|---|---|---|
| 데이터 탐색기 | S3 버킷의 파일을 나열하고 CSV와 JSON 파일을 미리보기할 수 있는 데이터 탐색기를 만들어줘. | 앱을 떠나지 않고 S3에 저장된 파일을 탐색하고 미리봅니다. 버킷의 객체를 나열하고 지원되는 파일 형식의 미리보기를 인라인으로 렌더링합니다. |
| 분석 대시보드 | S3에서 매일 내보낸 CSV를 읽어 매출과 사용자 가입 차트를 보여주는 대시보드를 만들어줘. | S3 데이터 내보내기를 실시간 대시보드로 변환합니다. 버킷에서 최신 내보내기 파일을 읽어 주요 지표를 자동으로 시각화합니다. |
| 보고서 뷰어 | S3에서 JSON 보고서를 불러와 검색 가능한 테이블로 표시하는 내부 보고서 뷰어를 만들어줘. | 팀에게 보고서를 깔끔하게 탐색할 수 있는 인터페이스를 제공합니다. 특정 S3 접두사에서 JSON 파일을 가져와 필터링/정렬 가능한 테이블로 렌더링합니다. |
| 파일 다운로드 포털 | 공유 S3 버킷의 파일을 탐색하고 다운로드할 수 있는 파일 다운로드 포털을 만들어줘. | S3 위에 간단한 셀프서비스 파일 접근 레이어를 만듭니다. 사용 가능한 파일을 나열하고 AWS 콘솔 접근 없이 직접 다운로드할 수 있게 합니다. |
| 파일 업로드 앱 | 사용자가 처리를 위해 S3 버킷에 CSV 파일을 업로드할 수 있는 앱을 만들어줘. | S3로 직접 파일 업로드를 받습니다. 서명된 URL을 통해 파일을 업로드하여 사용자가 AWS 자격 증명 없이 데이터를 제출할 수 있습니다. |
| 데이터 파이프라인 모니터 | S3 버킷에서 새 데이터 파일을 확인하고 각 파이프라인이 마지막으로 출력한 시간을 보여주는 도구를 만들어줘. | 파일 최신성을 추적하여 데이터 파이프라인 상태를 모니터링합니다. 접두사별로 객체를 나열하고 마지막 수정 타임스탬프를 표시하여 오래되거나 누락된 내보내기를 발견합니다. |
AWS S3 연결 방식
각 AWS S3 연결은 하나의 S3 버킷에 연결됩니다. AWS S3를 연결할 때 해당 버킷에 대한 접근 권한이 있는 IAM 인증 정보를 제공합니다. 기본적으로 연결은 읽기 전용이지만, 파일 업로드를 허용하려면 읽기-쓰기 접근을 활성화할 수 있습니다.
Lovable 워크스페이스에서는
- AWS S3 연결을 여러 개 만들 수 있습니다
- 각 연결은 특정 버킷과 AWS 리전을 대상으로 합니다
- 각 연결은 자체 IAM 인증 정보를 사용합니다
- 같은 워크스페이스 내 여러 프로젝트가 하나의 연결을 공유할 수 있습니다
이를 통해 서로 다른 버킷(예: 운영 데이터와 스테이징 데이터)을 연결하거나 팀별로 접근을 분리할 수 있습니다.
AWS S3는 안전한 인증 정보 처리와 자동 요청 서명을 위해 Lovable의 게이트웨이 아키텍처를 사용합니다. 인증 및 사용량 제한에 대한 자세한 내용은 게이트웨이 기반 커넥터를 참고하세요.
기본적으로 각 AWS S3 연결은 읽기 전용 접근 권한을 가집니다. 파일 업로드를 활성화하려면 연결을 만들거나 편집할 때 Access type을 Read & write로 설정하세요. 쓰기 접근이 활성화되어도 커넥터는 객체 삭제를 지원하지 않습니다.
AWS S3 연결하기
워크스페이스 admin 또는 owner가 AWS S3를 연결할 수 있습니다.
연결을 만들면 해당 워크스페이스의 모든 프로젝트에서 S3 버킷을 사용할 수 있습니다.
사전 준비
AWS S3를 연결하기 전에 다음을 준비하세요
- 연결하려는 S3 버킷에 접근 가능한 AWS 계정
- 적절한 S3 권한이 있는 IAM 사용자 (아래 참고)
- 버킷 이름 및 AWS 리전
- Lovable 워크스페이스 admin 또는 owner 권한
1단계: S3 접근 IAM 사용자 생성
Lovable에서 연결을 설정하기 전에 필요한 최소 권한을 가진 IAM 사용자를 AWS에 생성합니다.
AWS IAM 콘솔 열기
AWS IAM 콘솔로 이동하여 Lovable이 사용할 새 IAM 사용자를 생성하거나 기존 사용자를 사용합니다.
S3 정책 연결
다음 권한으로 인라인 정책 또는 관리형 정책을 생성하고 연결합니다. YOUR-BUCKET-NAME을 실제 버킷 이름으로 교체하세요.
읽기 전용 접근의 경우
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucket",
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetBucketLocation"],
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME"
},
{
"Sid": "ReadObjects",
"Effect": "Allow",
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
}
]
}읽기 및 쓰기 접근의 경우 (업로드 포함)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucket",
"Effect": "Allow",
"Action": ["s3:ListBucket", "s3:GetBucketLocation"],
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME"
},
{
"Sid": "ReadWriteObjects",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
}
]
}연결하려는 버킷에만 정책 범위를 제한하세요. 와일드카드(*) 리소스 사용을 피하세요.
액세스 키 생성
IAM 사용자의 Security credentials 탭에서 액세스 키를 생성합니다. Access Key ID와 Secret Access Key를 모두 저장하세요. 다음 단계에서 필요합니다.
Secret Access Key는 한 번만 표시됩니다. 안전하게 저장하세요. 분실 시 새 액세스 키 쌍을 생성해야 합니다.
2단계: Lovable에 AWS S3 연결
AWS S3를 연결하면 버킷 내용이 워크스페이스의 모든 사용자에게 접근 가능합니다.
AWS S3 커넥터로 이동
Settings → Connectors → Shared connectors에서 AWS S3를 선택합니다.
새 연결 추가
Add connection을 클릭합니다.
연결 이름 지정
Display name에 연결 이름을 입력합니다. 예: S3 (Production Data)
연결 설정
필수 항목을 입력합니다
- Bucket name: S3 버킷 이름 (예:
my-data-bucket) - AWS region: 버킷이 위치한 리전 (예:
us-east-1) - Access key ID: 이전 단계의 IAM 액세스 키 ID
- Secret access key: 이전 단계의 IAM Secret Access Key
선택적으로 Advanced settings를 열어 다음을 설정할 수 있습니다
- Access type: Read only (기본값) 또는 Read & write를 선택합니다. Read & write를 선택하면 서명된 URL을 통한 파일 업로드가 가능합니다. 이 옵션을 활성화하려면 IAM 정책에
s3:PutObject가 포함되어 있는지 확인하세요.
연결
Connect를 클릭합니다. Lovable이 버킷 접근을 확인하여 인증 정보를 검증합니다. 검증이 성공하면 연결을 사용할 수 있습니다.
연결이 완료되면 Lovable 앱에서 S3 버킷의 데이터를 읽을 수 있습니다.
서명된 URL을 위한 CORS 설정
파일 다운로드 및 업로드는 서명된 URL을 사용하며, 브라우저가 S3에 직접 접근합니다. 이를 위해 S3 버킷에 앱의 오리진에서 오는 요청을 허용하는 CORS (Cross-Origin Resource Sharing) 정책이 설정되어 있어야 합니다. 설정하지 않으면 브라우저가 요청을 차단합니다.
버킷에 CORS를 설정하는 방법
- S3 콘솔을 열고 버킷을 선택합니다.
- **Permissions → Cross-origin resource sharing (CORS)**로 이동합니다.
- CORS 설정을 추가합니다.
https://your-app-id.lovable.app을 앱의 실제 URL로 교체하세요.
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "PUT"],
"AllowedOrigins": ["https://your-app-id.lovable.app"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3600
}
]다운로드만 필요한 경우 AllowedMethods를 ["GET"]으로 제한할 수 있습니다. 쓰기 접근이 활성화된 경우에만 "PUT"을 추가하세요. 앱의 오리진 URL은 Lovable 앱을 미리보기할 때 브라우저 주소창에서 확인할 수 있습니다.
프로덕션 환경에서 AllowedOrigins에 "*"를 사용하지 마세요. 최소 권한 원칙에 따라 앱의 특정 오리진으로 제한하세요.
제한 사항
AWS S3 커넥터는 다음을 지원하지 않습니다
- 버킷의 객체 삭제
- MinIO나 DigitalOcean Spaces 같은 AWS S3 이외의 S3 호환 서비스 연결
- 사용자별 AWS 로그인 (최종 사용자가 각자 AWS 계정을 연결)
- 실시간 이벤트 알림 또는 S3 이벤트 트리거
AWS S3 연결에서 프로젝트 연결 해제
Editor 이상 권한을 가진 사용자는 연결 자체를 삭제하지 않고 특정 프로젝트만 연결 해제할 수 있습니다. 연결은 다른 프로젝트에서 계속 사용할 수 있습니다.
연결 해제 방법
커넥터로 이동
Settings → Connectors → Shared connectors에서 **AWS S3**를 선택합니다.
연결 열기
관리할 연결을 엽니다.
프로젝트 선택
Linked projects에서 연결 해제할 프로젝트를 선택합니다.
확인
Unlink projects를 클릭하고 확인합니다.
연결 해제 후 해당 프로젝트는 이 연결을 통해 AWS S3에 접근할 수 없습니다. 필요하면 다른 연결로 다시 연결할 수 있습니다.
AWS S3 연결 삭제
워크스페이스 admin 또는 owner가 AWS S3 연결을 삭제할 수 있습니다.
연결 삭제는 영구적이며 되돌릴 수 없습니다. 연결된 모든 프로젝트에서 인증 정보가 제거되며, 새 연결을 만들기 전까지 이 연결을 사용하던 앱은 동작을 멈춥니다.
삭제 전에 Linked projects 섹션에서 현재 이 연결을 사용 중인 프로젝트를 먼저 확인하세요.
삭제 방법
커넥터로 이동
Settings → Connectors → Shared connectors에서 **AWS S3**를 선택합니다.
연결 열기
삭제할 연결을 엽니다.
연결된 프로젝트 확인
Linked projects 섹션을 확인합니다.
삭제
Delete this connection에서 Delete를 클릭하고 확인합니다.