STAY KOBE

[SolutionArchitect Pro] Amazon S3 アクセス許可

S3 アクセス許可 の概要

S3 アクセス許可 の分類

S3 の アクセス許可 は、リソースベースのポリシーとユーザーポリシーに分類されます。

ユーザーポリシー

リソースベースのポリシー

バケットポリシーとアクセス制御リスト (ACL) は、Amazon S3 リソースに関連付けられているため、リソースベースです。

バケットポリシー

アクセス制御リスト (ACL)

Amazon S3リクエスト認証

Amazon S3がリクエストを受け取ると、リクエストを許可するか拒否するかを判断するために、すべてのユーザーポリシー、バケットポリシー、およびACLを評価する必要があります。

S3 は3つのコンテキストでポリシーを評価します

類推(アナロジー)

バケット操作の承認

  1. リクエスタが IAM ユーザーの場合は、そのユーザーが所属する親 AWS アカウントからアクセス許可 (ユーザーポリシー) を持っている必要があります。
  2. Amazon S3 は、親アカウントが所有するポリシーのサブセットを評価します。このポリシーのサブセットには、親アカウントがユーザーにアタッチするユーザーポリシーが含まれます。
  3. 親が要求内のリソース (この場合はバケット) も所有している場合、Amazon S3 は、対応するリソースポリシー (バケットポリシーとバケット ACL) も同時に評価します。
  4. リクエスタには、バケット所有者から特定のバケット操作を実行するためのアクセス許可 (バケットポリシーまたは ACL) も必要です。
  5. Amazon S3 は、バケットを所有する AWS アカウントによって所有されているポリシーのサブセットを評価します。バケット所有者は、バケットポリシーまたはバケット ACL を使用してアクセス許可を付与できます。
  6. バケットを所有する AWS アカウントが IAM ユーザーの親アカウントでもある場合は、ユーザーポリシーまたはバケットポリシーまたはその両方でバケットのアクセス許可を構成することに注意してください。

オブジェクト操作の承認

  1. リクエスタが IAM ユーザーの場合は、そのユーザーが所属する親 AWS アカウントからアクセス許可 (ユーザーポリシー) を持っている必要があります。
  2. Amazon S3 は、親アカウントが所有するポリシーのサブセットを評価します。このポリシーのサブセットには、親がユーザーにアタッチするユーザーポリシーが含まれます。
  3. 親も要求 (バケット、オブジェクト) 内のリソースを所有している場合、Amazon S3 は、対応するリソースポリシー (バケットポリシー、バケット ACL、およびオブジェクト ACL) を同時に評価します。
  4. 親 AWS アカウントがリソース (バケットまたはオブジェクト) を所有している場合は、ユーザーポリシーまたはリソースポリシーを使用して、その IAM ユーザーにリソースのアクセス許可を付与できます。
  5. S3 は、バケットを所有する AWS アカウントによって所有されているポリシーを評価します。
  6. 要求内のオブジェクトを所有する AWS アカウントがバケット所有者と同じでない場合、バケットコンテキストでは、バケット所有者がオブジェクトへのアクセスを明示的に拒否している場合、Amazon S3 はポリシーをチェックします。
  7. オブジェクトに明示的な拒否セットがある場合、Amazon S3 は要求を承認しません。
  8. リクエスタは、特定のオブジェクト操作を実行するために、オブジェクトの所有者 (オブジェクト ACL) からのアクセス許可を持っている必要があります。
  9. Amazon S3 はオブジェクト ACL を評価します。
  10. バケットとオブジェクトの所有者が同じである場合、バケットのコンテキストで評価されるバケットポリシーにオブジェクトへのアクセス権を与えることができます。
  11. 所有者が異なる場合、オブジェクトの所有者はオブジェクト ACL を使用してアクセス許可を付与する必要があります。
  12. オブジェクトを所有する AWS アカウントが、IAM ユーザーが属する親アカウントでもある場合は、ユーザーポリシーでオブジェクト権限を構成できます。

アクセス許可の委任


