S3 버킷에 대한 퍼블릭 액세스 차단 설정 구성 - Amazon Simple Storage Service

S3 버킷에 대한 퍼블릭 액세스 차단 설정 구성

Amazon S3 퍼블릭 액세스 차단 기능은 액세스 포인트, 버킷 및 계정에 대한 설정을 제공하여 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리하는 데 도움을 줍니다. 기본적으로 새 버킷, 액세스 포인트 및 객체는 퍼블릭 액세스를 허용하지 않습니다.

자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 단원을 참조하십시오.

S3 콘솔, AWS CLI, AWS SDK 및 REST API를 사용하여 하나 이상의 버킷에 퍼블릭 액세스 권한을 부여할 수 있습니다. 이미 퍼블릭 상태인 버킷에 대한 퍼블릭 액세스를 차단할 수도 있습니다. 자세한 내용은 아래의 섹션을 참조하십시오.

계정의 모든 버킷에 대한 퍼블릭 액세스 차단 설정을 구성하려면 계정에 대한 퍼블릭 액세스 차단 설정 구성 섹션을 참조하십시오. 액세스 포인트에 대한 퍼블릭 액세스 차단 구성에 대한 자세한 내용은 액세스 포인트에서 퍼블릭 액세스 차단 작업 수행 단원을 참조하십시오.

Amazon S3 퍼블릭 액세스 차단은 S3 버킷 내에서 데이터에 대한 퍼블릭 액세스를 허용하는 모든 설정의 적용을 차단합니다. 이 섹션에서는 하나 이상의 S3 버킷에 대한 퍼블릭 액세스 차단 설정을 편집하는 방법에 대해 설명합니다. AWS CLI, AWS SDK 및 Amazon S3 REST API를 사용하여 퍼블릭 액세스를 차단하는 방법에 대한 자세한 내용은 Amazon S3 스토리지에 대한 퍼블릭 액세스 차단 섹션을 참조하십시오.

버킷 목록에서 버킷에 공개적으로 액세스할 수 있는지 확인할 수 있습니다. 액세스 열에서 Amazon S3는 버킷에 대한 권한에 다음과 같이 레이블을 지정합니다.

  • 퍼블릭 – 누구나 객체 목록 생성, 객체 쓰기, 읽기 및 쓰기 권한 중 하나 이상에 액세스할 수 있습니다.

  • 객체는 퍼블릭일 수 있음 – 버킷은 퍼블릭이 아니지만 적절한 권한이 있는 사람은 객체에 퍼블릭 액세스 권한을 부여할 수 있습니다.

  • 버킷과 객체는 퍼블릭이 아님 – 버킷 및 객체에는 퍼블릭 액세스가 없습니다.

  • 이 계정에 권한 있는 사용자만 해당 – 퍼블릭 액세스 권한을 부여하는 정책이 있기 때문에, 액세스는 이 계정과 AWS 서비스 보안 주체의 IAM 사용자 및 역할로 격리됩니다.

액세스 유형별로 버킷 검색을 필터링할 수도 있습니다. 버킷 검색 막대 옆에 있는 드롭다운 목록에서 액세스 유형을 선택하십시오.

버킷 및 퍼블릭 액세스 설정을 나열할 때 Error가 표시되면 필요한 권한이 없을 수 있습니다. 사용자 또는 역할 정책에 다음 권한이 추가되었는지 확인합니다.

s3:GetAccountPublicAccessBlock s3:GetBucketPublicAccessBlock s3:GetBucketPolicyStatus s3:GetBucketLocation s3:GetBucketAcl s3:ListAccessPoints s3:ListAllMyBuckets

드문 경우지만 AWS 리전 중단으로 인해 요청이 실패할 수도 있습니다.

단일 S3 버킷의 Amazon S3 퍼블릭 액세스 차단 설정 편집

단일 S3 버킷에 대한 퍼블릭 액세스 설정을 변경해야 하는 경우 다음 단계를 따르십시오.

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

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

  3. Permissions를 선택합니다.

  4. 버킷의 퍼블릭 액세스 설정을 변경하려면 편집을 선택하십시오. 네 가지 Amazon S3 퍼블릭 액세스 차단 설정에 대한 자세한 내용은 퍼블릭 액세스 차단 설정 섹션을 참조하십시오.

  5. 변경할 설정을 선택한 다음 저장을 선택합니다.

  6. 확인 메시지가 표시되면 confirm을 입력합니다. 그런 다음확인을 선택해 변경 사항을 저장합니다.

버킷을 생성할 때 Amazon S3 퍼블릭 액세스 차단 설정을 변경할 수 있습니다. 자세한 내용은 버킷 생성 단원을 참조하십시오.

버킷에서 퍼블릭 액세스를 차단하거나 퍼블릭 액세스 블록을 삭제하려면 AWS CLI 서비스 s3api를 사용하십시오. 이 서비스를 사용하는 버킷 수준 작업은 다음과 같습니다.

  • PUT PublicAccessBlock(버킷)

  • GET PublicAccessBlock(버킷)

  • DELETE PublicAccessBlock(버킷)

  • GET BucketPolicyStatus

자세한 내용과 예제는 AWS CLI 참조put-public-access-block을 참조하십시오.

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 클라이언트 클래스를 사용하는 버킷 수준 작업에만 적용됩니다. 계정 수준 작업의 경우 다음 예제를 참조하십시오.

Other SDKs

다른 AWS SDK 사용 방법에 대한 자세한 내용은 AWS SDK 및 Explorer를 사용하여 Amazon S3로 개발 단원을 참조하십시오.

REST API를 통한 Amazon S3 퍼블릭 액세스 차단 사용에 대한 자세한 내용은 Amazon Simple Storage Service API Reference의 다음 주제를 참조하십시오.