ACL 사용 중지를 위한 사전 조건 - Amazon Simple Storage Service

ACL 사용 중지를 위한 사전 조건

Amazon S3의 버킷 액세스 제어 목록(ACL)은 S3 버킷 내의 개별 객체에 대한 세분화된 권한을 정의하여 해당 객체에 액세스하고 수정할 수 있는 AWS 계정 또는 그룹을 지정할 수 있는 메커니즘입니다. Amazon S3의 최신 사용 사례 대부분은 더 이상 ACL을 사용할 필요가 없습니다. 각 객체에 대해 액세스를 개별적으로 제어할 필요가 있는 드문 상황을 제외하고는 AWS Identity and Access Management(IAM) 및 버킷 정책을 사용하여 액세스를 관리하고 ACL을 비활성화한 채로 두는 것이 좋습니다.

버킷에서 ACL을 활성화한 경우 ACL을 비활성화하기 전에 다음 사전 조건을 충족해야 합니다.

버킷 및 객체 ACL 검토와 ACL 권한 마이그레이션

ACL을 사용 중지하면 버킷 및 객체 ACL에서 부여한 권한이 더 이상 액세스에 영향을 미치지 않습니다. ACL을 사용 중지하기 전에 버킷 및 객체 ACL을 검토합니다.

기존 버킷 및 객체 ACL마다 IAM 정책에 해당 항목이 있습니다. 다음 버킷 정책 예는 버킷 및 객체 ACL에 대한 READWRITE 권한이 IAM 권한에 매핑되는 방식을 보여줍니다. 각 ACL이 IAM 권한으로 변환되는 방법에 대한 자세한 내용은 ACL 권한과 액세스 정책 권한의 매핑 섹션을 참조하십시오.

ACL을 비활성화하기 전에:

  • 버킷 ACL이 AWS 계정 외부에 액세스 권한을 부여하는 경우 먼저 버킷 ACL 권한을 버킷 정책으로 마이그레이션해야 합니다.

  • 그런 다음 버킷 ACL을 기본 프라이빗 ACL로 재설정합니다.

  • 또한 객체 수준 ACL 권한을 검토하고 버킷 정책으로 마이그레이션하는 것이 좋습니다.

버킷 ACL이 계정 외부의 다른 사용자에게 읽기 또는 쓰기 권한을 부여하는 경우 ACL을 비활성화하려면 먼저 이러한 권한을 버킷 정책으로 마이그레이션해야 합니다. 이러한 권한을 마이그레이션한 후 객체 소유권버킷 소유자 적용 설정으로 설정할 수 있습니다. 읽기 또는 쓰기 액세스 권한을 계정 외부로 부여하는 버킷 ACL을 마이그레이션하지 않으면 버킷 소유자 적용 설정을 적용하기 위한 요청이 실패하고 InvalidBucketAclWithObjectOwnership 오류 코드를 반환합니다.

버킷 ACL이 AWS 계정 외부의 액세스 권한을 부여하는 경우 ACL을 사용 중지하기 전에 버킷 ACL 권한을 버킷 정책으로 마이그레이션하고 버킷 ACL을 기본 프라이빗 ACL로 재설정해야 합니다. 이러한 버킷 ACL을 마이그레이션하고 재설정하지 않으면 ACL 비활성화를 위한 버킷 소유자 적용 설정 적용 요청이 실패하고 InvalidBucketAclWithObjectOwnership 오류 코드를 반환합니다. 또한 객체 ACL 권한을 검토하고 버킷 정책으로 마이그레이션하는 것이 좋습니다.

ACL 권한을 검토하고 버킷 정책으로 마이그레이션하려면 다음 주제를 참조하십시오.

버킷 정책 예제

이 예제 버킷 정책은 서드 파티 AWS 계정에 대한 READWRITE 버킷과 객체 ACL 권한을 버킷 정책으로 마이그레이션하는 방법을 보여줍니다. READ_ACPWRITE_ACP ACL은 ACL 관련 권한(s3:GetBucketAcl, s3:GetObjectAcl, s3:PutBucketAcls3:PutObjectAcl)을 부여하기 때문에 정책과 관련이 적습니다.

예 - 버킷에 대한 READ ACL

버킷의 콘텐츠를 나열할 수 있는 AWS 계정 111122223333 권한을 부여하는 READ ACL이 버킷에 있는 경우, 버킷에 대한 s3:ListBuckets3:ListBucketVersionss3:ListBucketMultipartUploads 권한을 부여하는 버킷 정책을 작성할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to list the objects in a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:ListBucket", "s3:ListBucketVersions", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" } ] }
예 - 버킷의 모든 객체에 대한 READ ACL

