IAM Policy Simulator を使用した IAM ポリシーのテスト - AWS Identity and Access Management

IAM Policy Simulator を使用した IAM ポリシーのテスト

IAM ポリシーを使用する方法と理由の詳細については、「IAM でのポリシーとアクセス許可」を参照してください。

IAM Policy Simulator コンソールは https://policysim.aws.amazon.com/ でアクセスできます。

IAM Policy Simulator を使用すると、アイデンティティベースのポリシー、IAM アクセス許可の境界、組織のサービスコントロールポリシー、リソースベースのポリシーをテストおよびトラブルシューティングできます。以下に示しているのは、Policy Simulator で可能ないくつかの一般的な処理です。

  • AWS アカウントの IAM ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーをテストします。複数のポリシーがユーザー、ユーザーグループ、またはロールにアタッチされている場合は、すべてのポリシーまたは選択した個別のポリシーをテストできます。特定のリソースで選択されたポリシーについて、どのアクションが許可または拒否されているかをテストできます。

  • IAM エンティティに対するアクセス許可の境界の効果をテストし、トラブルシューティングします。注: 一度にシミュレートできるアクセス許可の境界は 1 つのみです。

  • Amazon S3 バケット、Amazon SQS キュー、Amazon SNS トピック、Amazon S3 Glacier ボールトなどの AWS リソースにアタッチされているポリシーをテストします。

  • AWS アカウントが AWS Organizations Organizations の組織である場合、 ポリシーとリソースポリシーへのサービスコントロールポリシー (SCP) の影響をテストできます。

  • ユーザー、ユーザーグループ、またはロールにまだアタッチされていない新しいポリシーをテストする。そのためには、テストするポリシーを Policy Simulator に入力またはコピーします。これらはシミュレーションでのみ使用され、保存されません。注: リソースベースのポリシーは、Policy Simulator に入力またはコピーできません。シミュレーターでリソースベースのポリシーを使用するには、シミュレーションにリソースを含める必要があります。また、チェックボックスをオンにして、シミュレーションにそのリソースのポリシーも含める必要もあります。

  • 指定したサービス、アクション、リソースを含むポリシーをテストします。たとえば、ポリシーによってエンティティが Amazon S3 サービスの特定のバケットで ListAllMyBucketsCreateBucket、および DeleteBucket アクションの実行を許可されていることをテストできます。

  • テストするポリシー内の Condition 要素に含まれる IP アドレスや日付などのコンテキストキーを提供して、実際のシナリオをシミュレートします。

  • ポリシーのどのステートメントによって特定のリソースやアクションへのアクセスが許可または拒否されているかを特定する。

IAM Policy Simulator のしくみ

Policy Simulator は、選択されたポリシーを評価し、指定された各アクションに対して有効なアクセス許可を特定します。このシミュレーターでは、AWS のサービスに対する実際のリクエストで使用されるものと同じポリシー評価エンジンが使用されます。しかし、シミュレーターは以下の点でライブ AWS 環境とは異なります。

  • Policy Simulator は実際の AWS サービスリクエストを行わないため、実働 AWS 環境に不要な変更を加える可能性のあるリクエストを安全にテストできます。

  • Policy Simulator は選択したアクションの実行をシミュレートしないため、シミュレートされたリクエストに対するレスポンスをレポートできません。返される結果は、リクエストされたアクションが許可されるか拒否されるかだけです。

  • Policy Simulator 内でポリシーを編集した場合、それらの変更は Policy Simulator にのみ影響を与えます。AWS アカウントの対応するポリシーが変更されることはありません。

  • テストできませんAWS Organizationsのサービスコントロールポリシー (SCP)グローバル条件キー

IAM Policy Simulator の使用に必要なアクセス許可

