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 ストレージへのパブリックアクセスのブロック を参照してください。

[Buckets] (バケット) リストでバケットがパブリックにアクセス可能であるかどうかを確認できます。[Access] (アクセス) 列で、Amazon S3 はバケットのアクセス権限を次のようにラベル付けします。

  • パブリック – すべてのユーザーにオブジェクトのリスト権限、オブジェクトの書き込み権限、読み取りと書き込み権限のうちの 1 つまたは複数が与えられています。

  • オブジェクトは公開可能 – バケットはパブリックではありませんが、適切なアクセス許可を持つユーザーは、オブジェクトへのパブリックアクセスを許可できます。

  • バケットとオブジェクトは非公開 – バケットとオブジェクトにはパブリックアクセス許可がありません。

  • このアカウントの承認済ユーザーのみ – パブリックアクセスを許可するポリシーがあるため、アクセスはこのアカウントおよび 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 にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

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

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

  4. [Edit] (編集) をクリックして、バケットのパブリックアクセス設定を変更します。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 の使用については、「Amazon S3 API リファレンス」の「Developing with Amazon S3 using the AWS SDKs」を参照してください。

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