

# 범용 버킷의 액세스 포인트를 통해 객체 업로드
<a name="put-object-ap"></a>

이 섹션에서는 AWS Management Console, AWS Command Line Interface 또는 REST API를 사용하여 범용 버킷의 액세스 포인트를 통해 객체를 업로드하는 방법에 대해 설명합니다.

## S3 콘솔 사용
<a name="put-object-ap-console"></a>

**AWS 계정의 액세스 포인트를 통해 객체를 업로드하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. 페이지 상단의 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그런 다음 액세스 포인트를 나열하려는 리전을 선택합니다.

1. 콘솔 왼쪽의 탐색 창에서 **액세스 포인트**를 선택합니다.

1. (선택 사항) 이름으로 액세스 포인트를 검색합니다. 선택한 AWS 리전의 액세스 포인트만 여기에 표시됩니다.

1. 관리하거나 사용할 액세스 포인트의 이름을 선택합니다.

1. **객체** 탭에서 **업로드**를 선택합니다.

1. 업로드할 파일과 폴더를 여기에 끌어다 놓거나 **파일 추가** 또는 **폴더 추가**를 선택합니다.
**참고**  
Amazon S3 콘솔을 사용하여 업로드할 수 있는 파일의 최대 크기는 160GB입니다. 160GB가 넘는 파일을 업로드하려면 AWS Command Line Interface(AWS CLI), AWS SDK 또는 Amazon S3 REST API를 사용하십시오.

1. 액세스 제어 목록 권한을 변경하려면 **권한(Permissions)**을 선택합니다.

