

# S3 버킷에 대한 퍼블릭 액세스 차단 설정 구성
<a name="configuring-block-public-access-bucket"></a>

Amazon S3 Block Public Access 기능은 액세스 포인트, 버킷, 조직 및 계정에 대한 설정을 제공하여 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리하는 데 도움을 줍니다. 기본적으로 새 버킷, 액세스 포인트 및 객체는 퍼블릭 액세스를 허용하지 않습니다. 자세한 내용은 [Amazon S3 스토리지에 대한 퍼블릭 액세스 차단](access-control-block-public-access.md) 섹션을 참조하세요.

**참고**  
버킷 수준 Block Public Access 설정은 조직 및 계정 수준 정책과 함께 작동합니다. S3는 버킷 수준 구성과 효과적인 계정 수준 구성 간에 가장 제한적인 설정을 적용합니다(있는 경우 조직 정책에 따라 적용될 수 있음).

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

계정의 모든 버킷에 대한 퍼블릭 액세스 차단 설정을 구성하려면 [계정에 대한 퍼블릭 액세스 차단 설정 구성](configuring-block-public-access-account.md) 섹션을 참조하십시오. 조직 전체의 중앙 집중식 관리는 *AWS Organizations 사용 설명서*의 [S3 정책](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_s3.html)을 참조하세요.

액세스 포인트에 대한 퍼블릭 액세스 차단 구성에 대한 자세한 내용은 [액세스 포인트에서 퍼블릭 액세스 차단 작업 수행](access-control-block-public-access.md#access-control-block-public-access-examples-access-point) 단원을 참조하십시오.

# S3 콘솔 사용
<a name="block-public-access-bucket"></a>

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

**버킷** 목록의 **IAM Access Analyzer** 열에서 버킷에 공개적으로 액세스할 수 있는지 확인할 수 있습니다. 자세한 내용은 [IAM Access Analyzer for S3를 사용하여 버킷 액세스 검토](access-analyzer.md) 섹션을 참조하세요.

버킷 및 퍼블릭 액세스 설정을 나열할 때 `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/](https://console.aws.amazon.com/s3/)에서 Amazon S3 콘솔을 엽니다.

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

1. **Permissions**를 선택합니다.

1. **퍼블릭 액세스 차단(버킷 설정)** 옆의 **편집**을 선택하여 버킷의 퍼블릭 액세스 설정을 변경합니다. 네 가지 Amazon S3 퍼블릭 액세스 차단 설정에 대한 자세한 내용은 [퍼블릭 액세스 차단 설정](access-control-block-public-access.md#access-control-block-public-access-options) 섹션을 참조하십시오.

1. 설정 중 하나를 선택한 다음 **변경 내용 저장**을 선택합니다.

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

**중요**  
버킷 수준 Block Public Access 설정을 비활성화하더라도 버킷은 계정 수준 또는 조직 수준 정책으로 보호될 수 있습니다. S3는 항상 모든 수준에서 가장 제한적인 설정 조합을 적용합니다.

버킷을 만들 때 Amazon S3 Block Public Access 설정을 변경할 수도 있습니다. 자세한 내용은 [범용 버킷 생성](create-bucket-overview.md) 섹션을 참조하세요.

## AWS CLI 사용
<a name="configuring-block-public-access-bucket-cli"></a>

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

자세한 내용과 예제는 *AWS CLI 참조*의 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-public-access-block.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-public-access-block.html) 섹션을 참조하십시오.

**참고**  
이러한 버킷 수준 작업은 조직 수준 정책에 의해 제한되지 않습니다. 그러나 효과적인 퍼블릭 액세스 동작은 여전히 버킷, 계정 및 조직 설정의 가장 제한적인 조합에 의해 관리됩니다. 계층 구조 및 정책 상호 작용에 대한 자세한 내용은 [S3 콘솔 사용](block-public-access-bucket.md) 섹션을 참조하세요.

## AWS SDK 사용
<a name="configuring-block-public-access-bucket-sdk"></a>

------
#### [ 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 사용에 대한 정보는 **Amazon S3 API 참조의 [AWS SDK를 사용하여 Amazon S3에서 개발](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)을 참조하세요.

------

## REST API 사용
<a name="configuring-block-public-access-bucket-api"></a>

REST API를 통한 Amazon S3 퍼블릭 액세스 차단 사용에 대한 자세한 내용은 *Amazon Simple Storage Service API Reference*의 다음 주제를 참조하세요.
+ 버킷 수준 작업
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html)
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)