일반용 버킷의 액세스 포인트를 통해 객체 업로드

일반용 버킷의 액세스 포인트를 통해 객체 업로드 (Upload an object through an access point for a general purpose bucket)

이 섹션은 AWS Management Console, AWS Command Line Interface 또는 REST API로 일반용 버킷의 액세스 포인트를 통해 객체를 업로드하는 방법을 설명해요.

출처: 문서

본문

내 AWS 계정의 액세스 포인트를 통해 객체를 업로드하려면

  1. AWS Management Console에 로그인하고 Amazon S3 콘솔을 엽니다.
  2. 페이지 위쪽의 탐색 막대에서 현재 표시된 AWS 리전의 이름을 선택해요. 그다음 액세스 포인트를 나열할 리전을 선택해요.
  3. 콘솔 왼쪽의 탐색 창에서 액세스 포인트(Access Points) 를 선택해요.
  4. (선택) 이름으로 액세스 포인트를 검색해요. 선택한 AWS 리전의 액세스 포인트만 여기에 나타나요.
  5. 관리하거나 사용하려는 액세스 포인트의 이름을 선택해요.
  6. 객체(Objects) 탭 아래에서 업로드(Upload) 를 선택해요.
  7. 업로드하려는 파일과 폴더를 여기에 끌어다 놓거나, 파일 추가(Add files) 나 폴더 추가(Add folder) 를 선택해요.

참고 — Amazon S3 콘솔로 업로드할 수 있는 파일의 최대 크기는 160GB예요. 160GB보다 큰 파일을 업로드하려면 AWS Command Line Interface(AWS CLI), AWS SDKs 또는 Amazon S3 REST API를 사용하세요.

  1. 접근 제어 목록 권한을 변경하려면 권한(Permissions) 을 선택해요.
  2. 접근 제어 목록(ACL) 아래에서 권한을 편집해요. 객체 접근 권한에 대한 정보는 S3 콘솔로 객체에 ACL 권한 설정을 참고하세요. 업로드하는 모든 파일에 대해 공개(전 세계 모든 사람)에게 객체에 대한 읽기 접근을 부여할 수 있어요. 하지만 공개 읽기 접근의 기본 설정을 바꾸지 않는 걸 권장해요. 공개 읽기 접근 부여는 버킷을 웹사이트로 사용하는 경우 같은 소수의 사용 사례에만 적용돼요. 객체를 업로드한 뒤에도 언제든지 객체 권한을 변경할 수 있어요.
  3. 다른 추가 속성을 구성하려면 속성(Properties) 을 선택해요.
  4. 스토리지 클래스(Storage class) 아래에서 업로드하는 파일에 대한 스토리지 클래스를 선택해요. 스토리지 클래스에 대한 자세한 내용은 Amazon S3 스토리지 클래스 이해 및 관리를 참고하세요.
  5. 객체의 암호화 설정을 업데이트하려면 서버 측 암호화 설정(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의 키 만들기를 참고하세요.
      • 중요 — 버킷과 같은 AWS 리전에서 사용할 수 있는 KMS 키만 사용할 수 있어요. Amazon S3 콘솔은 버킷과 같은 리전의 처음 100개 KMS 키만 나열해요. 목록에 없는 KMS 키를 사용하려면 KMS 키 ARN을 입력해야 해요. 다른 계정이 소유한 KMS 키를 사용하려면 먼저 해당 키를 사용할 권한이 있어야 하고 KMS 키 ARN을 입력해야 해요. Amazon S3는 대칭 암호화 KMS 키만 지원하고 비대칭 KMS 키는 지원하지 않아요. 자세한 내용은 AWS Key Management Service Developer Guide의 대칭 및 비대칭 KMS 키 식별을 참고하세요.
  6. 추가 체크섬을 사용하려면 켜기(On) 를 선택해요. 그런 다음 체크섬 함수(Checksum function) 에서 사용할 함수를 선택해요. Amazon S3는 전체 객체를 받은 후 체크섬 값을 계산하고 저장해요. 미리 계산된 값(Precalculated value) 상자로 미리 계산된 값을 제공할 수 있어요. 제공한다면 Amazon S3는 사용자가 제공한 값을 계산한 값과 비교해요. 두 값이 일치하지 않으면 Amazon S3가 오류를 생성해요. 추가 체크섬은 데이터를 검증하는 데 사용할 체크섬 알고리즘을 지정할 수 있게 해줘요. 추가 체크섬에 대한 자세한 내용은 Amazon S3에서 객체 무결성 확인을 참고하세요.
  7. 업로드하는 모든 객체에 태그를 추가하려면 태그 추가(Add tag) 를 선택해요. 키(Key) 필드에 태그 이름을 입력하고 태그 값을 입력해요. 객체 태깅은 스토리지를 분류하는 방법을 제공해요. 각 태그는 키-값 쌍이에요. 키와 태그 값은 대소문자를 구분해요. 객체당 최대 10개의 태그를 가질 수 있어요. 태그 키는 최대 128자(유니코드 문자)까지, 태그 값은 최대 255자까지 될 수 있어요. 객체 태그에 대한 자세한 내용은 객체 태깅을 참고하세요.
  8. 메타데이터를 추가하려면 메타데이터 추가(Add metadata) 를 선택해요.
    • 유형(Type) 아래에서 시스템 정의(System defined) 나 사용자 정의(User defined) 를 선택해요.
    • 시스템 정의 메타데이터의 경우 Content-Type, Content-Disposition 같은 일반적인 HTTP 헤더를 선택할 수 있어요. 시스템 정의 메타데이터 목록과 값을 추가할 수 있는지에 대한 정보는 시스템 정의 객체 메타데이터를 참고하세요. x-amz-meta- 접두사로 시작하는 메타데이터는 사용자 정의 메타데이터로 취급돼요. 사용자 정의 메타데이터는 객체와 함께 저장되며 객체를 다운로드할 때 반환돼요. 키와 값 모두 US-ASCII 표준을 준수해야 해요. 사용자 정의 메타데이터는 최대 2KB까지 될 수 있어요. 시스템 정의 및 사용자 정의 메타데이터에 대한 자세한 내용은 객체 메타데이터 작업을 참고하세요.
    • 키(Key) 에 대해 키를 선택해요.
    • 키에 대한 값을 입력해요.
  9. 객체를 업로드하려면 업로드(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')

더 알아보기 (Learn more)