문제 해결
문제 해결
이 섹션은 Object Ownership과 ACL과 관련된 일반적인 오류 및 문제 해결 팁을 설명해요.
ACL이 비활성화된 버킷이나 객체에 ACL을 설정하려고 하면 다음 오류가 발생해요:
AccessControlListNotSupported - The specified bucket does not have ACLs enabled. (지정된 버킷은 ACL이 활성화되어 있지 않습니다.)
이 오류는 다음 조건이 충족되면 발생해요.
- 버킷이나 객체에 ACL이 비활성화된(Bucket owner enforced) 설정이 적용되어 있어요.
- 요청이 버킷이나 객체에 ACL을 설정하려고 해요. 요청에 ACL이 없으면 오류가 발생하지 않아요.
AccessControlListNotSupported오류 코드가 반환돼요.
S3 버킷을 이미지로 빌드(bake)하려고 하면 다음 오류가 발생해요:
AccessControlListNotSupported - The specified bucket does not have ACLs enabled.
다음 조건에서 발생해요.
- 사용자나 프로세스가 EC2 Image Builder, AWS Backup, 또는 기타 타사 제품 같은 백업 제품을 사용해 S3 버킷이나 디렉터리 버킷을 이미지로 빌드하려고 해요.
- 빌드는 특정 바이트 범위를 사용하는 HTTP PUT 요청 또는 [SSE-C(고객 제공 키를 사용한 서버 측 암호화)] 헤더가 있는 요청을 사용해요.
CopyObject 작업으로 버킷이나 계정 경계를 넘어 객체를 복사하려고 하면 다음 오류가 발생해요:
AccessControlListNotSupported - The specified bucket does not have ACLs enabled.
다음 조건에서 발생해요.
- 소유권 제어를 지정하지 않은 상태로 CopyObject를 실행해요.
- 대상 버킷에 ACL이 비활성화된(Bucket owner enforced) 설정이 있고 IAM 역할이 리소스 기반 정책으로 접근 권한을 부여받은 상태에서 S3 Batch Operations로 CopyObject를 실행해요.
이 오류들에 대해서는 두 요청 모두에 bucket-owner-full-control canned ACL을 포함할 것을 권장해요.
SSE-C로 외부 빌드하고 x-amz-acl 헤더에 bucket-owner-full-control을 함께 지정할 수도 있어요. 그래도 안 된다면, 아주 작은 소수의 타사 백업 제품이 SSE-C를 지원하지 않기 때문일 수 있어요.
CopyObject의 경우 다음을 권장해요:
- 파일을 빌드(bake)/복사/업로드할 때, 이미지나 복사본이 버킷 소유자에게 소유되도록 대상 객체에
bucket-owner-full-controlACL을 사용하세요. 이렇게 하면 버킷 소유자가 객체를 소유하고, 객체를 복사하면서 접근을 보존할 수 있어요. 버킷 소유자가 소유하지 않은 객체에는 대상(복사 대상) 객체에bucket-owner-full-controlACL을 명시적으로 설정할 것을 권장해요. - ACL이 비활성화된(Bucket owner enforced) 버킷에 업로드할 때, 대상이 버킷 소유자가 소유하고 있다면 별도의 ACL이 필요하지 않아요. 원본 및 대상 버킷의 소유자가 같다면 두 요청 모두에
bucket-owner-full-controlcanned ACL을 추가할 것을 권장해요.
출처: 문서
본문
Common errors (일반적인 오류)
ACL이 비활성화된 버킷에서 ACL 설정, 이미지 빌드, 크로스 버킷/계정 복사 시 발생하는 AccessControlListNotSupported 오류와 그 해결 방법을 설명했어요.