View a markdown version of this page

Resource-based IAM 身份中心 IAM 身份中心的策略示例 - AWS IAM Identity Center

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

Resource-based IAM 身份中心 IAM 身份中心的策略示例

所有与 IAM Identity Center 集成且使用 OAuth 2.0 的应用程序都需要配置基于资源的策略。该应用程序可以由客户管理或 AWS 管理。所需的基于资源的策略称为应用程序策略(或ActorPolicy在 API 中),它定义了哪些 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 必须包含以下元素:EffectPrincipalActionResource

策略元素

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

版本

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

语句

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

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

效果

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

Principal

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

处理建议

(必需)允许或拒绝的 IAM Identity Center 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 角色创建访问令牌和刷新令牌

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

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