选项 1:应用程序可以扮演与 IAM Roles Anywhere 配置文件关联的任何角色 - AWS 规范性指导

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

选项 1:应用程序可以扮演与 IAM Roles Anywhere 配置文件关联的任何角色

在这种情况下,已在 AWS Certificate Manager (ACM) 中从 AWS 私有证书颁发机构 实例配置了两个证书,并与需要 AWS 访问资源的应用程序共享。这些应用程序可以扮演与 IAM Roles Anywhere 个人资料关联的任何角色。这是因为信任策略并未限制哪个应用程序可以假设它。

注意

在这种情况下,不需要应用程序具有单独的证书。他们可以共享一个证书。

当应用程序担任角色时,权限是 IAM 角色和 IAM Roles Anywhere 配置文件中明确允许的权限的汇合。使用这种方法,您可以通过 IAM Roles Anywhere 配置文件限制会话权限,无论 IAM 角色中允许的其他权限如何。

下图显示了每个应用程序拥有的访问权限。应用程序被拒绝访问某些 AWS 资源,因为没有明确授予它们在 IAM 角色和 IAM Roles Anywhere 配置文件中的访问权限。如果证书助手调用包含角色 1 的 Amazon 资源名称 (ARN),则该应用程序将获得临时安全证书,允许其通过角色 1 访问存储桶 1。如果证书助手调用包含角色 2 的 ARN,则会向应用程序授予临时安全证书,允许其通过角色 2 访问存储桶 2。

应用程序使用相同的证书,并且可以访问多个角色。配置文件限制访问权限。

角色 1角色 2 信任策略配置为 IAM Roles Anywhere 允许代入角色、设置源身份和标记会话。以下是一个信任策略示例,允许应用程序承担与 IAM Roles Anywhere 配置文件关联的任何角色:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "sts:SourceIdentity": [ "${sourceIdentityPrefix}${sourceIdentityValue}" ] } } } ] }

有关角色信任策略以及如何修改此示例的更多信息,请参阅 IAM Roles Anywhere 文档中的信任策略

应用程序 1 和应用程序 2 的示例角色和配置文件策略包含在本指南的 “附录:配置文件和角色策略示例” 部分中。