IAM 身份中心 IAM 身份中心的基于资源的策略示例 IAM 身份中心 - AWS IAM Identity Center

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

IAM 身份中心 IAM 身份中心的基于资源的策略示例 IAM 身份中心

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

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

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

策略要求

该政策必须满足以下要求:

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

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

  • 每项策略都Statement必须包含以下元素:EffectPrincipalAction、和Resource

策略元素

该策略必须包括以下要素:

版本

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

语句

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

每项策略都由以下元素Statement组成。

效果

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

主体

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

操作

(必需)要允许或拒绝的 IAM 身份中心 OIDC 服务 API 操作。有效的操作包括:

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

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

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

资源

(必填)在本策略中,Resource元素的值为"*",意思是 “此应用程序”。

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

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

以下权限策略向ExampleAppClientRole工作负载担任的 IAM 角色授予创建和返回访问权限和刷新令牌的权限。

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