1. **액세스 제어 목록(ACL)(Access control list (ACL))**에서 권한을 편집합니다.

   객체 액세스 권한에 대한 자세한 내용은 [S3 콘솔을 사용하여 객체에 대한 ACL 권한 설정](managing-acls.md#set-object-permissions)를 참조하십시오. 현재 업로드 중인 모든 파일에 대해 대중(전 세계 모든 사람)에게 객체에 대한 읽기 액세스 권한을 부여할 수 있습니다. 그러나 퍼블릭 읽기 액세스의 기본 설정은 변경하지 않는 것이 좋습니다. 퍼블릭 읽기 액세스 권한 부여는 웹 사이트에 버킷을 사용하는 경우와 같은 소수의 사용 사례에 적용될 수 있습니다. 객체를 업로드한 후에도 언제든 객체 권한을 변경할 수 있습니다.

1. 다른 추가 속성을 구성하려면 **속성(Properties)**을 선택합니다.

1. **스토리지 클래스**에서 업로드하려는 파일의 스토리지 클래스를 선택합니다.

   스토리지 클래스에 대한 자세한 정보는 [Amazon S3 스토리지 클래스 이해 및 관리](storage-class-intro.md)를 참조하세요.

1. 객체에 대한 암호화 설정을 업데이트하려면 **서버 측 암호화 설정**에서 다음을 수행합니다.

   1. **암호화 키 지정(Specify an encryption key)**을 선택합니다.

   1. **암호화 설정**에서 **버킷 기본 암호화 설정 사용** 또는 **기본 암호화에 버킷 설정 재정의**를 선택합니다.

   1. **기본 암호화에 버킷 설정 재정의**를 선택한 경우 다음과 같은 암호화 설정을 구성해야 합니다.
      + Amazon S3에서 관리하는 키를 사용하여 업로드된 파일을 암호화하려면 **Amazon S3 관리형 키(SSE-S3)**를 선택합니다.

        자세한 내용은 [Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3) 사용](UsingServerSideEncryption.md) 섹션을 참조하세요.
      + AWS Key Management Service(AWS KMS)에 저장된 키를 사용하여 업로드된 파일을 암호화하려면 **AWS Key Management Service 키(SSE-KMS)**를 선택합니다. 그리고 나서 **AWS KMS 키**에 다음 옵션 중 하나를 선택합니다.
        + 사용 가능한 KMS 키 목록에서 **AWS KMS keys 중에서 선택**을 선택한 다음, 사용 가능한 키 목록에서 **KMS 키**를 선택합니다.

          AWS 관리형 키(`aws/s3`)와 고객 관리형 키가 모두 목록에 표시됩니다. 고객 관리형 키에 대한 자세한 내용은 *AWS Key Management Service* 개발자 안내서의 [ 고객 키 및 AWS 키](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#key-mgmt)를 참조하세요.
        + KMS 키 ARN을 입력하려면 **AWS KMS key ARN 입력**을 선택한 다음 나타나는 필드에 KMS 키 ARN을 입력합니다.
        + AWS KMS 콘솔에서 고객 관리형 키를 생성하려면 **KMS 키 생성**을 선택합니다.

          AWS KMS key 생성에 대한 자세한 내용은 *AWS Key Management Service 개발자 가이드*의 [키 생성](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html)을 참조하십시오.
**중요**  
버킷과 동일한 AWS 리전에서 사용할 수 있는 KMS 키만 사용 가능합니다. Amazon S3 콘솔은 버킷과 동일한 리전에 있는 처음 100개의 KMS 키만 나열합니다. 목록에 없는 KMS 키를 사용하려면 KMS 키 ARN을 입력해야 합니다. 다른 계정에서 소유한 KMS 키를 사용하려면 먼저 해당 키에 대한 사용 권한이 있어야 하고, 다음 단계로 KMS 키 ARN을 입력해야 합니다.  
Amazon S3는 대칭 암호화 KMS 키만 지원하며 비대칭 KMS 키는 지원하지 않습니다. 자세한 내용은 **AWS Key Management Service 개발자 안내서에서 [대칭 및 비대칭 KMS 키 식별](https://docs.aws.amazon.com//kms/latest/developerguide/find-symm-asymm.html)을 참조하세요.

1. 추가 체크섬을 사용하려면 **켜기(On)**를 선택합니다. 그런 다음 **체크섬 함수(Checksum function)**에서 사용할 함수를 선택합니다. Amazon S3는 전체 객체를 수신한 후 체크섬 값을 계산하고 저장합니다. **미리 계산된 값(Precalculated value)** 상자를 사용하여 미리 계산된 값을 제공할 수 있습니다. 이렇게 하면 Amazon S3가 제공한 값과 계산한 값을 비교합니다. 두 값이 일치하지 않으면 Amazon S3가 오류를 생성합니다.

   추가 체크섬을 사용하면 데이터를 확인하는 데 사용할 체크섬 알고리즘을 지정할 수 있습니다. 추가 체크섬에 대한 자세한 내용은 [Amazon S3에서 객체 무결성 확인](checking-object-integrity.md) 단원을 참조하십시오.

1. 업로드 중인 모든 객체에 태그를 추가하려면 **태그 추가**를 선택합니다. **키** 필드에 태그 이름을 입력합니다. 태그 값을 입력합니다.

   객체 태그 지정을 통해 스토리지를 분류할 수 있습니다. 각 태그는 키-값 페어입니다. 키와 태그 값은 대/소문자를 구분합니다. 객체마다 태그를 10개까지 포함할 수 있습니다. 태그 키는 최대 128개 길이의 유니코드 문자이며, 태그 값은 최대 255개의 유니코드 문자입니다. 객체 태그에 대한 자세한 내용은 [태그를 사용하여 객체 분류](object-tagging.md) 섹션을 참조하세요.

1. 메타데이터를 추가하려면 **메타데이터 추가**를 선택합니다.

   1. **유형**에서 **시스템 정의** 또는 **사용자 정의**를 선택합니다.

      시스템 정의 메타데이터의 경우, **콘텐츠 유형** 및 **콘텐츠 처리** 같은 일반적인 HTTP 헤더를 선택할 수 있습니다. 시스템 정의 메타데이터 목록과 값 추가 가능 여부를 확인하려면 [시스템 정의 객체 메타데이터](UsingMetadata.md#SysMetadata) 단원을 참조하십시오. 접두사 `x-amz-meta-`로 시작하는 모든 메타데이터는 사용자 정의 메타데이터로 처리됩니다. 사용자 정의 메타데이터는 객체와 함께 저장되었다가 해당 객체를 다운로드할 때 반환됩니다. 키와 값 모두 US-ASCII 표준에 부합해야 합니다. 사용자 정의 메타데이터의 최대 크기는 2KB입니다. 시스템 정의 메타데이터와 사용자 정의 메타데이터에 대한 자세한 내용은 [객체 메타데이터 작업](UsingMetadata.md) 단원을 참조하십시오.

   1. **키**에 대해 키를 선택합니다.

   1. 키 값을 입력합니다.

1. 객체를 업로드하려면 **업로드**를 선택합니다.

   Amazon S3가 객체를 업로드합니다. 업로드가 완료되면 **업로드: 상태** 페이지에서 성공 메시지를 볼 수 있습니다.

## AWS CLI 사용
<a name="put-object-ap-cli"></a>

다음 `put-object` 예시 명령은 AWS CLI를 사용하여 액세스 포인트를 통해 객체를 업로드하는 방법을 보여줍니다.

다음 명령은 액세스 포인트 *my-access-point*를 사용하여 AWS 계정 *111122223333*의 `puppy.jpg` 객체를 업로드합니다.

```
aws s3api put-object --bucket arn:aws:s3:AWS 리전:111122223333:accesspoint/my-access-point --key puppy.jpg --body puppy.jpg      
```

**참고**  
S3는 모든 액세스 포인트에 대한 액세스 포인트 별칭을 자동으로 생성하며, 버킷 이름이 객체 수준 작업을 수행하는 데 사용되는 모든 곳에서 액세스 포인트 별칭을 사용할 수 있습니다. 자세한 내용은 [액세스 포인트 별칭](access-points-naming.md#access-points-alias) 섹션을 참조하세요.

자세한 내용과 예제는 **AWS CLI 명령 참조에서 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html)를 참조하십시오.

## REST API 사용
<a name="put-object-ap-rest"></a>

REST API를 사용하여 액세스 포인트를 통해 객체를 업로드할 수 있습니다. 자세한 내용은 *Amazon Simple Storage Service API 참조*에서 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)를 참조하세요.

## AWS SDK 사용
<a name="put-object-ap-SDKs"></a>

AWS SDK for Python을 사용하여 액세스 포인트를 통해 객체를 업로드할 수 있습니다.

------
#### [ Python ]

다음 예제에서는 *my-access-point*라는 액세스 포인트를 사용하여 AWS 계정 *111122223333*에 대해 이름이 `hello.txt`인 파일이 업로드됩니다.

```
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')
```

------