내 S3 버킷의 공개 접근 차단 설정 구성
내 S3 버킷의 공개 접근 차단 설정 구성
Amazon S3 Block Public Access는 액세스 포인트, 버킷, 조직, 계정에 대한 설정을 제공해 Amazon S3 리소스에 대한 공개 접근을 관리할 수 있게 해 줘요. 기본적으로 새 버킷, 액세스 포인트, 객체는 공개 접근을 허용하지 않아요. 자세한 내용은 Amazon S3 스토리지에 대한 공개 접근 차단을 참고하세요.
참고
버킷 수준 Block Public Access 설정은 조직 및 계정 수준 정책과 함께 작동해요. S3는 버킷 수준 설정과 유효한 계정 수준 구성 중 가장 제한적인 설정을 적용해요(조직 정책이 있으면 강제될 수 있어요).
S3 콘솔, AWS CLI, AWS SDK, REST API를 사용해 하나 이상의 버킷에 공개 접근을 부여할 수 있어요. 이미 공개된 버킷에 대한 공개 접근을 차단할 수도 있어요. 자세한 내용은 아래 섹션을 참고하세요.
계정의 모든 버킷에 대한 공개 접근 차단 설정을 구성하려면 내 계정의 공개 접근 차단 설정 구성을 참고하세요. 조직 전체 중앙 집중식 관리에 대해서는 AWS Organizations 사용자 가이드의 S3 정책을 참고하세요.
액세스 포인트에 대한 공개 접근 차단 구성에 대한 내용은 액세스 포인트에서 block public access 작업 수행을 참고하세요.
Amazon S3 Block Public Access는 S3 버킷 안 데이터에 공개 접근을 허용하는 어떤 설정의 적용도 방지해요. 이 섹션은 하나 이상의 S3 버킷에 대한 Block Public Access 설정을 편집하는 방법을 설명해요. AWS CLI, AWS SDK, Amazon S3 REST API를 사용한 공개 접근 차단에 대한 자세한 내용은 Amazon S3 스토리지에 대한 공개 접근 차단을 참고하세요.
Buckets 목록의 IAM Access Analyzer 열에서 버킷이 공개적으로 접근 가능한지 확인할 수 있어요. 자세한 내용은 IAM Access Analyzer for S3로 버킷 접근 검토를 참고하세요.
버킷과 그 공개 접근 설정을 나열할 때 오류가 표시되면 필요한 권한이 없을 수 있어요. 사용자 또는 역할 정책에 다음 권한이 추가되어 있는지 확인하세요.
s3:GetAccountPublicAccessBlock
s3:GetBucketPublicAccessBlock
s3:GetBucketPolicyStatus
s3:GetBucketLocation
s3:GetBucketAcl
s3:ListAccessPoints
s3:ListAllMyBuckets
드물게 AWS 리전 중단 때문에 요청이 실패할 수도 있어요.
단일 S3 버킷의 Amazon S3 block public access 설정을 편집하려면
다음 단계는 단일 S3 버킷의 공개 접근 설정을 변경해야 할 때 따르세요.
- AWS Management Console에 로그인하고 Amazon S3 콘솔을
https://console.aws.amazon.com/s3/에서 엽니다. - Bucket name 목록에서 원하는 버킷의 이름을 선택합니다.
- Permissions를 선택합니다.
- 버킷의 공개 접근 설정을 변경하려면 Block public access (bucket settings) 옆의 Edit를 선택합니다. Amazon S3 Block Public Access의 4가지 설정에 대한 자세한 내용은 공개 접근 차단 설정을 참고하세요.
- 설정 중 하나를 선택한 다음 Save changes를 선택합니다.
- 확인을 요청하면
confirm을 입력합니다. 그런 다음 Confirm을 선택해 변경 사항을 저장합니다.
중요
버킷 수준 Block Public Access 설정을 비활성화해도 버킷은 계정 수준 또는 조직 수준 정책으로 여전히 보호될 수 있어요. S3는 항상 모든 수준에서 가장 제한적인 설정 조합을 적용해요.
버킷을 만들 때 Amazon S3 Block Public Access 설정을 변경할 수도 있어요. 자세한 내용은 일반 목적 버킷 만들기를 참고하세요.
버킷의 공개 접근을 차단하거나 공개 접근 차단을 삭제하려면 s3api AWS CLI 서비스를 사용하세요. 이 서비스를 사용하는 버킷 수준 작업은 다음과 같아요.
PutPublicAccessBlock(버킷용)GetPublicAccessBlock(버킷용)DeletePublicAccessBlock(버킷용)GetBucketPolicyStatus
자세한 내용과 예제는 AWS CLI Reference의 put-public-access-block을 참고하세요.
참고
이 버킷 수준 작업은 조직 수준 정책에 의해 제한되지 않아요. 하지만 유효한 공개 접근 동작은 여전히 버킷, 계정, 조직 설정 중 가장 제한적인 조합에 따라 결정돼요. 계층 구조와 정책 상호작용에 대한 자세한 내용은 S3 콘솔 사용을 참고하세요.
Java
AmazonS3 client = AmazonS3ClientBuilder.standard()
.withCredentials(<credentials>)
.build();
client.setPublicAccessBlock(new SetPublicAccessBlockRequest()
.withBucketName(<bucket-name>)
.withPublicAccessBlockConfiguration(new PublicAccessBlockConfiguration()
.withBlockPublicAcls(<value>)
.withIgnorePublicAcls(<value>)
.withBlockPublicPolicy(<value>)
.withRestrictPublicBuckets(<value>)));
중요
이 예제는
AmazonS3클라이언트 클래스를 사용하는 버킷 수준 작업에만 해당해요. 계정 수준 작업은 다음 예제를 참고하세요.
기타 SDK
다른 AWS SDK 사용에 대한 자세한 내용은 Amazon S3 API Reference의 AWS SDK로 Amazon S3 개발을 참고하세요.
REST API를 통해 Amazon S3 Block Public Access를 사용하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service API Reference의 다음 주제를 참고하세요.
버킷 수준 작업
PutPublicAccessBlockGetPublicAccessBlockDeletePublicAccessBlockGetBucketPolicyStatus
출처: 문서
본문
Configuring bucket-level block public access (버킷 수준 공개 접근 차단 구성)
하나 이상의 S3 버킷의 공개 접근 차단 설정을 편집하는 방법을 설명했어요. 버킷 수준 설정을 비활성화해도 계정·조직 수준 정책이 버킷을 보호할 수 있다는 점을 기억하세요.