ポリシーシミュレーターの使用に必要なアクセス許可
必要なアクセス許可は AWS CLI、AWS API、IAM コンソールのいずれかを使用するかにより、使用するモードにも関係します。
- Console
-
コンソールで IAM ポリシーシミュレーターを使用するには、iam:GetContextKeysForCustomPolicy を呼び出すアクセス許可が必要です。
必要な追加のアクセス許可は、モードによって異なります。プリンシパルモードでは、アカウントの ID を一覧表示し、アタッチされたポリシーを読み取るため、追加の読み取りアクセス許可が必要です。付与する内容を減らすには、貼り付けるポリシーのみをテストする必要がある場合、カスタムモードを使用します。
カスタムモード
テストするポリシーを貼り付けるカスタムモードを使用するには、iam:SimulateCustomPolicy も必要になります。
プリンシパルモード
コンソールがアカウントの ID とポリシーを読み込んで表示するプリンシパルモードを使用するには、共通のアクセス許可に加え、次の内容が必要になります。コンソールが ID を検出してアタッチされたポリシーを読み取る必要があるため、より大きなセットになります。
シミュレーションする:
ID の一覧表示:
アタッチされたポリシーの一覧表示:
-
iam:ListPolicies, iam:ListUserPolicies,
iam:ListRolePolicies, iam:ListGroupPolicies
-
iam:ListAttachedUserPolicies,
iam:ListAttachedRolePolicies,
iam:ListAttachedGroupPolicies
ポリシードキュメントの取得:
アクセス許可の境界の取得:
プリンシパルモードがリソースベースのポリシーをシミュレーションするために必要な追加のアクセス許可
プリンシパルモードのシミュレーションにリソースのポリシーを含めるには、リソースタイプの読み取りアクセス許可を追加します:
-
s3:GetBucketPolicy, sns:GetTopicAttributes,
sqs:GetQueueUrl, sqs:GetQueueAttributes,
glacier:GetVaultAccessPolicy
シミュレーターにアクセス権を付与するポリシーの例については、「ポリシーの例: AWS Identity and Access Management (IAM)」を参照してください。
- AWS CLI and AWS API
-
AWS CLI と AWS API の場合、テストするポリシーのタイプに対してシミュレーションアクションを呼び出すアクセス許可のみが必要です。まずコンテキストキーを検出するために iam:GetContextKeysForCustomPolicy と iam:GetContextKeysForPrincipalPolicy を使用した場合、これらのアクションにもアクセス許可を付与してください。セキュリティ上の理由により、アクションは次の 2 つのモードに分割されます。シミュレーションする内容に一致するものにのみ、アクセス許可を付与します。
API に文字列として直接渡すポリシーをシミュレーションする方法 (カスタムポリシー)
これらのアクションによってユーザー、ユーザーグループ、ロールにまだアタッチされていないポリシーをテストできます。ポリシーは文字列として渡しますが、シミュレーションでのみ使用されます。
IAM ユーザー、ユーザーグループ、ロール、リソースにアタッチされたポリシーをシミュレーションする方法
これらのアクションは他の IAM エンティティに割り当てられたアクセス許可を明らかにする可能性があるため、呼び出すことができるユーザーを制限することを検討してください。例えば、太郎という名前のユーザーに対し、花子という名前のユーザーに割り当てられたポリシーをシミュレーションする許可を付与するには、太郎にリソース arn:aws:iam::777788889999:user/alice へのアクセス権を付与します。
現在の AWS アカウント でアタッチされているポリシーとアタッチされていないポリシーに対して Policy Simulator API を使用することを許可するポリシーの例を表示するには、「IAM: Policy Simulator API へのアクセス」を参照してください。特定のパスを持つユーザーを対象とするポリシーの例を表示するには、「IAM: ユーザーパスに基づいた Policy Simulator API へのアクセス」を参照してください。