IAM Identity Center 的基于资源的策略示例 - Amazon IAM Identity Center
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

IAM Identity Center 的基于资源的策略示例

每个与 IAM Identity Center 配合使用并使用 OAuth 2.0 的应用程序都需要基于资源的策略。该应用程序可以由客户管理或 Amazon 管理。所需的基于资源的策略称为应用程序策略(或ActorPolicy在 APIs),它定义了哪些 IAM 委托人有权调用 IAM 身份验证方法 API 操作,例如。CreateTokenWithIAMIAM 身份验证方法允许 IAM 委托人(例如 IAM 角色或 Amazon 服务)通过在 /token? 上出示 IAM 证书来请求或管理访问令牌,从而向 IAM 身份中心 OIDC 服务进行身份验证 aws_iam=t 端点

应用程序策略管控令牌颁发操作(CreateTokenWithIAM)。该政策还管理仅限权限的操作,这些操作仅供 Amazon 托管应用程序用于验证令牌 (IntrospectTokenWithIAM) 和撤消令牌 ()。RevokeTokenWithIAM对于客户自主管理型应用程序,您可以通过指定哪些 IAM 主体有权调用 CreateTokenWithIAM 来配置此策略。当授权主体调用此 API 操作时,将获取该应用程序的访问令牌和刷新令牌。

如果您使用 IAM Identity Center 控制台为可信身份传播设置客户托管的应用程序,请参阅设置客户托管 OAuth 2.0 应用程序中的步骤 4,了解有关如何配置应用程序策略的信息。有关策略示例,请参阅本主题后面的 示例策略:允许 IAM 角色创建访问令牌和刷新令牌

政策要求

策略必须满足以下要求:

  • 策略必须包含设置为“2012-10-17”的 Version 元素。

  • 必须包含至少一个 Statement 元素。

  • 每个策略 Statement 必须包含以下元素:EffectPrincipalActionResource

策略元素

该策略必须包含以下元素:

版本

指定策略文档版本。将版本设置为 2012-10-17(最新版本)。

语句

包含策略 Statements。策略必须包含至少一个 Statement

每个策略 Statement 包含以下元素。

效果

(必需)确定是允许还是拒绝该策略语句中的权限。有效值为 AllowDeny

主体

(必需)主题是获取策略语句中指定的权限的身份。您可以指定 IAM 角色或 Amazon 服务主体。

操作

(必需)允许或拒绝的 IAM Identity Center OIDC 服务 API 操作。有效操作包括:

  • sso-oauth:CreateTokenWithIAM:此操作与 CreateTokenWithIAMAPI 操作相对应,授予使用任何 IAM 实体(例如 Amazon 服务角色或用户)进行身份验证的授权客户端应用程序创建和返回访问和刷新令牌的权限。这些令牌可能包含已定义的作用域,用于指定 read:profilewrite:data 等权限。

  • sso-oauth:IntrospectTokenWithIAM[仅限权限]:授予验证和检索有关活动 OAuth 2.0 访问令牌和刷新令牌的信息(包括其关联的范围和权限)的权限。此权限仅供 Amazon 托管应用程序使用,未记录在 IAM 身份中心 OIDC API 参考中。

  • RevokeTokenWithIAM [仅限权限]:授予撤销 OAuth 2.0 访问令牌和刷新令牌的权限,使其在正常到期之前失效。此权限仅供 Amazon 托管应用程序使用,未记录在 IAM 身份中心 OIDC API 参考中。

资源

(必需)在此策略中 Resource 元素的值为 "*",表示“此应用程序”。

有关 Amazon 策略语法的更多信息,请参阅 Amazon IAM 用户指南中的 IAM 策略参考

示例策略:允许 IAM 角色创建访问令牌和刷新令牌

以下权限策略授予工作负载所扮演的 IAM 角色 ExampleAppClientRole 创建并返回访问令牌及刷新令牌的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleToCreateTokens", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleAppClientRole" }, "Action": "sso-oauth:CreateTokenWithIAM", "Resource": "*" } ] }