アクセス許可 - Amazon Simple Storage Service

アクセス許可

Amazon S3 マルチリージョンアクセスポイントは、複数の AWS リージョン の Amazon S3 バケットへのデータアクセスを簡素化します。マルチリージョンアクセスポイントは、Amazon S3 のデータアクセスオブジェクトのオペレーション (GetObjectPutObject など) を実行するために使用できる名前付きのグローバルエンドポイントです。各マルチリージョンアクセスポイントは、グローバルエンドポイントを介したすべてのリクエストについて、個別のアクセス許可とネットワークコントロールを設定できます。

各マルチリージョンアクセスポイントは、基になるバケットにアタッチされたバケットポリシーと連動して機能するカスタマイズされたアクセスポリシーを適用することもできます。リクエストが成功するには、以下のすべてでオペレーションが許可されている必要があります。

  • マルチリージョンアクセスポイントポリシー

  • 基になる AWS Identity and Access Management (IAM) ポリシー

  • 基になるバケットポリシー (リクエストのルーティング先)

マルチリージョンアクセスポイントポリシーは、特定の IAM ユーザーまたはグループからのリクエストのみを受け入れるように設定できます。これを行う方法の例については、「マルチリージョンアクセスポイントポリシーの例」の例 2 を参照してください。Virtual Private Cloud (VPC) からのリクエストだけを受け入れるようにマルチリージョンアクセスポイントポリシーを設定することで、プライベートネットワークへの Amazon S3 データアクセスを制限できます。

例えば、次のようになります。AppDataReader というユーザーを AWS アカウントで使用して、マルチリージョンアクセスポイントを介して GetObject リクエストを行うとします。リクエストが拒否されないようにするために、マルチリージョンアクセスポイントと、マルチリージョンアクセスポイントの基盤となる各バケットによって AppDataReader ユーザーに s3:GetObject 許可を付与する必要があります。AppDataReader は、この許可を付与しないバケットからデータを取得できません。

重要

バケットのアクセスコントロールをマルチリージョンアクセスポイントポリシーに委任しても、バケット名または Amazon リソースネーム (ARN) を使用してバケットに直接アクセスする場合のバケットの動作は変わりません。バケットに対して直接行われるすべてのオペレーションは、以前と同じように動作します。マルチリージョンアクセスポイントポリシーに含めた制限は、そのマルチリージョンアクセスポイントを介したリクエストにのみ適用されます。

マルチリージョンアクセスポイントへのパブリックアクセスの管理

マルチリージョンアクセスポイントは、 マルチリージョンアクセスポイントごとに独立したブロックパブリックアクセス設定をサポートしています。 マルチリージョンアクセスポイントを作成するときに、その マルチリージョンアクセスポイントに適用するブロックパブリックアクセス設定を指定できます。

注記

マルチリージョンアクセスポイントの個別のパブリックアクセスをブロックする設定が無効になっていても、(自分のアカウントの) [このアカウントのブロックパブリックアクセス設定] または [外部バケットのブロックパブリック設定] は引き続き適用されます。

マルチリージョンアクセスポイントを介して行われたリクエストについて、Amazon S3 は以下に対するブロックパブリックアクセス設定を評価します。

  • マルチリージョンアクセスポイント

  • 基になるバケット (外部バケットを含む)

  • マルチリージョンアクセスポイントを所有するアカウント

  • 基になるバケットを所有するアカウント (外部アカウントを含む)

これらの設定のいずれかで、リクエストをブロックする必要があることが示されると、Amazon S3 はリクエストを拒否します。Amazon S3 ブロックパブリックアクセス機能の詳細については、「Amazon S3 ストレージへのパブリックアクセスのブロック」を参照してください。

重要

デフォルトでは、マルチリージョンアクセスポイントに対してすべてのブロックパブリックアクセス設定が有効になります。 マルチリージョンアクセスポイントに適用したくない設定がある場合は、明示的に無効にする必要があります。

マルチリージョンアクセスポイントを作成した後にブロックパブリックアクセス設定を変更することはできません。

マルチリージョンアクセスポイントのパブリックアクセスブロック設定の表示