AWS 계정 111122223333에 액세스 권한을 부여하는 READ ACL이 버킷의 모든 객체에 있는 경우, 버킷의 모든 객체에 대해 이 계정에 s3:GetObject 및 s3:GetObjectVersion 권한을 부여하는 버킷 정책을 작성할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Read permission for every object in a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

이 예제 리소스 요소는 특정 객체에 대한 액세스 권한을 부여합니다.

"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/OBJECT-KEY"
예 – 버킷에 객체를 쓸 수 있는 권한을 부여하는 WRITE ACL

버킷에 객체를 쓸 수 있는 AWS 계정 111122223333 권한을 부여하는 WRITE ACL이 있는 경우, 버킷에 대한 s3:PutObject 권한을 부여하는 버킷 정책을 작성할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to write objects to a bucket", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

S3 콘솔을 사용하여 ACL 권한 검토 및 마이그레이션

버킷의 ACL 권한 검토
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷 목록에서 버킷 이름을 선택합니다.

  3. 권한 탭을 선택합니다.

  4. 액세스 제어 목록(ACL)(Access control list (ACL))에서 버킷 ACL 권한을 검토합니다.

객체의 ACL 권한 검토
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. Buckets(버킷) 목록에서 객체가 포함된 버킷의 이름을 선택합니다.

  3. 객체(Objects) 목록에서 사용자의 객체 이름을 선택합니다.

  4. 권한 탭을 선택합니다.

  5. 액세스 제어 목록(ACL)(Access control list (ACL))에서 객체 ACL 권한을 검토합니다.

ACL 권한 마이그레이션 및 버킷 ACL 업데이트
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 버킷 목록에서 버킷 이름을 선택합니다.

  3. 권한(Permissions) 탭의 버킷 정책(Bucket policy)에서 편집(Edit)을 선택합니다.

  4. 정책(Policy) 상자에서 버킷 정책을 추가하거나 업데이트합니다.

    예제 버킷 정책은 버킷 정책 예제사용 사례 예제 섹션을 참조하십시오.

  5. Save changes(변경 사항 저장)를 선택합니다.

  6. 버킷 ACL을 업데이트하여 다른 그룹 또는 AWS 계정에 대한 ACL 부여를 제거합니다.

  7. 객체 소유권에 대한 버킷 소유자 적용 설정을 적용합니다.

