IAM ポリシーシミュレーターを使用した IAM ポリシーのテスト - AWS Identity and Access Management

IAM ポリシーシミュレーターを使用した IAM ポリシーのテスト

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

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

重要

Policy Simulator は、AWS での実際の環境とは異なる結果を出力することがあります。Policy Simulator によるテスト後は、実際の AWS 環境とポリシーを照合して、得られた結果が目的にあっているか確認することをお勧めします。詳細については、「IAM Policy Simulator のしくみ」を参照してください。

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

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

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

  • Amazon S3 バケット、Amazon SQS キュー、Amazon SNS トピック、Amazon S3 Glacier ボールトなど、AWS リソースにアタッチされている IAM ユーザーのリソースベースポリシーの効果をテストします。ポリシーシミュレーター内で、IAM ユーザーに対しリソースベースのポリシーを使用するには、シミュレーションにリソースを含める必要があります。また、チェックボックスをオンにして、シミュレーションにそのリソースのポリシーも含める必要もあります。

    注記

    リソースベースのポリシーに関するシミュレーションでは、IAM ロールはサポートされていません。

  • AWS Organizations の組織のメンバーである AWS アカウント であれば、アイデンティティベースのポリシーに対するサービスコントロールポリシー (SCP) の影響をテストできます。

    注記

    ポリシーシミュレーターは、何らかの条件を持つ SCP の評価を行いません。

  • ユーザー、ユーザーグループ、またはロールにまだアタッチされていない、新しいアイデンティティベースのポリシーを (Policy Simulator に入力またはコピーして) テストします。これらはシミュレーションでのみ使用され、保存されません。リソースベースのポリシーを、Policy Simulator に入力またはコピーすることはできません。

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

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

    注記

    シミュレーション内のアイデンティティベースのポリシーに、タグを明示的にチェックする Condition 要素が含まれていない場合、ポリシーシミュレーターは入力として提供されたタグをシミュレートしません。

  • アイデンティティベースのポリシーにおいて、特定のリソースやアクションへのアクセスを許可または拒否しているのは、どのステートメントなのかを特定します。

IAM Policy Simulator のしくみ

Policy Simulator は、アイデンティティベースのポリシー内のステートメントと、シミュレーション中に提供した入力の評価を行います。Policy Simulator は、AWS での実際の環境とは異なる結果を出力することがあります。Policy Simulator によるテスト後は、実際の AWS 環境とポリシーを照合して、得られた結果が目的にあっているか確認することをお勧めします。

Policy Simulator は、以下の点で実際の AWS 環境とは異なります。

  • Policy Simulator では、現実の AWS サービスリクエストは生成しないため、実際の AWS 環境に不要な変更を加える可能性のあるリクエストのテストを安全に行えます。Policy Simulator は、本番環境での実際のコンテキストキー値を考慮しません。

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

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

  • 何らかの条件を持つサービスコントロールポリシー (SCP) をテストすることはできません。

  • Policy Simulator は、IAM ロールとユーザーのクロスアカウントアクセスのシミュレーションをサポートしていません。

注記

IAM Policy Simulator は、認可用のグローバル条件キーをサポートしているサービスを識別しません。例えば、あるサービスが aws:TagKeys をサポートしていないことを、Policy Simulator は識別しません。

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

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

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

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

AWS アカウント の IAM ユーザー、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 グループのポリシーをシミュレートできるようにするには

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

  • 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 を使用して、AWS アカウント の IAM ユーザー、IAM グループ、またはロールにアタッチされているポリシーをテストすることもできます。そのためには、GetContextKeyForPrincipalPolicy および SimulatePrincipalPolicy を呼び出すアクセス許可をユーザーに付与する必要があります。

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

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

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

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

  • iam:GetContextKeysForCustomPolicy

  • iam:SimulateCustomPolicy

API ユーザーが IAM ユーザー、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. IAM ポリシーシミュレーターコンソール (https://policysim.aws.amazon.com/) を開きます。

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

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

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

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

ユーザー、ユーザーグループ、またはロールにアタッチされているポリシーをテストするには (コンソール)
  1. IAM ポリシーシミュレーターコンソール (https://policysim.aws.amazon.com/) を開きます。

    注記

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

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

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

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

    ユーザーグループにアタッチされたポリシーをテストするには、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 エンティティ(ユーザーまたはロール)のアクセス許可境界として設定されているポリシーをテストできますが、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-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 では現在、次のサービスのリソースベースポリシーをサポートしています。Amazon S3 (リソースベースポリシーのみ。ACL は現在サポート対象外)、Amazon SQS、Amazon SNS、およびロック解除された S3 Glacier ボールト (ロックされたボールトは現在サポート対象外)。

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

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

  11. ポリシーのどのステートメントがアクションを明示的に許可または拒否したかを調べるには、[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 アカウント に影響を与えません。Policy Simulator では、テスト目的でのみポリシーに変更を加えられます。

リソースポリシーを取得できない。原因: 詳しいエラーメッセージ Policy Simulator は、リクエストされたリソースベースポリシーにアクセスすることはできません。指定されたリソース 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 はこれらのメカニズムをサポートしないため、結果は本番環境と異なる場合があります。

対処は必要ありません。

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

DynamoDB FGAC is currently not supported。

対処は必要ありません。

この情報メッセージは、きめ細かなアクセスコントロールに関するものです。きめ細かなアクセスコントロールは、IAM ポリシー条件を使用して、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 を呼び出します。コンテキストキーの値を指定しない場合、シミュレーションは引き続き実行されます。ただし、Policy Simulator が、そのコンテキストキーを評価に含めることができないため、信頼性の低い結果が得られることがあります。

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

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

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

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