使用策略模拟器所需的权限
您所需的权限取决于您使用的是 AWS CLI、AWS API 还是 IAM 控制台,以及您使用的模式。
- Console
-
需要具备调用
iam:GetContextKeysForCustomPolicy的权限,才能在控制台上使用 IAM 策略模拟器。所需的其他权限取决于所用模式。在主体模式下,您需要额外的读取权限,以列出账户中的身份并读取其附加的策略。若要减少需授予的权限,在只需测试粘贴的策略时,使用自定义模式。
自定义模式
要使用自定义模式(在此模式下,需粘贴要测试的策略),还需要
iam:SimulateCustomPolicy主体模式
要使用主体模式(在此模式下,控制台会加载并显示账户中的身份和策略),您需要通用权限以及以下权限。这是一组较大的权限,因为控制台必须发现身份并读取其附加的策略。
模拟:
-
iam:SimulatePrincipalPolicy
列出身份:
-
iam:ListUsers,iam:ListRoles,iam:ListGroups -
iam:ListGroupsForUser
列出附加的策略:
-
iam:ListPolicies,iam:ListUserPolicies,iam:ListRolePolicies,iam:ListGroupPolicies -
iam:ListAttachedUserPolicies,iam:ListAttachedRolePolicies,iam:ListAttachedGroupPolicies
获取策略文档:
-
iam:GetPolicyVersion,iam:GetUserPolicy,iam:GetRolePolicy,iam:GetGroupPolicy
获取权限边界:
-
iam:GetUser,iam:GetRole
用于模拟基于资源的策略的主体模式下的额外权限
要在主体模式模拟中包含资源的策略,请为该资源类型添加读取权限:
-
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来发现上下文密钥,则还需授予这些操作权限。出于安全考虑,操作分为以下两种模式。仅授予与待模拟内容相匹配的权限。模拟以字符串形式直接传递给 API 的策略(自定义策略)
-
iam:SimulateCustomPolicy -
iam:GetContextKeysForCustomPolicy(仅适用于使用上下文密钥发现步骤时)
通过这些操作,您可以测试尚未附加到用户、用户组或角色的策略。您可以将策略作为字符串传递,这些策略仅在模拟中使用。
模拟附加到指定 IAM 用户、用户组、角色或资源的策略
-
iam:SimulatePrincipalPolicy -
iam:GetContextKeysForPrincipalPolicy(仅适用于使用上下文密钥发现步骤时)
-
这些操作可能会显示分配给其他 IAM 实体的权限,因此建议限制可以调用这些操作的用户。例如,要向名为 Bob 的用户授予权限,以便模拟已分配给名为 Alice 的用户的策略,请向 Bob 授予访问以下资源的权限:arn:aws:iam::777788889999:user/alice。
要查看允许为当前 AWS 账户 中已附加策略和未附加的策略使用策略模拟器 API 的示例策略,请参阅 IAM:访问策略模拟器 API。要查看范围限定为具有特定路径的用户的策略示例,请参阅 IAM:基于用户路径访问策略模拟器 API。