S3 バケットへのパブリックアクセスブロック設定の構成 - Amazon Simple Storage Service

S3 バケットへのパブリックアクセスブロック設定の構成

Amazon S3 のパブリックアクセスブロックは、Amazon S3 のリソースへのパブリックアクセスの管理に役立つ、アクセスポイント、バケット、アカウントの設定を提供します。デフォルトでは、新しいバケット、アクセスポイント、およびオブジェクトはパブリックアクセスを許可しません。

詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。

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

アカウント内のすべてのバケットに対してパブリックアクセスをブロックする設定を構成するには、「アカウントのパブリックアクセスブロック設定の構成」を参照してください。アクセスポイントのパブリックアクセスブロック設定については、「アクセスポイントでのパブリックアクセスブロックオペレーションの実行」を参照してください。

Amazon S3 パブリックアクセスブロックを使用して、S3 バケット内のデータへのパブリックアクセスを許可しないようにアプリケーションを設定します。このセクションでは、1 つ以上の S3 バケットに対するブロックパブリックアクセス設定の編集方法について説明します。AWS CLI、AWS SDK、および Amazon S3 REST API を使用したパブリックアクセスのブロックについて詳細は、Amazon S3 ストレージへのパブリックアクセスのブロック を参照してください。

[IAM Access Analyzer] 列の [バケット] リストから、バケットがパブリックにアクセス可能であるかどうかを確認できます。詳細については、「IAM Access Analyzer for S3 を使用したバケットアクセスの確認」を参照してください。

バケットとそのパブリックアクセス設定を一覧表示したときに Error が表示された場合は、必要なアクセス許可がない可能性があります。以下のアクセス許可がユーザーポリシーまたはロールポリシーに追加されていることを確認します。

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

まれに、AWS リージョンの停止により、リクエストが失敗することもあります。

単一の S3 バケットをターゲットに Amazon S3 パブリックアクセスブロック設定を編集するには

単一の S3 バケットのパブリックアクセス設定を変更する必要がある場合は、以下の手順に従ってください。

  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. [バケット名] リストで、目的のバケットの名前を選択します。

  3. [Permissions] を選択します。

  4. [ブロックパブリックアクセス (バケット設定)] の横にある [編集] を選択して、バケットのパブリックアクセス設定を変更します。4 つの Amazon S3 パブリックアクセスブロック設定の詳細については、パブリックアクセスブロック設定 を参照してください。

  5. 設定を選択してから、[保存] を選択します。

  6. 確認を求められたら、「confirm」と入力します。次に、[確認] を選択して変更を保存します。

バケットを作成するとき、Amazon S3 パブリックアクセスブロックの設定を変更することもできます。詳細については、「汎用バケットの作成」を参照してください。

バケットのパブリックアクセスをブロックしたり、パブリックアクセスのブロックを削除するには、AWS CLI サービス s3api を使用します。このサービスを使用するバケットレベルの操作は次のとおりです。

  • PutPublicAccessBlock (バケットの場合)

  • GetPublicAccessBlock (バケットの場合)

  • DeletePublicAccessBlock (バケットの場合)

  • GetBucketPolicyStatus

詳細と例については、「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 の使用については、「Amazon S3 API リファレンス」の「Developing with Amazon S3 using the AWS SDKs」を参照してください。

REST API での Amazon S3 のパブリックアクセスブロックの使用については、Amazon Simple Storage Service API リファレンスの以下のトピックを参照してください。