버킷을 생성할 때 객체 소유권 설정
버킷을 생성할 때 S3 객체 소유권을 구성할 수 있습니다. 기존 버킷에 대한 객체 소유권을 설정하려면 기존 버킷에 대한 객체 소유권 설정 섹션을 참조하세요.
S3 객체 소유권은 액세스 제어 목록(ACL)을 사용 중지하고 버킷에 있는 모든 객체의 소유권을 가져오는 데 사용할 수 있는 Amazon S3 버킷 수준 설정으로, Amazon S3에 저장된 데이터에 대한 액세스 관리를 간소화합니다. 기본적으로 S3 객체 소유권은 버킷 소유자 적용 설정으로 설정되며 신규 버킷에 대해 ACL이 비활성화되어 있습니다. ACL이 비활성화되면 버킷 소유자는 버킷의 모든 객체를 소유하고 액세스 관리 정책을 사용하여 데이터에 대한 액세스를 독점적으로 관리합니다. 각 객체에 대해 액세스를 개별적으로 제어해야 하는 드문 상황을 제외하고는 ACL을 비활성화한 채로 두는 것이 좋습니다.
객체 소유권에는 버킷에 업로드된 객체의 소유권을 제어하고 ACL을 사용 중지하거나 사용하는 다음과 같은 세 가지 설정이 있습니다.
ACL 사용 중지됨
-
버킷 소유자 적용(기본값) – ACL이 비활성화되고 버킷 소유자는 버킷의 모든 객체를 자동으로 소유하고 완전히 제어합니다. ACL은 더 이상 S3 버킷의 데이터에 대한 권한에 영향을 주지 않습니다. 버킷은 정책을 사용하여 액세스 제어를 정의합니다.
ACL 사용됨
-
버킷 소유자 기본(Bucket owner preferred) – 버킷 소유자가
bucket-owner-full-control
미리 제공 ACL을 사용하여 다른 계정이 버킷에 작성하는 새 객체를 소유하고 완전히 제어합니다. -
객체 작성자(Object writer) – 객체를 업로드하는 AWS 계정은 객체를 소유하고 완전히 제어하며 ACL을 통해 다른 사용자에게 이에 대한 액세스 권한을 부여할 수 있습니다.
권한: 버킷 소유자 적용 설정이나 버킷 소유자 선호 설정을 적용하려면 s3:CreateBucket
및 s3:PutBucketOwnershipControls
권한이 있어야 합니다. 객체 라이터 설정이 적용된 버킷을 만들 때는 추가 권한이 필요하지 않습니다. Amazon S3 권한에 대한 자세한 내용은 서비스 승인 참조에서 Amazon S3에 사용되는 작업, 리소스 및 조건 키를 참조하세요.
S3 리소스 유형별 S3 API 작업 권한에 대한 자세한 내용은 Amazon S3 API 작업에 필요한 권한 섹션을 참조하세요.
중요
Amazon S3의 최신 사용 사례 대부분은 더 이상 ACL을 사용할 필요가 없으며, 각 객체에 대해 액세스를 개별적으로 제어해야 하는 비정상적인 상황을 제외하고는 ACL을 사용 중지하는 것이 좋습니다. 객체 소유권으로 ACL을 사용 중지하고 액세스 제어 정책을 사용할 수 있습니다. ACL을 비활성화하면 다른 AWS 계정이 업로드한 객체로 버킷을 쉽게 유지 관리할 수 있습니다. 버킷 소유자는 버킷의 모든 객체를 소유하고 정책을 사용하여 객체에 대한 액세스를 관리할 수 있습니다.
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/
에서 S3 콘솔을 엽니다. -
페이지 상단의 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그런 다음 버킷을 생성하려는 리전을 선택합니다.
참고
-
버킷을 만든 후에는 리전을 변경할 수 없습니다.
-
지연 시간과 요금을 최소화하고 규제 요건을 충족하려면 가장 가까운 리전을 선택하십시오. 특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않습니다. Amazon S3 AWS 리전 목록은 Amazon Web Services 일반 참조의 AWS 서비스 엔드포인트를 참조하십시오.
-
-
왼쪽 탐색 창에서 범용 버킷을 선택합니다.
-
버킷 만들기를 선택합니다. 버킷 만들기 페이지가 열립니다.
-
[Bucket Name]에서 버킷 이름을 입력합니다.
버킷 이름은 다음과 같아야 합니다.
-
파티션 내에서 고유해야 합니다. 파티션은 리전의 그룹입니다. AWS에는 현재
aws
(상용 리전),aws-cn
(중국 리전) 및aws-us-gov
(AWS GovCloud (US) Regions), 이렇게 세 가지 파티션이 있습니다. -
3~63자 이내여야 합니다.
-
소문자, 숫자, 마침표(
.
) 및 하이픈(-
)만 포함해야 합니다. 최상의 호환성을 위해 정적 웹 사이트 호스팅에만 사용되는 버킷을 제외하고 버킷 이름에 마침표(.
)를 사용하지 않는 것이 좋습니다. -
문자나 숫자로 시작하고 끝나야 합니다.
-
버킷 이름 지정 규칙의 전체 목록은 범용 버킷 이름 지정 규칙 섹션을 참조하세요.
중요
-
버킷을 생성한 후에는 해당 이름을 변경할 수 없습니다.
-
버킷 이름에 민감한 정보가 포함되어서는 안 됩니다. 버킷 이름은 버킷의 객체를 가리키는 URL에 표시됩니다.
-
-
(선택 사항) 일반 구성 아래에서 기존 버킷의 설정을 새 버킷에 복사하도록 선택할 수 있습니다. 기존 버킷의 설정을 복사하지 않으려면 다음 단계로 건너뛰세요.
참고
이 옵션:
AWS CLI에서는 사용할 수 없으며 Amazon S3 콘솔에서만 사용할 수 있습니다.
기존 버킷의 버킷 정책을 새 버킷으로 복사하지 않습니다.
기존 버킷의 설정을 복사하려면 기존 버킷에서 설정 복사 아래에서 버킷 선택을 선택합니다. 버킷 선택 창이 열립니다. 복사하려는 설정이 있는 버킷을 찾아 버킷 선택을 선택합니다. 버킷 선택 창이 닫히고 버킷 생성 창이 다시 열립니다.
이제 기존 버킷에서 설정 복사 아래에 선택한 버킷의 이름이 표시됩니다. 이제 새 버킷의 설정이 선택한 버킷의 설정과 일치합니다. 복사된 설정을 제거하려면 기본값 복원을 선택합니다. 버킷 생성 페이지에서 나머지 버킷 설정을 검토하세요. 변경하지 않으려면 마지막 단계로 건너뛸 수 있습니다.
-
객체 소유권(Object Ownership)에서 ACL을 사용 중지 또는 사용 설정하고 버킷에 업로드된 객체의 소유권을 제어하려면 다음 설정 중 하나를 선택합니다.
ACL 사용 중지됨
-
버킷 소유자 적용(기본값) – ACL이 비활성화되고 버킷 소유자는 범용 버킷의 모든 객체를 자동으로 소유하고 완전히 제어합니다. ACL은 더 이상 S3 범용 버킷의 데이터에 대한 권한에 영향을 주지 않습니다. 버킷은 정책을 독점적으로 사용하여 액세스 제어를 정의합니다.
기본적으로 ACL은 비활성화되어 있습니다. Amazon S3의 최신 사용 사례 대부분은 더 이상 ACL을 사용할 필요가 없습니다. 각 객체에 대해 액세스를 개별적으로 제어해야 하는 드문 상황을 제외하고는 ACL을 비활성화한 채로 두는 것이 좋습니다. 자세한 내용은 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지 섹션을 참조하세요.
ACL 사용됨
-
버킷 소유자 기본(Bucket owner preferred) – 버킷 소유자가
bucket-owner-full-control
미리 제공 ACL을 사용하여 다른 계정이 버킷에 작성하는 새 객체를 소유하고 완전히 제어합니다.버킷 소유자 선호 설정을 적용하는 경우 모든 Amazon S3 업로드에
bucket-owner-full-control
미리 제공된 ACL을 포함하도록 요구하려면 이 ACL을 사용하는 객체 업로드만 허용하는 버킷 정책을 추가할 수 있습니다. -
객체 작성자(Object writer) – 객체를 업로드하는 AWS 계정은 객체를 소유하고 완전히 제어하며 ACL을 통해 다른 사용자에게 이에 대한 액세스 권한을 부여할 수 있습니다.
참고
기본 설정은 버킷 소유자 적용입니다. 기본 설정을 적용하고 ACL을 비활성화된 상태로 유지하려면
s3:CreateBucket
권한만 있으면 됩니다. ACL을 활성화하려면s3:PutBucketOwnershipControls
권한이 있어야 합니다. -
-
퍼블릭 액세스 차단을 위한 버킷 설정에서 버킷에 적용할 퍼블릭 액세스 차단 설정을 선택합니다.
기본적으로, 네 개의 퍼블릭 액세스 차단 설정이 모두 활성화되어 있습니다. 특정 사용 사례에 대해 하나 이상의 설정을 해제해야 하는 경우가 아니라면 모든 설정을 활성화된 상태로 유지하는 것이 좋습니다. 퍼블릭 액세스 차단에 대한 자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 섹션을 참조하십시오.
참고
모든 퍼블릭 액세스 차단 설정을 활성화하려면
s3:CreateBucket
권한만 있으면 됩니다. 퍼블릭 액세스 차단 설정을 해제하려면s3:PutBucketPublicAccessBlock
권한이 있어야 합니다. -
(선택 사항) 버킷 버전 관리는 기본으로 비활성화됩니다. 버전 관리는 동일 버킷 내에 여러 개의 객체 변형을 보유하는 것을 의미합니다. 버전 관리를 사용하여 버킷에 저장된 모든 버전의 객체를 모두 보존, 검색 및 복원할 수 있습니다. 또한, 의도치 않은 사용자 작업 및 애플리케이션 장애가 발생해도 쉽게 복구할 수 있습니다. 버전 관리에 대한 자세한 내용은 S3 버전 관리로 여러 버전의 객체 유지 섹션을 참조하십시오.
버킷에서 버전 관리를 활성화하려면 활성화를 선택합니다.
-
(선택 사항) Tags(태그)에서 버킷에 태그를 추가할 수 있습니다. AWS 비용 할당을 하면서 버킷 태그를 지정해 버킷 사용에 대한 요금 청구 주석을 달 수 있습니다. 태그는 버킷에 할당된 라벨을 나타내는 한 쌍의 키-값입니다. 자세한 내용은 비용 할당 S3 버킷 태그 사용 섹션을 참조하세요.
버킷 태그를 추가하려면 Key(키) 및 원하는 경우 Value(값)를 입력하고 Add Tag(태그 추가)를 선택합니다.
-
기본 암호화를 구성하려면 암호화 유형 아래에서 다음 중 하나를 선택합니다.
-
Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)
-
AWS Key Management Service 키를 사용한 서버 측 암호화(SSE-KMS)
-
AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)
중요
기본 암호화 구성으로 SSE-KMS 또는 DSSE-KMS 옵션을 사용할 경우 AWS KMS의 초당 요청 수(RPS) 할당량이 적용됩니다. AWS KMS 할당량과 할당량 증대를 요청하는 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 할당량을 참조하십시오.
버킷과 새 객체는 Amazon S3 관리형 키(SSE-S3)를 암호화 구성의 기본 수준으로 사용하는 서버 측 암호화로 암호화됩니다. 기본 암호화에 대한 자세한 내용은 Amazon S3 버킷에 대한 기본 서버 측 암호화 동작 설정 섹션을 참조하십시오. SSE-S3에 대한 자세한 내용은 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3) 사용 섹션을 참조하세요.
서버 측 암호화를 사용하는 데이터 암호화에 대한 자세한 내용은 암호화로 데이터 보호 섹션을 참조하세요.
-
-
Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3) 또는 AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 선택한 경우 다음을 수행하세요.
-
AWS KMS 키에서 다음 방법 중 하나로 KMS 키를 지정합니다.
-
사용 가능한 KMS 키 목록에서 AWS KMS keys 중에서 선택을 선택하고 사용 가능한 키 목록에서 KMS 키를 선택합니다.
AWS 관리형 키(
aws/s3
)와 고객 관리형 키가 모두 목록에 표시됩니다. 고객 관리형 키에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 고객 키 및 AWS 키를 참조하십시오. -
KMS 키 ARN을 입력하려면 AWS KMS key ARN 입력을 선택하고 나타나는 필드에 KMS 키 ARN을 입력합니다.
-
AWS KMS 콘솔에서 고객 관리형 키를 생성하려면 KMS 키 생성을 선택합니다.
AWS KMS key 생성에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드의 키 생성을 참조하십시오.
중요
버킷과 동일한 AWS 리전에서 사용할 수 있는 KMS 키만 사용 가능합니다. Amazon S3 콘솔은 버킷과 동일한 리전에 있는 처음 100개의 KMS 키만 나열합니다. 목록에 없는 KMS 키를 사용하려면 KMS 키 ARN을 입력해야 합니다. 다른 계정에서 소유한 KMS 키를 사용하려면 먼저 해당 키에 대한 사용 권한이 있어야 하고, 다음 단계로 KMS 키 ARN을 입력해야 합니다. KMS 키의 크로스 계정 권한에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 Creating KMS keys that other accounts can use를 참조하세요. SSE-KMS에 대한 자세한 내용은 AWS KMS(SSE-KMS)를 사용한 서버 측 암호화 지정 단원을 참조하십시오. DSSE-KMS에 대한 자세한 내용은 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 사용 섹션을 참조하세요.
Amazon S3에서 서버 측 암호화에 AWS KMS key을 사용하는 경우 대칭 암호화 KMS 키를 선택해야 합니다. Amazon S3는 대칭 암호화 KMS 키만 지원하며 비대칭 KMS 키는 지원하지 않습니다. 자세한 내용은 AWS Key Management Service 개발자 안내서에서 대칭 및 비대칭 KMS 키 식별을 참조하십시오.
-
-
SSE-KMS와 함께 기본 암호화를 사용하도록 버킷을 구성할 때 S3 버킷 키를 사용할 수도 있습니다. S3 버킷 키를 사용하면 Amazon S3에서 AWS KMS로의 요청 트래픽이 줄어 암호화 비용이 절감됩니다. 자세한 내용은 Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감 섹션을 참조하세요. S3 버킷 키는 DSSE-KMS에서 지원되지 않습니다.
기본적으로 S3 버킷 키는 Amazon S3 콘솔에서 활성화됩니다. 비용을 낮추려면 S3 버킷 키를 활성화된 상태로 두는 것이 좋습니다. 버킷에 대해 S3 버킷 키를 비활성화하려면 버킷 키 아래에서 비활성화를 선택합니다.
-
-
(선택 사항) S3 Object Lock을 사용하면 새 객체가 삭제되거나 덮어쓰이지 않도록 보호할 수 있습니다. 자세한 내용은 Object Lock으로 객체 잠금 섹션을 참조하세요. S3 Object Lock을 활성화하려면 다음을 수행합니다.
-
고급 설정(Advanced Settings)을 선택합니다.
중요
Object Lock을 활성화하면 버킷의 버전 관리도 활성화됩니다. 버킷을 활성화하고 성공적으로 만든 후에는 버킷의 속성 탭에서 Object Lock 기본 보존 및 법적 보존 설정도 구성해야 합니다.
-
객체 잠금을 활성화하려면 Enable(활성화)을 선택하고 표시되는 경고를 읽고 확인합니다.
참고
Object Lock을 사용하는 버킷을 만들려면
s3:CreateBucket
,s3:PutBucketVersioning
및s3:PutBucketObjectLockConfiguration
권한이 있어야 합니다. -
-
버킷 생성을 선택합니다.
새 버킷을 생성할 때 객체 소유권을 설정하려면 --object-ownership
파라미터와 함께 create-bucket
AWS CLI 명령을 사용합니다.
이 예에서는 AWS CLI를 사용하여 새 버킷에 대해 버킷 소유자 적용 설정을 적용합니다.
aws s3api create-bucket --bucket
amzn-s3-demo-bucket
--regionus-east-1
--object-ownership BucketOwnerEnforced
중요
AWS CLI를 사용하여 버킷을 만들 때 객체 소유권을 설정하지 않으면 기본 설정은 ObjectWriter
(ACL 활성화)가 됩니다.
이 예에서는 AWS SDK for Java를 사용하여 새 버킷에 대해 버킷 소유자 적용 설정을 지정합니다.
// Build the ObjectOwnership for CreateBucket CreateBucketRequest createBucketRequest = CreateBucketRequest.builder() .bucket(bucketName) .objectOwnership(ObjectOwnership.BucketOwnerEnforced) .build() // Send the request to Amazon S3 s3client.createBucket(createBucketRequest);
새 버킷을 생성할 때 AWS::S3::Bucket
AWS CloudFormation 리소스를 사용하여 객체 소유권을 설정하려면 AWS CloudFormation 사용 설명서의 AWS::S3::Bucket 내 OwnershipControls 섹션을 참조하십시오.
S3 객체 소유권에 대해 버킷 소유자 적용 설정을 적용하려면 x-amz-object-ownership
요청 헤더를 BucketOwnerEnforced
로 설정한 상태에서 CreateBucket
API 작업을 사용합니다. 자세한 내용 및 예제는 Amazon Simple Storage Service API 참조의 CreateBucket를 참조하십시오.
다음 단계: 객체 소유권에 대해 버킷 소유자 적용 또는 버킷 소유자 기본 설정을 적용한 후 다음 단계를 추가로 수행할 수 있습니다.
-
버킷 소유자 시행(Bucket owner enforced) – IAM 또는 조직 정책을 사용하여 사용 중지된 ACL로 모든 새 버킷을 생성하도록 요구합니다.
-
버킷 소유자 기본(Bucket owner preferred) - 버킷에 모든 객체 업로드에 대해
bucket-owner-full-control
미리 제공 ACL을 요구하도록 S3 버킷 정책을 추가합니다.