Policy Simulator コンソールまたは Policy Simulator API を使用して、ポリシーをテストできます。デフォルトでは、コンソールユーザーは、ユーザー、ユーザーグループ、またはロールにまだアタッチされていないポリシーをテストできます。そのためには、それらのポリシーをシミュレーターに入力またはコピーします。それらのポリシーはシミュレーションでのみ使用され、機密情報が公開されることはありません。API ユーザーには、アタッチされていないポリシーをテストするアクセス権限が必要です。コンソールまたは API ユーザーに、AWS アカウントの IAM ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーをテストすることを許可できます。そのためには、それらのポリシーを取得するアクセス許可を付与する必要があります。リソースベースのポリシーをテストするには、リソースのポリシーを取得するための権限がユーザーに必要です。

ポリシーのシミュレートをユーザーに許可するコンソールまたは API ポリシーの例については、「ポリシーの例: AWS Identity and Access Management (IAM)」を参照してください。

Policy Simulator コンソールの使用に必要なアクセス許可

AWS アカウントの IAM ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーをテストすることをユーザーに許可できます。そのためには、それらのポリシーを取得するアクセス許可をユーザーに付与する必要があります。リソースベースのポリシーをテストするには、リソースのポリシーを取得するための権限がユーザーに必要です。

ユーザー、ユーザーグループ、またはロールにアタッチされたポリシーのために Policy Simulator コンソールの使用を許可するポリシー例を確認するには、「IAM: Policy Simulator のコンソールへのアクセス」を参照してください。

特定のパスがあるユーザーにのみ Policy Simulator コンソールの使用を許可するポリシー例を確認するには、IAM: ユーザーパスに基づく Policy Simulator のコンソールへのアクセスを参照してください。

1 つのタイプのエンティティのみのために Policy Simulator コンソールの使用を許可するポリシーを作成するには、次の手順を実行します。

コンソールユーザーがユーザーのポリシーをシミュレートできるようにするには

次のアクションをポリシーに含めます。

  • iam:GetGroupPolicy

  • iam:GetPolicy

  • iam:GetPolicyVersion

  • iam:GetUser

  • iam:GetUserPolicy

  • iam:ListAttachedUserPolicies

  • iam:ListGroupsForUser

  • iam:ListGroupPolicies

  • iam:ListUserPolicies

  • iam:ListUsers

コンソールユーザーがユーザーグループのポリシーをシミュレートできるようにするには

次のアクションをポリシーに含めます。

  • iam:GetGroup

  • iam:GetGroupPolicy

  • iam:GetPolicy

  • iam:GetPolicyVersion

  • iam:ListAttachedGroupPolicies

  • iam:ListGroupPolicies

  • iam:ListGroups

コンソールユーザーがロールのポリシーをシミュレートできるようにするには

次のアクションをポリシーに含めます。

  • iam:GetPolicy

  • iam:GetPolicyVersion

  • iam:GetRole

  • iam:GetRolePolicy

  • iam:ListAttachedRolePolicies

  • iam:ListRolePolicies

  • iam:ListRoles

リソースベースのポリシーをテストするには、リソースのポリシーを取得するためのアクセス権限がユーザーに必要です。

コンソールユーザーが Amazon S3 バケットのリソースベースのポリシーをテストできるようにするには

次のアクションをポリシーに含めます。

  • s3:GetBucketPolicy

