

# S3 バケットへのパブリックアクセスブロック設定の構成
<a name="configuring-block-public-access-bucket"></a>

Amazon S3 パブリックアクセスブロックは、Amazon S3 のリソースへのパブリックアクセスの管理に役立つ、アクセスポイント、バケット、組織、アカウントの設定を提供します。デフォルトでは、新しいバケット、アクセスポイント、およびオブジェクトはパブリックアクセスを許可しません。詳細については、「[Amazon S3 ストレージへのパブリックアクセスのブロック](access-control-block-public-access.md)」を参照してください。

**注記**  
バケットレベルのブロックパブリックアクセス設定は、組織およびアカウントレベルのポリシーと連動します。S3 は、バケットレベルと有効なアカウントレベルの設定の間に最も制限の厳しい設定を適用します (存在する場合は組織ポリシーによって強制される場合があります)。

S3 コンソール、AWS CLI、AWS SDK、REST API を使用して、1 つ以上のバケットへのパブリックアクセスを許可できます。また、既にパブリックになっているバケットへのパブリックアクセスをブロックすることもできます。詳細については、関連するセクションを参照してください。

アカウント内のすべてのバケットに対してパブリックアクセスをブロックする設定を構成するには、「[アカウントのパブリックアクセスブロック設定の構成](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)」を参照してください。

## 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 リファレンス」の「[Developing with Amazon S3 using the AWS SDKs](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 リファレンス*の以下のトピックを参照してください。
+ バケットレベルの操作
  + [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)