AWS CLI를 사용하여 ACL 권한 검토 및 마이그레이션

  1. 버킷에 대한 버킷 ACL을 반환하려면 get-bucket-acl AWS CLI 명령을 사용합니다.

    aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket

    예를 들어, 이 버킷 ACL은 서드 파티 계정에 WRITEREAD 액세스 권한을 부여합니다. 이 ACL에서 서드 파티 계정은 정식 사용자 ID로 식별됩니다. 버킷 소유자 적용 설정을 적용하고 ACL을 비활성화하려면 서드 파티 계정에 대한 이러한 권한을 버킷 정책으로 마이그레이션해야 합니다.

    { "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "DisplayName": "THIRD-PARTY-EXAMPLE-ACCOUNT", "ID": "72806de9d1ae8b171cca9e2494a8d1335dfced4ThirdPartyAccountCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "READ" }, { "Grantee": { "DisplayName": "THIRD-PARTY-EXAMPLE-ACCOUNT", "ID": "72806de9d1ae8b171cca9e2494a8d1335dfced4ThirdPartyAccountCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "WRITE" } ] }

    다른 예제 ACL은 사용 사례 예제 섹션을 참조하십시오.

  2. 버킷 ACL 권한을 버킷 정책으로 마이그레이션합니다.

    이 예제 버킷 정책은 서드 파티 계정에 s3:PutObjects3:ListBucket 권한을 부여합니다. 버킷 정책에서 서드 파티 계정은 AWS 계정 ID(111122223333)로 식별됩니다.

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PolicyForCrossAccountAllowUpload", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

    더 많은 예제 버킷 정책은 버킷 정책 예제사용 사례 예제 섹션을 참조하십시오.

  3. 특정 객체에 대한 ACL을 반환하려면 get-object-acl AWS CLI 명령을 사용합니다.

    aws s3api get-object-acl --bucket amzn-s3-demo-bucket --key EXAMPLE-OBJECT-KEY
  4. 필요한 경우 객체 ACL 권한을 버킷 정책으로 마이그레이션합니다.

    이 예제 리소스 요소는 버킷 정책의 특정 객체에 대한 액세스 권한을 부여합니다.

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/EXAMPLE-OBJECT-KEY"
  5. 버킷의 ACL을 기본 ACL로 재설정합니다.

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  6. 객체 소유권에 대해 버킷 소유자 적용 설정을 적용합니다.

인증을 위해 ACL이 필요한 모든 요청 식별

인증을 위해 ACL이 필요한 Amazon S3 요청을 식별하려면, Amazon S3 서버 액세스 로그 또는 aclRequired 내의 AWS CloudTrail 값을 사용하면 됩니다. 요청에 권한 부여를 위해 ACL이 필요하거나 ACL을 지정하는 PUT 요청이 있는 경우, 문자열은 Yes입니다. ACL이 필요하지 않았거나, bucket-owner-full-control 미리 제공된 ACL을 설정하고 있거나, 버킷 정책에 의해 요청이 허용되는 경우, Amazon S3 서버 액세스 로그에서 aclRequired 값 문자열은 "-"이며 CloudTrail에는 표시되지 않습니다. 예상되는 aclRequired 값에 대한 자세한 내용은 일반적인 일반적인 Amazon S3 요청에 대한 aclRequired 값을 참조하십시오.

bucket-owner-full-control 미리 제공된 ACL을 제외하고 ACL 기반 권한을 부여하는 헤더가 포함된 PutBucketAcl 또는 PutObjectAcl 요청이 있는 경우, ACL을 비활성화하려면 먼저 해당 헤더를 제거해야 합니다. 그렇지 않으면 요청이 실패합니다.

권한 부여를 위해 ACL이 필요한 다른 모든 요청의 경우, 해당 ACL 권한을 버킷 정책으로 마이그레이션하십시오. 그런 다음 버킷 소유자 적용 설정을 활성화하기 전에 모든 버킷 ACL을 제거하십시오.

참고

객체 ACL을 제거하지 마십시오. 그렇지 않으면 객체 ACL에 권한을 의존하는 애플리케이션이 액세스 권한을 잃게 됩니다.

권한 부여를 위해 ACL이 필요한 요청이 없는 것으로 확인되면 ACL을 비활성화할 수 있습니다. 요청 식별에 대한 자세한 내용은 Amazon S3 서버 액세스 로그를 사용하여 요청 식별 및 CloudTrail을 사용하여 Amazon S3 요청 식별 섹션을 참조하십시오.

ACL 관련 조건 키를 사용하는 버킷 정책 검토 및 업데이트

버킷 소유자 적용 설정을 적용하여 ACL을 비활성화한 후에는 요청이 버킷 소유자 전체 제어 ACL을 사용하거나 ACL을 지정하지 않는 경우에만 버킷에 새 객체를 업로드할 수 있습니다. ACL을 사용 중지하기 전에 ACL 관련 조건 키에 대한 버킷 정책을 검토합니다.

버킷 정책이 ACL 관련 조건 키를 사용하여 bucket-owner-full-control 미리 제공 ACL(예: s3:x-amz-acl)을 요구하는 경우 버킷 정책을 업데이트할 필요가 없습니다. 다음 버킷 정책은 s3:x-amz-acl을 사용하여 S3 PutObject 요청에 대해 bucket-owner-full-control 미리 제공 ACL을 요구합니다. 이 정책은 여전히 객체 작성자가 bucket-owner-full-control 미리 제공 ACL을 지정하도록 요구합니다. 그러나 ACL이 사용 중지된 버킷은 여전히 이 ACL을 수락하므로 클라이언트 측 변경 없이 요청이 계속 성공합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Only allow writes to my bucket with bucket owner full control", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

그러나 버킷 정책에서 다른 ACL이 필요한 ACL 관련 조건 키를 사용하는 경우 이 조건 키를 제거해야 합니다. 이 예제 버킷 정책은 S3 PutObject 요청을 위해 public-read ACL을 필요로 하므로 ACL 사용 중지 전에 업데이트되어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Only allow writes to my bucket with public read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:user/ExampleUser" ] }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "public-read" } } } ] }

사용 사례 예제

다음 예에서는 특정 사용 사례에 대해 ACL 권한을 버킷 정책으로 마이그레이션하는 방법을 보여줍니다.

서버 액세스 로깅을 위해 S3 로그 전송 그룹에 대한 액세스 권한 부여

버킷 소유자 적용 설정을 적용하여 서버 액세스 로깅 대상 버킷(대상 버킷이라고도 함)에 대해 ACL을 비활성화하려는 경우 S3 로그 전송 그룹에 대한 버킷 ACL 권한을 버킷 정책의 로깅 서비스 보안 주체(logging.s3.amazonaws.com)로 마이그레이션해야 합니다. 로그 전달 권한에 대한 자세한 내용은 로그 전달을 위한 권한 섹션을 참조하십시오.

이 버킷 ACL은 S3 로그 전달 그룹에 WRITEREAD_ACP 액세스 권한을 부여합니다.

{ "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "Type": "CanonicalUser", "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/s3/LogDelivery" }, "Permission": "WRITE" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/s3/LogDelivery" }, "Permission": "READ_ACP" } ] }
버킷 정책의 로깅 서비스 보안 주체로 S3 로그 전달 그룹에 대한 버킷 ACL 권한 마이그레이션
  1. 다음 버킷 정책을 대상 버킷에 추가하여 예시 값을 대체합니다.

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { { "Version": "2012-10-17", "Statement": [ { "Sid": "S3ServerAccessLogsPolicy", "Effect": "Allow", "Principal": { "Service": "logging.s3.amazonaws.com" }, "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/EXAMPLE-LOGGING-PREFIX*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:::SOURCE-BUCKET-NAME" }, "StringEquals": { "aws:SourceAccount": "SOURCE-AWS-ACCOUNT-ID" } } } ] }
  2. 대상 버킷의 ACL을 기본 ACL로 재설정합니다.

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  3. 대상 버킷에 객체 소유권에 대해 버킷 소유자 적용 설정을 적용합니다.

