了解 CodeCatalyst 信任模型 - Amazon CodeCatalyst

了解 CodeCatalyst 信任模型

Amazon CodeCatalyst 信任模型使 CodeCatalyst 能够代入连接的 AWS 账户中的服务角色。该模型连接了 IAM 角色、CodeCatalyst 服务主体和 CodeCatalyst 空间。信任策略使用 aws:SourceArn 条件键授予对条件键中指定的 CodeCatalyst 空间的权限。有关此条件键的更多信息,请参阅《IAM 用户指南》中的 aws:SourceArn

信任策略位于 JSON 策略文档中,您可以在其中定义您信任代入该角色的主体。角色信任策略是必需的基于资源的策略(将附加到 IAM 中的角色)。有关更多信息,请参阅《IAM 用户指南》中的术语和概念。有关 CodeCatalyst 的服务主体的详细信息,请参阅 CodeCatalyst 服务主体

在下面的信任策略中,Principal 元素中列出的服务主体从基于资源的策略中获得权限,而 Condition 块则用于限制对范围缩小的资源的访问。

"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:codecatalyst:::space/spaceId/project/*" } } } ]

在信任策略中,CodeCatalyst 服务主体可通过 aws:SourceArn 条件键进行访问,该条件键包含 CodeCatalyst 空间 ID 的 Amazon 资源名称(ARN)。ARN 使用以下格式:

arn:aws:codecatalyst:::space/spaceId/project/*
重要

仅在条件键中使用空间 ID,例如 aws:SourceArn。请勿将 IAM 策略声明中的空间 ID 用作资源 ARN。

最佳做法是在策略中尽可能缩小权限范围。

  • 您可以在 aws:SourceArn 条件键中使用通配符(*),用 project/* 指定空间中的所有项目。

  • 您可以使用 project/projectIdaws:SourceArn 条件键中为空间中的特定项目指定资源级权限。

CodeCatalyst 服务主体

您可以在基于资源的 JSON 策略中使用 Principal 元素指定允许或拒绝访问资源的主体。您可以在信任策略中指定的主体包括用户、角色、账户和服务。您不能在基于身份的策略中使用 Principal 元素;同样,您也不能在策略(如基于资源的策略)中将用户组标识为主体,因为组与权限有关,与身份验证无关,而主体是经过身份验证的 IAM 实体。

在信任策略中,您可以在基于资源策略的 Principal 元素中或支持主体的条件键中指定 AWS 服务。服务主体由服务定义。以下是为 CodeCatalyst 定义的服务主体:

  • codecatalyst.amazonaws.com - 此服务主体用于授予 CodeCatalyst 访问 AWS 的角色。

  • codecatalyst-runner.amazonaws.com - 此服务主体用于授予 CodeCatalyst 在部署 CodeCatalyst 工作流时访问 AWS 资源的角色。

有关更多信息,请参阅《IAM 用户指南》中的 AWS JSON 策略元素:主体