

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

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

# 了解 CodeCatalyst 信任模型
<a name="trust-model"></a>

Amazon CodeCatalyst 信任模型 CodeCatalyst 允许在互联中扮演服务角色 AWS 账户。该模型将 IAM 角色、 CodeCatalyst 服务委托人和 CodeCatalyst 空间联系起来。信任策略使用`aws:SourceArn`条件密钥向条件键中指定的 CodeCatalyst 空间授予权限。有关此条件密钥的更多信息，请参阅 I [A *M 用户指南SourceArn*中的 aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)。

信任策略位于 JSON 策略文档中，您可以在其中定义您信任代入该角色的主体。角色信任策略是附加在 IAM 角色上的必填基于资源的策略。有关更多信息，请参阅《IAM 用户指南》**中的[术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。有关服务主体的详细信息 CodeCatalyst，请参阅[的服务负责人 CodeCatalyst](#service-principals)。

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

------
#### [ JSON ]

****  

```
{
    "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`条件密钥包含空间 ID 的 Amazon 资源名称 (ARN)。 CodeCatalyst ARN 使用以下格式：

```
arn:aws:codecatalyst:::space/spaceId/project/*
```

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

最佳做法是在策略中尽可能缩小权限范围。
+ 您可以在 `aws:SourceArn` 条件键中使用通配符（\$1），用 `project/*` 指定空间中的所有项目。
+ 您可以使用 `project/projectId` 在 `aws:SourceArn` 条件键中为空间中的特定项目指定资源级权限。

## 的服务负责人 CodeCatalyst
<a name="service-principals"></a>

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

在信任策略 AWS 服务 中，您可以在基于资源的策略的`Principal`元素或支持委托人的条件密钥中指定。服务主体由服务定义。以下是为定义的服务主体： CodeCatalyst
+ **codetalyst.amazonaws.com**-此服务主体用于授予访问权限的角色。 CodeCatalyst AWS
+ **codetalyst-runner.amazonaws.com**-此服务主体用于授予 CodeCatalyst 工作流程部署中资源访问权限的角色。 AWS CodeCatalyst 

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS JSON 策略元素：主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。