AWS認定試験の練習問題

  1. S3 のデータへのアクセスを制限するために使用できる機能2つの回答を選択。
    1. バケットまたはオブジェクトに S3 ACL を設定します。
    2. バケットの CloudFront ディストリビューションを作成します。
    3. S3 バケットポリシーを設定します。
    4. IAM ID フェデレーションを有効にする。
    5. S3 仮想ホスティングを使用する。
  2. IP アドレスブロックが S3 バケット内のパブリックオブジェクトにアクセスできないようにするには、どのメソッドを使用しますか。
    1. バケットポリシーを作成してバケットに適用する
    2. NACL を作成し、バケットの VPC にアタッチします。
    3. ACL を作成し、バケット内のすべてのオブジェクトに適用する。
    4. バケットにアクセスするすべてのユーザーの IAM ポリシーを変更する。
  3. ユーザーはACLを使用して S3 バケットの読み取り/書き込み許可を与えました。下記のオプションのどれが、他の AWS アカウントに許可を与えるための有効なIDですか(受領者はACLを使用していますか?
    1. IAM ユーザー ID
    2. S3 セキュア ID
    3. アクセス ID
    4. 標準ユーザー ID
  4. root アカウントの所有者は、バケット ACL を使用して、1つの IAM ユーザーに彼の S3 バケットのフルアクセスを与えている。IAM ユーザーが S3 コンソールにログインすると、どのアクションを実行できますか。
    1. 彼はバケットの内容を見ることができる。
    2. 彼はバケットですべての操作を行うことができます。
    3. ACL を使用して IAM ユーザーにアクセスを許可することはできません。
    4. IAM ユーザーは、API/SDK のみを使用してバケット上のすべての操作を実行できます。
  5. ルート AWS アカウントの所有者は、AWS S3 へのアクセス許可を設定するためのさまざまなオプションを理解しようとしています。以下のオプションは、S3 の許可を付与するための適切なオプションではないですか?
    1. ユーザーアクセスポリシー
    2. S3 オブジェクトポリシー
    3. S3 バケットポリシー
    4. S3 ACL
  6. システム管理者は、AWS S3 を使用してバケット、オブジェクト、およびフォルダを管理します。以下のステートメントのどれが本当であり、sysadmin によって考慮する必要があります?
    1. フォルダは ACL のみをサポート
    2. オブジェクトとバケットの両方にアクセスポリシーを持たせることはできますが、フォルダにポリシーを持たせる
    3. フォルダにポリシーを持たせる
    4. オブジェクトとバケットの両方が ACL を持つことができますが、フォルダに ACL を持つことはできません
  7. ユーザーは、パブリックにアクセスできない S3 バケットを作成しました。バケットはまた、プライベートである 30 のオブジェクトを持っている。ユーザーがオブジェクトをパブリックにしたい場合は、最小限の労力でこの設定を行う方法を教えてください。
    1. ユーザーはコンソールからすべてのオブジェクトを選択し、1つのポリシーを適用してパブリックにマークする必要があります。
    2. ユーザーはプログラムをプログラミングして、すべてのオブジェクトを公開する S3 SDK を使用して作成することができます。
    3. すべてのオブジェクトをパブリックとしてマークする AWS バケットポリシーを設定する。
    4. バケット ACL を public として作成し、すべてのオブジェクトをパブリックとしてマークします。
  8. パブリックな Web アプリケーションに対して静的アセットを提供するように Amazon S3 バケットを構成する必要があります。バケットにアップロードされたすべてのオブジェクトをパブリック読み取りに設定する方法を確認します。2つの回答を選択
    1. アップロード中にオブジェクトに対するアクセス権をパブリック読み取りに設定します。
    2. すべてのオブジェクトをパブリック読み取りに設定するようにバケット ACL を構成します。
    3. すべてのオブジェクトをパブリック読み取りに設定するようにバケットポリシーを構成します。
    4. AWS ID とアクセス管理の役割を使用して、バケットをパブリック読み取りに設定します。
    5. Amazon S3 オブジェクトはデフォルトで public に読み取られるため、アクションは必要ありません。
  9. Amazon S3 では、そのバケットまたはオブジェクトに対して他のアクションを実行するためのアクセス許可を作成したユーザーは自動的には提供されません。
    1. ファイル
    2. バケットまたはオブジェクト
    3. バケットまたはファイル
    4. オブジェクトまたはファイル
  10. ルートアカウントの所有者は、S3 バケット ACL を理解しようとしています。許可された定義済みグループを使用して、オブジェクトに ACL を付与するために、以下のオプションを使用することはできませんか。
    1. 認証済みユーザーグループ
    2. すべてのユーザーグループ
    3. ログ配信グループ
    4. 標準ユーザーグループ
  11. ユーザーが特定のバケットにログオンできるようにしています。ログバケットへのアクセスを許可するには以下のオプションのどれが最適でしょうか?
    1. IAM ポリシーを作成し、ログアクセスを許可する
    2. S3 バケットのロギングを有効にすることはできません。
    3. ログバケットへのアクセス権を持つ IAM ロールを作成します。
    4. ロググループに ACL を提供する
  12. ユーザーが S3 でアクセスを構成しようとしています。S3 バケット/オブジェクトへのアクセスを提供できないオプションは次のどれですか。
    1. IAM ユーザーのポリシーを定義する
    2. オブジェクトの ACL を定義する
    3. オブジェクトのポリシーを定義する
    4. バケットのポリシーを定義する
  13. ユーザーが所有していない S3 バケットのオブジェクトにユーザーがアクセスしています。彼がそのバケツのオブジェクトをパブリックに設定しようとしている場合、以下のオプションのどれがこのアクションに適しているのでしょうか?
    1. バケットをフルアクセスで公開する
    2. バケットのポリシーを定義する
    3. オブジェクトに ACL を提供する
    4. 権限を持つ IAM ユーザーを作成する
  14. バケット所有者は、別のアカウントの IAM ユーザーがバケット内のオブジェクトをアップロードまたはアクセスできるようにしました。アカウント A の IAM ユーザーが、アカウント B の IAM ユーザーによって作成されたオブジェクトにアクセスしようとしています。このシナリオではどうなるでしょうか?
    1. S3 がアクセス権の競合によりエラーを与えるため、バケットポリシーが作成されないことがある。
    2. 複数の IAM ユーザーに許可を与えることはできません。
    3. AWS S3 は、アカウント A の所有者、バケット所有者、および IAM ユーザー B によってオブジェクトに与えられた適切な権限を検証します。
    4. 1つのアカウントの IAM ユーザーが他の IAM ユーザーのオブジェクトにアクセスすることはできません。

Jayendra’s Blog

この記事は自己学習用に「AWS S3 Permissions – Certification(Jayendra’s Blogより)」を日本語に訳した記事です。