たとえば、次のポリシーではこのアクションを使用して、コンソールユーザーに特定の Amazon S3 バケット内のリソースベースのポリシーをシミュレートすることを許可します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketPolicy", "Resource":"arn:aws:s3:::bucket-name/*" } ] }

Policy Simulator API の使用に必要なアクセス許可

Policy Simulator API オペレーション GetContextKeyForCustomPolicy および SimulateCustomPolicy を使用すると、ユーザー、ユーザーグループ、またはロールにまだアタッチされていないポリシーをテストできます。このようなポリシーをテストするには、ポリシーを文字列として API に渡します。それらのポリシーはシミュレーションでのみ使用され、機密情報が公開されることはありません。API を使用して、 アカウントの ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーをテストすることもできます。そのためには、GetContextKeyForPrincipalPolicy および SimulatePrincipalPolicy を呼び出すアクセス許可をユーザーに付与する必要があります。

現在の AWS アカウントでアタッチされているポリシーとアタッチされていないポリシーに対して Policy Simulator API を使用することを許可するポリシーの例を表示するには、「IAM: Policy Simulator API へのアクセス」を参照してください。

1 つのタイプのポリシーのみのために Policy Simulator API の使用を許可するポリシーを作成するには、次の手順を実行します。

API ユーザーが API に直接文字列として渡されるポリシーをシミュレートできるようにするには

次のアクションをポリシーに含めます。

  • iam:GetContextKeysForCustomPolicy

  • iam:SimulateCustomPolicy

API ユーザーが IAM ユーザー、ユーザーグループ、ロール、またはリソースにアタッチされたポリシーをシミュレートできるようにするには

次のアクションをポリシーに含めます。

  • iam:GetContextKeysForPrincipalPolicy

  • iam:SimulatePrincipalPolicy

たとえば、Bob という名前のユーザーに、Alice という名前のユーザーに割り当てられたポリシーをシミュレートするアクセス許可を付与するには、Bob にリソース arn:aws:iam::777788889999:user/alice へのアクセス権を付与します。

特定のパスがあるユーザーにのみ Policy Simulator API の使用を許可するポリシー例を確認するには、IAM: ユーザーパスに基づいた Policy Simulator API へのアクセスを参照してください。

IAM Policy Simulator の使用方法 (コンソール)

デフォルトでは、ユーザーは、ユーザー、ユーザーグループ、またはロールにまだアタッチされていないポリシーをテストできます。そのためには、それらのポリシーを Policy Simulator コンソールに入力またはコピーします。それらのポリシーはシミュレーションでのみ使用され、機密情報が公開されることはありません。

ユーザー、ユーザーグループ、またはロールにアタッチされていないポリシーをテストするには (コンソール)

  1. AWS マネジメントコンソールにサインインし、IAM ポリシーシミュレーター (https://policysim.aws.amazon.com/) を開きます。

  2. ページ上部にある [Mode: (モード:)] メニューで [New Policy (新しいポリシー)] を選択します。

  3. [Policy Sandbox (ポリシーサンドボックス)] で [新規ポリシーの作成] を選択します。

  4. ポリシーをシミュレーターに入力またはコピーし、次のステップで説明されているようにシミュレーターを使用します。

IAM Policy Simulator コンソールを使用するアクセス許可を取得したら、シミュレーターを使用して ユーザー、ユーザーグループ、ロール、またはリソースポリシーをテストできます。

ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーをテストするには (コンソール)

  1. IAM ポリシーシミュレーターコンソール (https://policysim.aws.amazon.com/) を開きます。

    注記

    IAM ユーザーとして Policy Simulator にサインインするには、割り当てられたサインイン URL を使用して AWS Management Console にサインインします。その後、 に移動しますhttps://policysim.aws.amazon.com/ IAM ユーザーとしてサインインする詳細については、「IAM ユーザーが AWS にサインインする方法」を参照してください。

    Policy Simulator が [既存のポリシー] モードで開き、アカウントの IAM ユーザーを [ユーザー、グループ、およびロール] の下に一覧表示します。

  2. 目的のタスクに該当するオプションを選択します。

    これをテストするには: 処理:
    ユーザーにアタッチされているポリシー ユーザー、グループ、ロールリストでユーザーを選択します。その後、ユーザーを選択します。
    ユーザーグループにアタッチされているポリシー ユーザー、グループ、ロールリストでグループを選択します。次に、ユーザーグループを選択します。
    ロールにアタッチされているポリシー ユーザー、グループ、ロールリストでロールを選択します。その後、ロールを選択します。
    リソースにアタッチされているポリシー 「」を参照してくださいステップ 9
    ユーザー、ユーザーグループ、またはロールのカスタムポリシー [新しいポリシーの作成] を選択します。新しい [ポリシー] ペインで、ポリシーを入力または貼り付け、[Apply (適用)] を選択します。
    Tip

    ユーザーグループにアタッチされたポリシーをテストするには、IAM Policy Simulator を IAM コンソールから直接起動します。ナビゲーションペインで、[Groups] を選択します。ポリシーをテストするグループの名前を選択し、次に [Permissions (アクセス許可)] タブを選択します。シミュレートを選択します。

    ユーザーにアタッチされているカスタマー管理ポリシーをテストするには、ナビゲーションペインで [ユーザー] を選択します。ポリシーをテストするユーザーの名前を選択します。[Permissions (アクセス許可)] タブを選択し、テストするポリシーを展開します。右端にある [ポリシーのシミュレート] を選択します。新しいウィンドウで IAM Policy Simulator が開き、選択したポリシーが [ポリシー] ペインに表示されます。

  3. (オプション) アカウントが AWS Organizations の組織のメンバーである場合は、AWS Organizations SCP の横にあるチェックボックスをオンにして、シミュレートされた評価に SCP を含めます。SCP は、組織または組織単位 (OU) のアクセス許可の上限を指定する JSON ポリシーです。SCP はメンバーアカウントのエンティティに対するアクセス許可を制限します。SCP によってサービスまたはアクションがブロックされる場合、そのアカウントには、そのサービスにアクセスできるエンティティ、またはそのアクションを実行できるエンティティがありません。管理者が IAM またはリソースポリシーを使用してそのサービスまたはアクションへのアクセス権限を明示的に付与したとしても同様です。

    アカウントが組織のメンバーでない場合、チェックボックスは表示されません。

  4. (オプション) IAM エンティティ(ユーザーまたはロール)のアクセス許可境界として設定されているポリシーをテストできますが、ユーザーグループに対してはテストできません。現在、エンティティにアクセス許可の境界ポリシーが設定されている場合、そのポリシーが [ポリシー] ペインに表示されます。1 つのエンティティに設定できるアクセス許可の境界は 1 つのみです。別のアクセス許可の境界をテストするために、カスタムのアクセス許可の境界を作成できます。そのためには、[新しいポリシーの作成] を選択します。新しい [ポリシー] ペインが開きます。メニューで、[Custom IAM Permissions Boundary Policy (カスタムの IAM アクセス許可の境界ポリシー)] を選択します。新しいポリシーの名前を入力し、下の領域にポリシーを入力またはコピーします。[Apply (適用)] を選択して、ポリシーを保存します。次に、[Back (戻る)] を選択して、元の [ポリシー] ペインに戻ります。その後、シミュレーションに使用するアクセス許可の境界の横にあるチェックボックスをオンにします。

  5. (オプション) ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーのサブセットのみをテストできます。そのためには、[ポリシー] ペインで、除外する各ポリシーの横にあるチェックボックスをオフにします。

  6. Policy Simulator で、[Select service (サービスの選択)] を選択してから、テストするサービスを選択します。その後、[アクションの選択] を選択し、テストするアクションを 1 つ以上選択します。メニューでは、サービスごとに使用できる選択肢しか表示されませんが、[Action Settings and Results (アクションの設定と結果)] では選択したすべてのサービスとアクションが表示されます。

  7. (オプション) 「ステップ 2」および「ステップ 5」で選択したポリシーに AWS グローバル条件キーが含まれている場合、それらのキーの値を入力します。これを行うには、[グローバル設定] セクションを展開して、そこに表示されるキー名の値を入力します。

    警告

    条件キーの値を空にすると、そのキーはシミュレーション時に無視されます。これによってエラーが発生し、シミュレーションの実行が失敗する場合があります。また、シミュレーションが実行されても、結果が信頼できない場合があります。シミュレーションが、条件キーや変数の値を含む実際の状況と一致しない場合もあります。

  8. (オプション) 選択した各アクションは [Action Settings and Results (アクションの設定と結果)] リストに表示され、実施にシミュレーションを実行するまで [Not simulated (未シミュレーション)] が [アクセス許可] 列に表示されます。シミュレーションを実行する前に、リソースで各アクションを設定できます。特定のシナリオ用に個別のアクションを設定するには、矢印を選択してアクションの行を展開します。アクションがリソースレベルのアクセス許可をサポートしている場合、アクセスをテストする特定のリソースの Amazon リソースネーム (ARN) を入力できます。デフォルトでは、各リソースはワイルドカード (*) に設定されています。任意の条件コンテキストキーの値を指定することもできます。前述したように、値が空のキーは無視されるため、シミュレーションの失敗や信頼性の低い結果が生じる可能性があります。

    1. アクション名の横にある矢印を選択して各行を拡張し、使用するシナリオでアクションを正確にシミュレートするために必要な追加の情報を設定します。アクションがリソースレベルのアクセス許可を必要とする場合、アクセスをシミュレートする特定のリソースの Amazon リソースネーム (ARN) を入力できます。デフォルトでは、各リソースはワイルドカード (*) に設定されています。

    2. アクションがリソースレベルのアクセス許可をサポートするものの、それを必要としない場合、[Add Resource (リソースの追加)] を選択して、シミュレーションに追加するリソースタイプを選択できます。

    3. 選択したポリシーのいずれかに、このアクションのサービスのコンテキストキーを参照する Condition 要素が含まれる場合、アクションの下にそのキー名が表示されます。そのアクションのシミュレーションで、指定したリソースに対して使用する値を指定できます。

    異なるグループのリソースタイプが必要なアクション

    アクションによって、異なる状況下で異なるリソース タイプが必要です。リソースタイプの各グループにはシナリオが関連付けられています。そのいずれかがシミュレーションに適用される場合、それを選択すると、シミュレーターはシナリオに適してリソースタイプを要求します。次の一覧では、サポートされるそれぞれのシナリオオプションと、シミュレーションを実行するために定義する必要のあるリソースを示しています。

    次の各 Amazon EC2 シナリオでは、instanceimage、および security-group リソースを指定する必要があります。シナリオに EBS ボリュームが含まれる場合、その volume をリソースとして指定する必要があります。Amazon EC2 シナリオに仮想プライベートクラウド (VPC) が含まれる場合、network-interface リソースを指定する必要があります。IP サブネットが含まれる場合、subnet リソースを指定する必要があります。Amazon EC2 シナリオオプションの詳細については、Amazon EC2 ユーザーガイドの「サポートされているプラットフォーム」を参照してください。

    • EC2-Classic-InstanceStore

      instance, image, security-group

    • EC2-Classic-EBS

      instance, image, security-group, volume

    • EC2-VPC-InstanceStore

      instance, image, security-group, network-interface

    • EC2-VPC-InstanceStore-Subnet

      instance, image, security-group, network-interface, subnet

    • EC2-VPC-EBS

      instance, image, security-group, network-interface, volume

    • EC2-VPC-EBS-Subnet

      instance, image, security-group, network-interface, subnet, volume

  9. (任意) リソースベースのポリシーをシミュレーションに含める場合、まずそのリソースでシミュレートするアクションを ステップ 6 で選択する必要があります。選択したアクションの行を展開し、シミュレートするポリシーのリソースの ARN を入力します。その後、[ARN] テキストボックスの横にある [Include Resource Policy] を選択します。IAM Policy Simulator では現在、次のサービスのリソースベースポリシーをサポートしています。 (リソースベースポリシーのみ。ACL は現在未サポート)、Amazon S3、Amazon SQS、Amazon SNS、およびロック解除された ボールト (ロックされたボールトは現在未サポート)。

  10. 右上の [Run Simulation (シミュレーションの実行)] を選択します。

    アクセス権限の各行のアクションの設定と結果指定したリソースに対するアクションのシミュレーションの結果を表示します。

  11. 右上の [Run Simulation (シミュレーションの実行)] を選択します。

    [アクションの設定と結果]の各行の[アクセス許可]列には、指定したリソースでのそのアクションのシミュレーション結果が表示されます。

  12. ポリシーのどのステートメントがアクションを明示的に許可または拒否したかを調べるには、[Permissions] 列の [N matching statement(s)] リンクを選択して行を展開します。次に、[Show statement (ステートメントの表示)] リンクを選択します。[ポリシー] ペインに、関連するポリシーが表示され、シミュレーションの結果に影響を与えたステートメントが強調表示されます。

    注記

    アクションが暗黙的に拒否(つまり、明示的に許可されていないためにのみアクションが拒否された場合)リストおよびステートメントを表示オプションは表示されません。

IAM Policy Simulator コンソールメッセージのトラブルシューティング

以下の表では、IAM Policy Simulator の使用時に表示される可能性のある通知および警告メッセージを示しています。それらのメッセージが表示されたときの問題の解決手順についても説明しています。

メッセージ 解決手順
This policy has been edited. Changes will not be saved to your account.

対処は必要ありません。

これは通知メッセージです。IAM ポリシーシュミレーターで既存のポリシーを編集した場合、その変更は AWS アカウントに影響を与えません。シミュレーターでは、テスト目的でのみポリシーに変更を加えられます。

リソースポリシーを取得できない。原因: 詳しいエラーメッセージ シミュレーターはリクエストされたリソースベースポリシーにアクセスできません。指定されたリソース ARN が正しいこと、またシミュレーションを実行しているユーザーにリソースポリシーを見る権限があることを確認します。
One or more policies require values in the simulation settings. The simulation might fail without these values.

このメッセージが表示されるのは、テストするポリシーに条件キーや変数が含まれているが、これらのキーや変数の値を [Simulation Settings (シミュレーションの設定)] で指定しなかった場合です。

このメッセージが表示されないようにするには、[Simulation Settings (シミュレーション設定)] を選択し、各条件キーまたは変数に値を入力します。

You have changed policies. These results are no longer valid.

このメッセージが表示されるのは、[結果] ペインに結果が表示されている間に、選択したポリシーを変更した場合です。[結果] ペインに表示されている結果は動的に更新されません。

このメッセージが表示されないようにするには、[Run Simulation (シミュレーションの実行)] を再度選択します。[ポリシー] ペインで行った変更に基づいて、新しいシミュレーションの結果が表示されます。

The resource you typed for this simulation does not match this service.

このメッセージが表示されるのは、現在のシミュレーション用に選択したサービスと一致しない Amazon リソースネーム (ARN) を [Simulation Settings (シミュレーションの設定)] ペインで入力した場合です。たとえば、Amazon DynamoDB リソースの ARN を指定し、シミュレートするサービスに Amazon Redshift を選択した場合などです。

このメッセージが表示されないようにするには、以下のいずれかの操作を行います。

  • [Simulation Settings (シミュレーションの設定)] ペインのボックスから ARN を削除する。

  • [Simulation Settings (シミュレーションの設定)] で指定した ARN に一致するサービスを選択する。

このアクションは、Amazon S3 ACL や S3 Glacier ボールトロックポリシーなどのリソースベースポリシーに加えて、特別なアクセスコントロールメカニズムをサポートするサービスに属します。Policy Simulator はこれらのメカニズムをサポートしないため、結果は本番環境と異なる場合があります。

対処は必要ありません。

これは通知メッセージです。現在のバージョンでは、シミュレーターはユーザーおよびユーザーグループにアタッチされたポリシーを評価し、Amazon S3、Amazon SQS、Amazon SNS、S3 Glacier のリソースベースのポリシーを評価できます。Policy Simulator は、他の AWS サービスでサポートされるすべてのアクセスコントロールメカニズムをサポートするわけではありません。

DynamoDB FGAC is currently not supported.

対処は必要ありません。

この情報メッセージは、きめ細かなアクセスコントロールに関するものです。きめ細かなアクセスコントロールは、 ポリシー条件を使用して、DynamoDB テーブルおよびインデックス内の個々のデータ項目および属性にだれがアクセスできるかを決定する機能です。また、これらのテーブルとインデックスに対して実行できるアクションも参照します。IAM Policy Simulator の現在のバージョンでは、このタイプのポリシー条件はサポートされていません。DynamoDB のきめ細かなアクセスコントロールの詳細については、「DynamoDB のきめ細かなアクセスコントロール」を参照してください。

ポリシー構文に準拠していないポリシーがあります。ポリシー検証を使用して、ポリシーの推奨される更新を確認できます。

IAM ポリシーの文法に準拠しないポリシーがある場合、このメッセージがポリシーのリストの先頭に表示されます。これらのポリシーをシミュレートするには、IAM ポリシーの検証 でポリシー検証オプションを確認して、これらのポリシーを特定して修正します。

This policy must be updated to comply with the latest policy syntax rules.

このメッセージが表示されるのは、IAM ポリシーの文法に準拠しないポリシーがある場合です。これらのポリシーをシミュレートするには、IAM ポリシーの検証 でポリシー検証オプションを確認して、これらのポリシーを特定して修正します。

AWS CLIIAM Policy Simulator の使用 ( および AWS API)

通常、Policy Simulator コマンドでは、次の 2 つのことを実行するために、API オペレーションの呼び出しが必要となります。

  1. ポリシーを評価し、ポリシーが参照するコンテキストキーのリストを返します。次のステップで、参照しているコンテキストキーの値を指定できるように、それらを確認しておく必要があります。

  2. ポリシーをシミュレートし、シミュレーションで使用されるアクション、リソース、コンテキストキーの一覧を提供します。

セキュリティ上の理由から、API オペレーションは以下の 2 つのグループに分かれています。

  • API に文字列として直接渡されるポリシーのみをシミュレートする API オペレーション。このセットには、GetContextKeysForCustomPolicySimulateCustomPolicy が含まれます。

  • 特定の IAM ユーザー、ユーザーグループ、ロール、またはリソースにアタッチされたポリシーをシミュレートする API オペレーション。これらの API オペレーションは他の IAM エンティティに割り当てられたアクセス許可の詳細を表示できるため、これらの API オペレーションへのアクセスを制限することを検討してください。このセットには、GetContextKeysForPrincipalPolicySimulatePrincipalPolicy が含まれます。API オペレーションへのアクセス制限の詳細については、「ポリシーの例: AWS Identity and Access Management (IAM)」を参照してください。

いずれの場合でも、API オペレーションはアクションやリソースのリストに対する 1 つ以上のポリシーの影響をシミュレートします。各アクションは各リソースと組み合わせられており、シミュレーションによって、ポリシーがリソースのそのアクションを許可するか、または拒否するかを特定できます。また、ポリシーが参照するコンテキストキーの値を提供することもできます。ポリシーが参照するコンテキストキーのリストを取得するには、まず GetContextKeysForCustomPolicy または GetContextKeysForPrincipalPolicy を呼び出します。コンテキストキーの値を指定しない場合、シミュレーションは引き続き実行されます。しかし、シミュレーターはそのコンテキストキーを評価に含めることができないため、結果は信頼できない可能性があります。

コンテキストキーのリストを取得するには (AWS CLI、AWS API)

以下のコマンドでは、ポリシーのリストを評価し、ポリシーで使用されているコンテキストキーのリストを返します。

AWS CLI ポリシーをシミュレートするには (、AWS API)

以下のコマンドでは、IAM ポリシーをシミュレートしてユーザーの有効なアクセス許可を確認します。