マルチリージョンアクセスポイントのパブリックアクセスブロック設定を表示するには
  1. AWS Management Console にサインインし、Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. ナビゲーションペインで、[Multi-Region Access Points] (マルチリージョンアクセスポイント) を選択します。

  3. 確認するマルチリージョンアクセスポイントの名前を選択します。

  4. [アクセス許可] タブを選択します。

  5. [Block Public Access settings for this Multi-Region Access Point] (このマルチリージョンアクセスポイントのパブリックアクセス設定をブロック) で、マルチリージョンアクセスポイントのブロックパブリックアクセス設定を確認します。

    注記

    マルチリージョンアクセスポイントを作成した後、ブロックパブリックアクセス設定を編集することはできません。したがって、パブリックアクセスをブロックする場合は、マルチリージョンアクセスポイントを作成する前に、パブリックアクセスがなくてもアプリケーションが正しく動作することを確認してください。

マルチリージョンアクセスポイントポリシーの使用

次のマルチリージョンアクセスポイントポリシーの例では、IAM ユーザーに対して、マルチリージョンアクセスポイントのファイルを一覧表示およびダウンロードするアクセス権限を付与しています。このポリシーの例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::123456789012:user/JohnDoe" }, "Action":[ "s3:ListBucket", "s3:GetObject" ], "Resource":[ "arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias", "arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias/object/*" ] } ] }

AWS Command Line Interface (AWS CLI) を使用して、マルチリージョンアクセスポイントポリシーを指定されたマルチリージョンアクセスポイントに関連付けるには、次の put-multi-region-access-point-policy コマンドを使用します。このコマンドの例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。各マルチリージョンアクセスポイントに設定できるポリシーは 1 つだけなので、put-multi-region-access-point-policy アクションをリクエストすると、指定されたマルチリージョンアクセスポイントに関連付けられている既存のポリシーがすべて置き換えられます。

AWS CLI
aws s3control put-multi-region-access-point-policy --account-id 111122223333 --details { "Name": "amzn-s3-demo-bucket-MultiRegionAccessPoint", "Policy": "{ \"Version\": \"2012-10-17\", \"Statement\": { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::111122223333:root\" }, \"Action\": [\"s3:ListBucket\", \"s3:GetObject\"], \"Resource\": [ \"arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias", \"arn:aws:s3::111122223333:accesspoint/MultiRegionAccessPoint_alias/object/*\" ] } }" }

前のオペレーションの結果をクエリするには、次のコマンドを使用します。

AWS CLI
aws s3control describe-multi-region-access-point-operation --account-id 111122223333 --request-token-arn requestArn

マルチリージョンアクセスポイントポリシーを取得するには、次のコマンドを使用します。

AWS CLI
aws s3control get-multi-region-access-point-policy --account-id 111122223333 --name=amzn-s3-demo-bucket-MultiRegionAccessPoint

マルチリージョンアクセスポイントポリシーの編集

マルチリージョンアクセスポイントポリシー (JSON で記述) は、このマルチリージョンアクセスポイントで使用する Amazon S3 バケットへのストレージアクセスを提供します。特定のプリンシパルがマルチリージョンアクセスポイントでさまざまなアクションを実行することを許可または拒否できます。リクエストがマルチリージョンアクセスポイントを介してバケットにルーティングされると、マルチリージョンアクセスポイントとバケットの両方のアクセスポリシーが適用されます。より制限の厳しいアクセスポリシーが常に優先されます。

注記

バケットに他のアカウントが所有するオブジェクトが含まれている場合、マルチリージョンアクセスポイントのポリシーは他の AWS アカウント が所有するオブジェクトには適用されません。

マルチリージョンアクセスポイントポリシーを適用した後、ポリシーを削除することはできません。ポリシーを編集するか、既存のポリシーを上書きする新しいポリシーを作成することができます。

マルチリージョンアクセスポイントポリシーを編集するには

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

  2. ナビゲーションペインで、[Multi-Region Access Points] (マルチリージョンアクセスポイント) を選択します。

  3. ポリシーを編集するマルチリージョンアクセスポイントの名前を選択します。

  4. [アクセス許可] タブを選択します。

  5. [Multi-Region Access Point policy] (マルチリージョンアクセスポイントポリシー) セクションまでスクロールします。[Edit] (編集) を選択し、ポリシーを更新します。

  6. [Edit Multi-Region Access Point policy] (マルチリージョンアクセスポイントポリシーの編集) ページが表示されます。ポリシーをテキストフィールドに直接入力するか、[Add statement] (ステートメントの追加) を選択してドロップダウンリストからポリシーの要素を選択できます。

    注記

    コンソールに、マルチリージョンアクセスポイントの Amazon リソースネーム (ARN) が自動的に表示されます。これをポリシーで使用できます。マルチリージョンアクセスポイントポリシーの例については、「マルチリージョンアクセスポイントポリシーの例」を参照してください。

マルチリージョンアクセスポイントポリシーの例

Amazon S3 マルチリージョンアクセスポイントは、AWS Identity and Access Management (IAM) リソースポリシーをサポートします。これらのポリシーを使用して、リソース、ユーザー、その他の条件別にマルチリージョンアクセスポイントの使用を制御することができます。アプリケーションやユーザーがマルチリージョンアクセスポイントを介してオブジェクトにアクセスできるようにするには、マルチリージョンアクセスポイントと基になるバケットの両方が同じアクセスを許可している必要があります。

マルチリージョンアクセスポイントと基になるバケットの両方に同じアクセスを許可するには、次のいずれかを実行します。

  • (推奨) Amazon S3 マルチリージョンアクセスポイントを使用する際のアクセスコントロールを簡素化するには、Amazon S3 バケットのアクセスコントロールをマルチリージョンアクセスポイントに委任します。これを行う方法の例については、このセクションの例 1 を参照してください。

  • マルチリージョンアクセスポイントポリシーに含まれているものと同じアクセス許可を、基になるバケットのポリシーに追加します。

重要

バケットのアクセスコントロールをマルチリージョンアクセスポイントポリシーに委任しても、バケット名または Amazon リソースネーム (ARN) を使用してバケットに直接アクセスする場合のバケットの動作は変わりません。バケットに対して直接行われるすべてのオペレーションは、以前と同じように動作します。マルチリージョンアクセスポイントポリシーに含めた制限は、そのマルチリージョンアクセスポイントを介したリクエストにのみ適用されます。

例 1 - (同じアカウントまたはクロスアカウントの) バケットポリシーで特定のマルチリージョンアクセスポイントへのアクセスを委任する

以下のバケットポリシーの例では、特定のマルチリージョンアクセスポイントにフルバケットアクセスを付与しています。したがって、このバケットへのすべてのアクセスは、そのマルチリージョンアクセスポイントに添付されているポリシーによってコントロールされます。バケットへの直接アクセスを必要としないすべてのユースケースでは、この方法でバケットを設定することをお勧めします。このバケットポリシー構造は、同じアカウントまたは別のアカウントのマルチリージョンアクセスポイントに使用できます。

{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointArn" : "MultiRegionAccessPoint_ARN" } } }] }
注記

アクセス権を付与する複数のマルチリージョンアクセスポイントがある場合は、必ず個々のマルチリージョンアクセスポイントを一覧表示してください。

例 2 – マルチリージョンアクセスポイントポリシーでマルチリージョンアクセスポイントにアカウントアクセスを付与する

以下のマルチリージョンアクセスポイントポリシーでは、MultiRegionAccessPoint_ARN によって定義されたマルチリージョンアクセスポイントに含まれるオブジェクトを表示および読み取る 123456789012 アクセス許可をアカウントに付与します。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS":"arn:aws:iam::123456789012:user/JohnDoe" }, "Action":[ "s3:ListBucket", "s3:GetObject" ], "Resource":[ "MultiRegionAccessPoint_ARN", "MultiRegionAccessPoint_ARN/object/*" ] } ] }
例 3 – バケットのリスト取得を許可するマルチリージョンアクセスポイントポリシー

以下のマルチリージョンアクセスポイントポリシーでは、MultiRegionAccessPoint_ARN によって定義されたマルチリージョンアクセスポイントに含まれるオブジェクトを表示する 123456789012 アクセス許可をアカウントに付与します。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/JohnDoe" }, "Action": "s3:ListBucket", "Resource": "MultiRegionAccessPoint_ARN" } ] }