Amazon Web Services 한국 블로그
[공지] Amazon S3 보안 변경 사항 – 2023년 4월 적용 예정
2023년 4월부터, 버킷 보안에 대한 최신 모범 사례가 자동으로 적용되도록 Amazon Simple Storage Service(S3)에 두 가지 변경 사항을 적용할 예정입니다. 대상 리전에 변경 사항이 적용되면 리전에 새로 생성된 모든 버킷에는 기본적으로 S3 퍼블릭 액세스 차단 기능이 활성화되고 액세스 제어 목록(ACL)이 비활성화됩니다. 이 변경 사항은 4월부터 몇 주 내에 모든 AWS 리전에 적용될 예정입니다.
이 두 옵션은 이미 콘솔 기본값으로 적용되고 있으며, 오랫동안 모범 사례로 권장되어왔습니다. 이들 옵션은 S3 API, S3 CLI, AWS SDK 또는 AWS CloudFormation 템플릿을 사용하여 생성되는 버킷에 기본값으로 적용됩니다.
이에 대한 배경을 조금 살펴보자면, S3 버킷과 객체는 항상 프라이빗으로 기본 설정되었습니다. AWS는 2018년에 퍼블릭 액세스 차단을 추가하고 2021년에 ACL을 비활성화하는 기능을 추가하여 고객에게 더 많은 제어권을 부여했으며, 이전부터 보다 현대적이고 유연한 대안으로서 AWS Identity and Access Management(IAM) 정책을 사용하도록 권장해왔습니다.
이러한 변화를 고려할 때, 퍼블릭 버킷이나 ACL을 사용하는 새 버킷을 만들 때는 신중하게 접근하는 것이 좋으며 대부분의 애플리케이션에는 두 옵션 중 어느 것도 필요하지 않을 것입니다. 애플리케이션이 제대로 작동하는 것으로 확인되면 아래에서 설명하는 대로 변경해야 합니다(코드, 스크립트, AWS CloudFormation 템플릿 및 기타 자동화 옵션을 검토해야 함).
변경 내용에 대한 상세 정보
향후 변경될 사항에 대해 좀 더 자세히 살펴보겠습니다.
S3 퍼블릭 액세스 차단 – 새로 생성하는 버킷에 대해 이 게시물에서 설명하는 네 가지 버킷 수준 설정이 모두 활성화됩니다.
이후에 퍼블릭 액세스를 허용하는 버킷 정책 또는 액세스 포인트 정책을 설정하려고 하면 403 Access Denied 오류가 발생하면서 실행이 거부됩니다. 새 버킷에 대한 퍼블릭 액세스가 필요한 경우 평소처럼 버킷을 생성한 다음 DeletePublicAccessBlock
을 호출하여 퍼블릭 액세스 차단을 삭제하면 됩니다. 이 함수를 호출하려면 s3:PutBucketPublicAccessBlock 권한이 필요합니다. 함수와 권한에 대해 자세히 알아보려면 퍼블릭 액세스 차단을 참조하세요.
ACL 비활성화 – 새로 생성하는 버킷에 대해 버킷 소유자 강제 적용 설정이 활성화되어, 버킷 ACL과 객체 ACL이 적용되지 않고 누가 객체를 업로드하든 버킷 소유자가 객체 소유자가 됩니다. 버킷에 대해 ACL을 활성화하려면 CreateBucket
요청에서 ObjectOwnership
파라미터를 ObjectWriter
로 설정하거나 버킷을 생성한 후 DeleteBucketOwnershipControls
를 호출하면 됩니다. 이 파라미터를 사용하거나 이 함수를 호출하려면 s3:PutBucketOwnershipControls 권한이 필요합니다. 자세한 내용은 객체 소유권 제어 및 버킷 생성을 참조하세요.
향후 업데이트
저희가 이 변경 사항을 배포하기 시작할 때 첫 번째 새로운 소식 게시물을 게시하고 배포가 모든 AWS 리전에 도달하면 다른 게시물을 또 게시할 예정입니다. 고객이 자체 테스트를 실행하여 동작의 변화를 감지할 수도 있습니다.
— Jeff;