일반용 버킷의 액세스 포인트를 통해 객체 업로드
일반용 버킷의 액세스 포인트를 통해 객체 업로드 (Upload an object through an access point for a general purpose bucket)
이 섹션은 AWS Management Console, AWS Command Line Interface 또는 REST API로 일반용 버킷의 액세스 포인트를 통해 객체를 업로드하는 방법을 설명해요.
출처: 문서
본문
내 AWS 계정의 액세스 포인트를 통해 객체를 업로드하려면
- AWS Management Console에 로그인하고 Amazon S3 콘솔을 엽니다.
- 페이지 위쪽의 탐색 막대에서 현재 표시된 AWS 리전의 이름을 선택해요. 그다음 액세스 포인트를 나열할 리전을 선택해요.
- 콘솔 왼쪽의 탐색 창에서 액세스 포인트(Access Points) 를 선택해요.
- (선택) 이름으로 액세스 포인트를 검색해요. 선택한 AWS 리전의 액세스 포인트만 여기에 나타나요.
- 관리하거나 사용하려는 액세스 포인트의 이름을 선택해요.
- 객체(Objects) 탭 아래에서 업로드(Upload) 를 선택해요.
- 업로드하려는 파일과 폴더를 여기에 끌어다 놓거나, 파일 추가(Add files) 나 폴더 추가(Add folder) 를 선택해요.
참고 — Amazon S3 콘솔로 업로드할 수 있는 파일의 최대 크기는 160GB예요. 160GB보다 큰 파일을 업로드하려면 AWS Command Line Interface(AWS CLI), AWS SDKs 또는 Amazon S3 REST API를 사용하세요.
- 접근 제어 목록 권한을 변경하려면 권한(Permissions) 을 선택해요.
- 접근 제어 목록(ACL) 아래에서 권한을 편집해요. 객체 접근 권한에 대한 정보는 S3 콘솔로 객체에 ACL 권한 설정을 참고하세요. 업로드하는 모든 파일에 대해 공개(전 세계 모든 사람)에게 객체에 대한 읽기 접근을 부여할 수 있어요. 하지만 공개 읽기 접근의 기본 설정을 바꾸지 않는 걸 권장해요. 공개 읽기 접근 부여는 버킷을 웹사이트로 사용하는 경우 같은 소수의 사용 사례에만 적용돼요. 객체를 업로드한 뒤에도 언제든지 객체 권한을 변경할 수 있어요.
- 다른 추가 속성을 구성하려면 속성(Properties) 을 선택해요.
- 스토리지 클래스(Storage class) 아래에서 업로드하는 파일에 대한 스토리지 클래스를 선택해요. 스토리지 클래스에 대한 자세한 내용은 Amazon S3 스토리지 클래스 이해 및 관리를 참고하세요.
- 객체의 암호화 설정을 업데이트하려면 서버 측 암호화 설정(Server-side encryption settings) 아래에서 다음을 수행해요.
- 암호화 키 지정(Specify an encryption key) 을 선택해요.
- 암호화 설정(Encryption settings) 아래에서 기본 암호화로 버킷 설정 사용(Use bucket settings for default encryption) 이나 기본 암호화로 버킷 설정 재정의(Override bucket settings for default encryption) 를 선택해요.
- 기본 암호화로 버킷 설정 재정의 를 선택했다면 다음 암호화 설정을 구성해야 해요.
- Amazon S3가 관리하는 키로 업로드된 파일을 암호화하려면 Amazon S3 관리 키(SSE-S3) 를 선택해요. 자세한 내용은 Amazon S3 관리 키 사용 시 서버 측 암호화(SSE-S3)를 참고하세요.
- AWS Key Management Service(AWS KMS)에 저장된 키로 업로드된 파일을 암호화하려면 AWS Key Management Service 키(SSE-KMS) 를 선택해요. 그런 다음 AWS KMS 키 에 대해 다음 옵션 중 하나를 선택해요.
- 사용 가능한 KMS 키 목록에서 선택하려면 내 AWS KMS 키에서 선택(Choose from your AWS KMS keys) 을 선택한 다음 사용 가능한 키 목록에서 KMS 키 를 선택해요. AWS 관리 키(
aws/s3)와 고객 관리 키가 모두 이 목록에 나타나요. 고객 관리 키에 대한 자세한 내용은 AWS Key Management Service Developer Guide의 고객 키와 AWS 키를 참고하세요. - KMS 키 ARN을 입력하려면 AWS KMS 키 ARN 입력(Enter AWS KMS key ARN) 을 선택한 다음 나타나는 필드에 KMS 키 ARN을 입력해요.
- AWS KMS 콘솔에서 새 고객 관리 키를 만들려면 KMS 키 만들기(Create a KMS key) 를 선택해요. AWS KMS 키 만들기에 대한 자세한 내용은 AWS Key Management Service Developer Guide의 키 만들기를 참고하세요.
- 사용 가능한 KMS 키 목록에서 선택하려면 내 AWS KMS 키에서 선택(Choose from your AWS KMS keys) 을 선택한 다음 사용 가능한 키 목록에서 KMS 키 를 선택해요. AWS 관리 키(
- 중요 — 버킷과 같은 AWS 리전에서 사용할 수 있는 KMS 키만 사용할 수 있어요. Amazon S3 콘솔은 버킷과 같은 리전의 처음 100개 KMS 키만 나열해요. 목록에 없는 KMS 키를 사용하려면 KMS 키 ARN을 입력해야 해요. 다른 계정이 소유한 KMS 키를 사용하려면 먼저 해당 키를 사용할 권한이 있어야 하고 KMS 키 ARN을 입력해야 해요. Amazon S3는 대칭 암호화 KMS 키만 지원하고 비대칭 KMS 키는 지원하지 않아요. 자세한 내용은 AWS Key Management Service Developer Guide의 대칭 및 비대칭 KMS 키 식별을 참고하세요.
- 추가 체크섬을 사용하려면 켜기(On) 를 선택해요. 그런 다음 체크섬 함수(Checksum function) 에서 사용할 함수를 선택해요. Amazon S3는 전체 객체를 받은 후 체크섬 값을 계산하고 저장해요. 미리 계산된 값(Precalculated value) 상자로 미리 계산된 값을 제공할 수 있어요. 제공한다면 Amazon S3는 사용자가 제공한 값을 계산한 값과 비교해요. 두 값이 일치하지 않으면 Amazon S3가 오류를 생성해요. 추가 체크섬은 데이터를 검증하는 데 사용할 체크섬 알고리즘을 지정할 수 있게 해줘요. 추가 체크섬에 대한 자세한 내용은 Amazon S3에서 객체 무결성 확인을 참고하세요.
- 업로드하는 모든 객체에 태그를 추가하려면 태그 추가(Add tag) 를 선택해요. 키(Key) 필드에 태그 이름을 입력하고 태그 값을 입력해요. 객체 태깅은 스토리지를 분류하는 방법을 제공해요. 각 태그는 키-값 쌍이에요. 키와 태그 값은 대소문자를 구분해요. 객체당 최대 10개의 태그를 가질 수 있어요. 태그 키는 최대 128자(유니코드 문자)까지, 태그 값은 최대 255자까지 될 수 있어요. 객체 태그에 대한 자세한 내용은 객체 태깅을 참고하세요.
- 메타데이터를 추가하려면 메타데이터 추가(Add metadata) 를 선택해요.
- 유형(Type) 아래에서 시스템 정의(System defined) 나 사용자 정의(User defined) 를 선택해요.
- 시스템 정의 메타데이터의 경우
Content-Type,Content-Disposition같은 일반적인 HTTP 헤더를 선택할 수 있어요. 시스템 정의 메타데이터 목록과 값을 추가할 수 있는지에 대한 정보는 시스템 정의 객체 메타데이터를 참고하세요.x-amz-meta-접두사로 시작하는 메타데이터는 사용자 정의 메타데이터로 취급돼요. 사용자 정의 메타데이터는 객체와 함께 저장되며 객체를 다운로드할 때 반환돼요. 키와 값 모두 US-ASCII 표준을 준수해야 해요. 사용자 정의 메타데이터는 최대 2KB까지 될 수 있어요. 시스템 정의 및 사용자 정의 메타데이터에 대한 자세한 내용은 객체 메타데이터 작업을 참고하세요. - 키(Key) 에 대해 키를 선택해요.
- 키에 대한 값을 입력해요.
- 객체를 업로드하려면 업로드(Upload) 를 선택해요. Amazon S3가 객체를 업로드해요. 업로드가 완료되면 업로드: 상태(Upload: status) 페이지에서 성공 메시지를 볼 수 있어요.
다음 put-object 예제 명령은 AWS CLI로 액세스 포인트를 통해 객체를 업로드하는 방법을 보여줘요.
다음 명령은 my-access-point 액세스 포인트로 AWS 계정 111122223333의 puppy.jpg 객체를 업로드해요.
aws s3api put-object --bucket arn:aws:s3:AWS Region:111122223333:accesspoint/my-access-point --key puppy.jpg --body puppy.jpg
참고 — S3는 모든 액세스 포인트에 대해 액세스 포인트 별칭을 자동으로 생성하며, 객체 수준 작업을 수행하기 위해 버킷 이름이 사용되는 모든 곳에서 이 별칭을 사용할 수 있어요. 자세한 내용은 액세스 포인트 별칭을 참고하세요.
자세한 내용과 예시는 AWS CLI Command Reference의 put-object을 참고하세요.
REST API로 액세스 포인트를 통해 객체를 업로드할 수 있어요. 자세한 내용은 Amazon Simple Storage Service API Reference의 PutObject를 참고하세요.
AWS SDK for Python으로 액세스 포인트를 통해 객체를 업로드할 수 있어요.
Python
다음 예시에서 hello.txt라는 파일이 my-access-point라는 액세스 포인트로 AWS 계정 111122223333을 위해 업로드돼요.
import boto3
s3 = boto3.client('s3')
s3.upload_file('/tmp/hello.txt', 'arn:aws:s3:us-east-1:111122223333:accesspoint/my-access-point', 'hello.txt')