ACL 비활성화를 위한 사전 요구 사항
ACL 비활성화를 위한 사전 요구 사항
기존 버킷에서 ACL을 비활성화하기(Bucket owner enforced 설정) 전에 먼저 완료해야 하는 사전 요구 사항이 있어요. 이 과정은 ACL로 부여된 권한이 손실되지 않도록 정책으로 마이그레이션했는지 확인하는 것을 목표로 해요.
참고
이 사전 요구 사항을 완료하기 전에 ACL을 비활성화하면, ACL을 통해 부여되었던 권한이 더 이상 적용되지 않아 예상치 못한 접근 중단이 발생할 수 있어요.
1단계: 버킷 및 객체 ACL을 검토하고 ACL 권한을 마이그레이션
먼저 버킷과 객체에 설정된 ACL을 검토해 어떤 계정이나 그룹에 어떤 권한이 부여되어 있는지 파악해요.
- 버킷 및 객체의 ACL을 나열하여 현재 부여된 모든 권한을 기록합니다.
get-bucket-acl및get-object-aclAWS CLI 명령을 사용할 수 있어요.
aws s3api get-bucket-acl --bucket amzn-s3-demo-bucket
aws s3api get-object-acl --bucket amzn-s3-demo-bucket --key example.txt
- ACL이 부여하는 접근을 버킷 정책으로 재현합니다. 예를 들어 다른 AWS 계정에 특정 접두사에 대한 READ 권한을 부여하던 ACL이 있었다면, 버킷 정책의
s3:GetObject권한으로 같은 접근을 표현해요.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::111122223333:root" },
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
}
]
}
- 권한을 버킷 정책으로 옮긴 뒤에는 더 이상 필요 없는 ACL을 제거합니다(선택 사항). ACL을 비활성화하면 기존 ACL은 접근 평가에서 제외되므로, 나중에 ACL을 다시 활성화하기 전까지는 접근에 영향을 주지 않아요.
2단계: 인증에 ACL이 필요했던 요청 식별
ACL로만 권한을 부여받던 요청이 있는지 식별해요. 예를 들어:
- 다른 계정이 객체를 업로드하고 그 객체에 대한 권한을 객체 ACL로 관리하던 방식인 경우.
x-amz-grant-*또는x-amz-acl헤더를 사용해 업로드 시 ACL을 지정하던 애플리케이션.
이런 요청은 ACL을 비활성화하면 실패할 수 있으므로, 애플리케이션이 버킷 정책이나 IAM 정책으로 동일한 접근을 얻게 되는지 확인하고, 필요한 경우 애플리케이션 구성을 업데이트해요.
3단계: ACL 관련 조건 키를 사용하는 버킷 정책 검토 및 업데이트
버킷 정책과 객체 정책에 ACL 관련 조건 키가 사용되는지 검토해요. 예를 들어:
s3:x-amz-acl– 요청에 포함된 canned ACL을 검사하는 조건 키.s3:x-amz-grant-read,s3:x-amz-grant-write,s3:x-amz-grant-full-control등s3:x-amz-grant-*– 요청에 포함된 ACL 권한 헤더를 검사하는 조건 키.
이런 조건 키가 있는 버킷 정책은 ACL을 비활성화하면 기대대로 동작하지 않을 수 있어요. ACL 비활성화 후에도 정책이 의도한 접근 제어를 제공하도록 조건을 업데이트하거나 제거해요.
참고
Bucket owner enforced로 설정하면
s3:x-amz-acl이나s3:x-amz-grant-*조건 키를 사용해 ACL 지정을 요구하는 요청은 더 이상bucket-owner-full-control외의 ACL을 포함할 수 없어요. 이 조건 키들을 사용하는 정책이 있으면 요구 사항에 맞게 조정해야 해요.
사전 요구 사항을 완료한 뒤에는 기존 버킷에 Object Ownership 설정을 참고해 ACL을 비활성화하세요.
출처: 문서
본문
Prerequisites for disabling ACLs (ACL 비활성화 사전 요구 사항)
ACL을 비활성화하기 전에 완료해야 할 세 가지 사전 요구 사항 — ACL 권한 검토·마이그레이션, ACL 인증 요청 식별, ACL 관련 조건 키가 있는 정책 검토·업데이트 — 을 설명했어요.