버킷의 객체에 대한 퍼블릭 읽기 액세스 권한 부여

객체 ACL이 버킷의 모든 객체에 대해 퍼블릭 읽기 액세스 권한을 부여하는 경우 이러한 ACL 권한을 버킷 정책으로 마이그레이션할 수 있습니다.

이 객체 ACL은 버킷의 객체에 대한 퍼블릭 읽기 액세스 권한을 부여합니다.

{ "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] }
버킷 정책으로 퍼블릭 읽기 ACL 권한 마이그레이션
  1. 버킷의 모든 객체에 대한 퍼블릭 읽기 액세스 권한을 부여하려면 다음 버킷 정책을 추가하여 예제 값을 바꿉니다.

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

    버킷 정책의 특정 객체에 대한 퍼블릭 액세스 권한을 부여하려면 Resource 요소에 다음 형식을 사용합니다.

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/OBJECT-KEY"

    특정 접두사가 있는 모든 객체에 대한 퍼블릭 액세스 권한을 부여하려면 Resource 요소에 다음 형식을 사용합니다.

    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/PREFIX/*"
  2. 객체 소유권에 대해 버킷 소유자 적용 설정을 적용합니다.

Amazon ElastiCache(Redis OSS)에 S3 버킷에 대한 액세스 권한 부여

S3 버킷으로 ElastiCache(Redis OSS) 백업을 내보내면 ElastiCache 외부에서 백업에 액세스할 수 있습니다. S3 버킷으로 백업을 내보내려면 버킷에 스냅샷을 복사할 수 있는 권한을 ElastiCache에 부여해야 합니다. 버킷 ACL에서 ElastiCache에 권한을 부여한 경우 버킷 소유자 적용 설정을 적용하여 ACL을 비활성화하기 전에 이러한 권한을 버킷 정책으로 마이그레이션해야 합니다. 자세한 내용은 Amazon ElastiCache 사용 설명서ElastiCache에 Amazon S3 버킷에 대한 액세스 권한 부여를 참조하십시오.

다음 예에서는 ElastiCache에 권한을 부여하는 버킷 ACL 권한을 보여줍니다.

{ "Owner": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID" }, "Grants": [ { "Grantee": { "DisplayName": "DOC-EXAMPLE-ACCOUNT-OWNER", "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6BucketOwnerCanonicalUserID", "Type": "CanonicalUser" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "READ" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "WRITE" }, { "Grantee": { "DisplayName": "aws-scs-s3-readonly", "ID": "540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353", "Type": "CanonicalUser" }, "Permission": "READ_ACP" } ] }
버킷 정책으로 ElastiCache(Redis OSS)에 대한 버킷 ACL 권한 마이그레이션
  1. 다음 버킷 정책을 버킷에 추가하여 예제 값을 대체합니다.

    aws s3api put-bucket-policy --bucket amzn-s3-demo-bucket --policy file://policy.json policy.json: { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "Region.elasticache-snapshot.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  2. 버킷의 ACL을 기본 ACL로 재설정합니다.

    aws s3api put-bucket-acl --bucket amzn-s3-demo-bucket --acl private
  3. 객체 소유권에 대해 버킷 소유자 적용 설정을 적용합니다.