

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

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

# Identity and Access Management 和亚马逊 CodeCatalyst
<a name="security-iam"></a>

在 Amazon 中 CodeCatalyst，您可以创建并使用 AWS 建筑商 ID 来登录和访问您的空间和项目。 AWS 生成器 ID 不是 AWS Identity and Access Management (IAM) 中的身份，也不存在于 AWS 账户。但是，在验证用于计费目的的空间时，以及在连接到空间以在其中创建和使用资源时， CodeCatalyst 确实会与 IAM 集成 AWS 账户。 AWS 账户 

AWS Identity and Access Management (IAM) AWS 服务 可帮助管理员安全地控制对 AWS 资源的访问权限。IAM 管理员控制可以*通过身份验证*（登录）和*授权*（具有权限）使用资源的人员。您可以使用 IAM AWS 服务 ，无需支付额外费用。

在 Amazon 中创建空间时 CodeCatalyst，必须将一个 AWS 账户 作为空间的账单账户进行关联。您必须拥有管理员权限 AWS 账户 才能验证 CodeCatalyst 空间，或者拥有该权限。您还可以选择为自己的空间添加一个 IAM 角色，该角色 CodeCatalyst 可用于在连接的空间中创建和访问资源 AWS 账户。该角色称作[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。您可以选择创建与多个账户的连接， AWS 账户 并在每个账户 CodeCatalyst 中为其创建服务角色。

**注意**  
的账单 CodeCatalyst 是在 AWS 账户 指定的账单账户中进行的。但是，如果您在该 AWS 账户 或任何其他连接中创建 CodeCatalyst 服务角色 AWS 账户，则该 CodeCatalyst 服务角色创建和使用的资源将按该连接 AWS 账户的资源计费。有关更多信息，请参阅《Amazon CodeCatalyst 管理员指南》中的[管理账单](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-billing.html)。

**Topics**
+ [IAM 中的基于身份的策略](#id-based-policies)
+ [IAM 中的策略操作](#id-based-policies-actions)
+ [IAM 中的策略资源](#id-based-policies-resources)
+ [IAM 中的策略条件键](#id-based-policies-conditionkeys)
+ [基于身份的连接策略示例 CodeCatalyst](#id-based-policy-examples)
+ [使用标签控制对账户连接资源的访问](id-based-policy-examples-tags.md)
+ [CodeCatalyst 权限参考](#permissions-reference)
+ [将服务相关角色用于 CodeCatalyst](using-service-linked-roles.md)
+ [AWS 适用于亚马逊的托管政策 CodeCatalyst](security-iam-awsmanpol.md)
+ [使用 IAM 角色授予对项目 AWS 资源的访问权限](ipa-iam-roles.md)

## IAM 中的基于身份的策略
<a name="id-based-policies"></a>

基于身份的策略是可附加到身份的 JSON 权限策略文档。该身份可以是用户、用户组或角色。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。您无法在基于身份的策略中指定主体，因为它适用于其附加的用户或角色。要了解可在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素引用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 基于身份的策略示例 CodeCatalyst
<a name="id-based-policies-examples"></a>



要查看 CodeCatalyst 基于身份的策略的示例，请参阅。[基于身份的连接策略示例 CodeCatalyst](#id-based-policy-examples)

## IAM 中的策略操作
<a name="id-based-policies-actions"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 AWS API 操作同名。有一些例外情况，例如没有匹配 API 操作的*仅限权限* 操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为*相关操作*。

要在单个语句中指定多项操作，请使用逗号将它们隔开。

```
"Action": [
      "prefix:action1",
      "prefix:action2"
         ]
```

## IAM 中的策略资源
<a name="id-based-policies-resources"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。语句必须包含 `Resource` 或 `NotResource` 元素。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)指定资源。对于支持特定资源类型（称为*资源级权限*）的操作，您可以执行此操作。

对于不支持资源级权限的操作（如列出操作），请使用通配符（\$1）指示语句应用于所有资源。

```
"Resource": "*"
```

## IAM 中的策略条件键
<a name="id-based-policies-conditionkeys"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

在 `Condition` 元素（或 `Condition` *块*）中，可以指定语句生效的条件。`Condition` 元素是可选的。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个 `Condition` 元素，或在单个 `Condition` 元素中指定多个键，则 AWS 使用逻辑 `AND` 运算评估它们。如果您为单个条件键指定多个值，则 AWS 使用逻辑 `OR` 运算来评估条件。在授予语句的权限之前必须满足所有的条件。

 在指定条件时，您也可以使用占位符变量。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM 策略元素：变量和标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)。

AWS 支持全局条件密钥和特定于服务的条件密钥。要查看所有 AWS 全局条件键，请参阅《IAM 用户指南》**中的 [AWS 全局条件上下文键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

## 基于身份的连接策略示例 CodeCatalyst
<a name="id-based-policy-examples"></a>

中 CodeCatalyst AWS 账户 ，需要管理空间的账单和访问项目工作流程中的资源。账户连接用于授权向空间添加 AWS 账户 。在已连接的 AWS 账户中使用基于身份的策略。

默认情况下，用户和角色没有创建或修改 CodeCatalyst 资源的权限。他们也无法使用 AWS 管理控制台、 AWS Command Line Interface (AWS CLI) 或 AWS API 执行任务。IAM 管理员必须创建 IAM 策略，以便为用户和角色授予权限，以对所需资源执行操作。然后，管理员必须为需要这些策略的用户附加这些策略。

以下 IAM 策略示例授予与账户连接相关的操作的权限。使用它们来限制连接账户的访问权限 CodeCatalyst。

### 示例 1：允许用户单次接受连接请求 AWS 区域
<a name="id-based-policy-examples-accept-only"></a>

以下权限策略仅允许用户查看和接受 CodeCatalyst 和之间的连接请求 AWS 账户。此外，该策略使用一个条件来仅允许在 us-west-2 区域执行操作，而不允许来自其他区域的操作。 AWS 区域要查看和批准请求，用户需要使用 AWS 管理控制台 与请求中指定的帐户相同的帐户登录。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecatalyst:AcceptConnection",
        "codecatalyst:GetPendingConnection"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "us-west-2"
        }
      }
    }
  ]
}
```

------

### 示例 2：允许在控制台中管理单个的连接 AWS 区域
<a name="id-based-policy-examples-allow"></a>

以下权限策略允许用户管理单个区域之间 CodeCatalyst和区域 AWS 账户 内的连接。该策略使用一个条件来仅允许在 us-west-2 区域执行操作，而不允许来自其他区域的操作。 AWS 区域创建连接后，您可以通过选择 AWS 管理控制台中的选项来创建 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色。在示例策略中，`iam:PassRole`操作的条件包括的服务委托人。 CodeCatalyst仅具有该访问权限的角色才会在 AWS 管理控制台中创建。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecatalyst:*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "us-west-2"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "codecatalyst.amazonaws.com",
                        "codecatalyst-runner.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

### 示例 3：禁止管理连接
<a name="id-based-policy-examples-deny"></a>

以下权限策略不允许用户管理 CodeCatalyst 和之间的连接 AWS 账户。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "codecatalyst:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# 使用标签控制对账户连接资源的访问
<a name="id-based-policy-examples-tags"></a>

标签可以附加到资源，也可以从请求传入支持标签的服务。策略中的资源可以具有标签，而且策略中的某些操作可以包括标签。标记条件键包括 `aws:RequestTag` 和 `aws:ResourceTag` 条件键。在创建 IAM 策略时，您可以使用标签条件键来控制：
+ 哪些用户可以对连接资源执行操作（基于该资源已有的标签）。
+ 哪些标签可以在操作的请求中传递。
+ 特定的标签键是否能在请求中使用。

以下示例演示了如何在策略中为 CodeCatalyst账户连接用户指定标签条件。有关条件键的更多信息，请参阅 [IAM 中的策略条件键](security-iam.md#id-based-policies-conditionkeys)。

## 示例 1：基于请求中的标签允许操作
<a name="id-based-policy-examples-tags-request"></a>

以下策略授予用户批准账户连接的权限。

为此，如果请求指定一个名为 `Project` 的带有值 `ProjectA` 的标签，则它允许 `AcceptConnection` 和 `TagResource` 操作。（`aws:RequestTag` 条件键用于控制可以通过 IAM 请求传递哪些标签。） `aws:TagKeys` 条件确保标签键区分大小写。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecatalyst:AcceptConnection",
        "codecatalyst:TagResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/Project": "ProjectA"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["Project"]
        }
      }
    }
  ]
}
```

------

## 示例 2：基于资源标签允许操作
<a name="id-based-policy-examples-tags-resource"></a>

以下策略授予用户对账户连接资源执行操作以及获取其相关信息的权限。

为此，如果该连接具有名为 `Project` 的带值 `ProjectA` 的标签，则它允许特定操作。（`aws:ResourceTag` 条件键用于控制可以通过 IAM 请求传递哪些标签。）

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "codecatalyst:GetConnection",
        "codecatalyst:DeleteConnection",
        "codecatalyst:AssociateIamRoleToConnection",
        "codecatalyst:DisassociateIamRoleFromConnection",
        "codecatalyst:ListIamRolesForConnection",
        "codecatalyst:PutBillingAuthorization"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Project": "ProjectA"
        }
      }
    }
  ]
}
```

------

## CodeCatalyst 权限参考
<a name="permissions-reference"></a>

本节提供与账户连接资源相关联的操作 AWS 账户 的权限参考 CodeCatalyst。以下部分描述了与连接账户相关的仅限授权执行的操作。

### 所需的账户连接权限
<a name="permissions-reference-connections"></a>

 需要以下权限才能使用账户连接。


****  

| CodeCatalyst 账户连接权限 | 所需的权限 | 资源 | 
| --- | --- | --- | 
| AcceptConnection | 需要接受将此账户关联到 CodeCatalyst空间的请求。这只是一种 IAM 策略权限，不是 API 操作。 |  仅支持在策略的 `Resource` 元素中使用通配符（\$1）。  | 
| AssociateIamRoleToConnection | 需要此权限才能将 IAM 角色与账户连接关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| DeleteConnection | 需要此权限才能删除账户连接。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| DisassociateIamRoleFromConnection | 需要此权限才能解除 IAM 角色与账户连接的关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| GetBillingAuthorization | 需要此权限才能描述账户连接的计费授权。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| GetConnection | 需要此权限才能获取账户连接。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| GetPendingConnection | 需要获取将此账户关联到 CodeCatalyst空间的待处理请求。这只是一种 IAM 策略权限，不是 API 操作。 |  仅支持在策略的 `Resource` 元素中使用通配符（\$1）。  | 
| ListConnections | 需要此权限才能列出未处于待处理状态的账户连接。这只是一种 IAM 策略权限，不是 API 操作。 |  仅支持在策略的 `Resource` 元素中使用通配符（\$1）。  | 
| ListIamRolesForConnection | 需要此权限才能列出与账户连接关联的 IAM 角色。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| ListTagsForResource | 需要此权限才能列出与账户连接关联的标签。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| PutBillingAuthorization | 需要此权限才能创建或更新账户连接的计费授权。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| RejectConnection | 需要拒绝将此账户连接到 CodeCatalyst空间的请求。这只是一种 IAM 策略权限，不是 API 操作。 |  仅支持在策略的 `Resource` 元素中使用通配符（\$1）。  | 
| TagResource | 需要此权限才能创建或编辑与账户连接关联的标签。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 
| UntagResource | 需要此权限才能移除与账户连接关联的标签。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/connections/connection\$1ID | 

### 所需的 IAM Identity Center 应用程序权限
<a name="permissions-reference-applications"></a>

 需要以下权限才能使用 IAM Identity Center 应用程序。


****  

| CodeCatalyst IAM 身份中心应用程序的权限 | 所需的权限 | 资源 | 
| --- | --- | --- | 
| AssociateIdentityCenterApplicationToSpace | 需要将 IAM 身份中心应用程序与 CodeCatalyst 空间关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| AssociateIdentityToIdentityCenterApplication | 需要将身份与 CodeCatalyst空间的 IAM 身份中心应用程序关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| BatchAssociateIdentitiesToIdentityCenterApplication | 需要将多个身份与 CodeCatalyst 空间的 IAM Identity Center 应用程序关联起来。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| BatchDisassociateIdentitiesFromIdentityCenterApplication | 需要为 CodeCatalyst 空间解除多个身份与 IAM 身份中心应用程序的关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| CreateIdentityCenterApplication | 需要此权限才能创建 IAM Identity Center 应用程序。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| CreateSpaceAdminRoleAssignment | 需要为给定 CodeCatalyst空间和 IAM Identity Center 应用程序创建管理员角色分配。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| DeleteIdentityCenterApplication | 需要此权限才能删除 IAM Identity Center 应用程序。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| DisassociateIdentityCenterApplicationFromSpace | 需要解除 IAM 身份中心应用程序与 CodeCatalyst 空间的关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| DisassociateIdentityFromIdentityCenterApplication | 需要为 CodeCatalyst 空间解除身份与 IAM 身份中心应用程序的关联。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| GetIdentityCenterApplication | 需要此权限才能获取有关 IAM Identity Center 应用程序的信息。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| ListIdentityCenterApplications | 需要此权限才能查看账户中所有 IAM Identity Center 应用程序的列表。这只是一种 IAM 策略权限，不是 API 操作。 |  仅支持在策略的 `Resource` 元素中使用通配符（\$1）。  | 
| ListIdentityCenterApplicationsForSpace | 按 CodeCatalyst 空间查看 IAM 身份中心应用程序列表所必需的。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| ListSpacesForIdentityCenterApplication | 需要通过 IAM 身份中心应用程序查看 CodeCatalyst 空间列表。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| SynchronizeIdentityCenterApplication | 需要此权限才能将 IAM Identity Center 应用程序与备用身份存储同步。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| UpdateIdentityCenterApplication | 需要此权限才能更新 IAM Identity Center 应用程序。这只是一种 IAM 策略权限，不是 API 操作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 

# 将服务相关角色用于 CodeCatalyst
<a name="using-service-linked-roles"></a>

亚马逊 CodeCatalyst 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种与之直接关联的 IAM 角色的独特类型。 CodeCatalyst服务相关角色由服务预定义 CodeCatalyst ，包括该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色使设置变得 CodeCatalyst 更加容易，因为您不必手动添加必要的权限。 CodeCatalyst 定义其服务相关角色的权限，除非另有定义，否则 CodeCatalyst 只能担任其角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这样可以保护您的 CodeCatalyst 资源，因为您不会无意中删除访问资源的权限。

有关支持服务相关角色的其他服务的信息，请参阅与 [IAM 配合使用的AWS 服务，](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并在**服务相关角色**列中查找标有 “**是**” 的服务。选择**是**和链接，查看该服务的服务关联角色文档。

## 的服务相关角色权限 CodeCatalyst
<a name="slr-permissions"></a>

CodeCatalyst 使用名为的服务相关角色 **AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization**— 允许 Amazon 代表您对应用程序实例配置文件以及关联的目录用户和群组进行 CodeCatalyst 只读访问。

AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 服务相关角色信任以下服务代入该角色：
+ `codecatalyst.amazonaws.com`

名为的角色权限策略AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy CodeCatalyst 允许对指定资源完成以下操作：
+ 操作：`CodeCatalyst spaces that support identity federation and SSO users and groups` 的 `View application instance profiles and associated directory users and groups`

您必须配置使用户、组或角色能够创建、编辑或删除服务相关角色的权限。有关更多信息，请参阅*《IAM 用户指南》*中的[服务相关角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 为创建服务相关角色 CodeCatalyst
<a name="create-slr"></a>

您无需手动创建服务关联角色。当您在 AWS 管理控制台、或 AWS API 中创建空间时， CodeCatalyst 会为您创建服务相关角色。 AWS CLI

**重要**  
如果您在其他使用此角色支持的功能的服务中完成某个操作，此服务关联角色可以出现在您的账户中。另外，如果您在 2023 年 11 月 17 日该 CodeCatalyst 服务开始支持服务相关角色之前使用该服务，则在您的账户中 CodeCatalyst 创建了该AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization角色。要了解更多信息，请参阅 “[我的” 中出现了一个新角色 AWS 账户](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。创建空间时， CodeCatalyst 会再次为您创建服务相关角色。

您也可以使用 IAM 控制台，在**查看应用程序实例配置文件及相关目录用户和组**使用案例中创建服务相关角色。在 AWS CLI 或 AWS API 中，使用服务名称创建服务相关角色。`codecatalyst.amazonaws.com`有关更多信息，请参阅 *IAM 用户指南* 中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)。如果您删除了此服务相关角色，可以使用同样的过程再次创建角色。

## 编辑的服务相关角色 CodeCatalyst
<a name="edit-slr"></a>

CodeCatalyst 不允许您编辑AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization服务相关角色。创建服务关联角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色描述。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除的服务相关角色 CodeCatalyst
<a name="delete-slr"></a>

无需手动删除 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 角色。当您删除 AWS 管理控制台、或 AWS API 中的空格时，会 CodeCatalyst 清理资源并为您删除服务相关角色。 AWS CLI

您也可以使用 IAM 控制台、 AWS CLI 或 AWS API 手动删除服务相关角色。为此，必须先手动清除服务相关角色的资源，然后才能手动删除。

**注意**  
如果您尝试删除资源时 CodeCatalyst 服务正在使用该角色，则删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**要删除使用的 CodeCatalyst 资源 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization**
+ [删除空间](https://docs.aws.amazon.com/codecatalyst/latest/userguide/spaces-delete.htm)。

**使用 IAM 手动删除服务关联角色**

使用 IAM 控制台 AWS CLI、或 AWS API 删除AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## CodeCatalyst 服务相关角色支持的区域
<a name="slr-regions"></a>

CodeCatalyst 支持在提供服务的所有区域中使用服务相关角色。有关更多信息，请参阅[AWS 区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

CodeCatalyst 不支持在提供服务的每个区域中使用服务相关角色。您可以在以下区域中使用 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 角色。


****  

|  区域名称 | 区域标识 | Support in CodeCatalyst | 
| --- | --- | --- | 
| 美国东部（弗吉尼亚州北部） | us-east-1 | 否 | 
| 美国东部（俄亥俄州） | us-east-2 | 否 | 
| 美国西部（北加利福尼亚） | us-west-1 | 否 | 
| 美国西部（俄勒冈州） | us-west-2 | 是 | 
| 非洲（开普敦） | af-south-1 | 否 | 
| 亚太地区（香港） | ap-east-1 | 否 | 
| 亚太地区（雅加达） | ap-southeast-3 | 否 | 
| 亚太地区（孟买） | ap-south-1 | 否 | 
| 亚太地区（大阪） | ap-northeast-3 | 否 | 
| 亚太地区（首尔） | ap-northeast-2 | 否 | 
| 亚太地区（新加坡） | ap-southeast-1 | 否 | 
| 亚太地区（悉尼） | ap-southeast-2 | 否 | 
| 亚太地区（东京) | ap-northeast-1 | 否 | 
| 加拿大（中部） | ca-central-1 | 否 | 
| 欧洲地区（法兰克福） | eu-central-1 | 否 | 
| 欧洲地区（爱尔兰） | eu-west-1 | 是 | 
| 欧洲地区（伦敦） | eu-west-2 | 否 | 
| 欧洲地区（米兰） | eu-south-1 | 否 | 
| 欧洲地区（巴黎） | eu-west-3 | 否 | 
| 欧洲地区（斯德哥尔摩） | eu-north-1 | 否 | 
| 中东（巴林） | me-south-1 | 否 | 
| 中东（阿联酋）： | me-central-1 | 否 | 
| 南美洲（圣保罗） | sa-east-1 | 否 | 
| AWS GovCloud （美国东部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美国西部） | us-gov-west-1 | 否 | 

# AWS 适用于亚马逊的托管政策 CodeCatalyst
<a name="security-iam-awsmanpol"></a>





 AWS 托管策略是由创建和管理的独立策略 AWS。 AWS 托管策略旨在为许多常见用例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住， AWS 托管策略可能不会为您的特定用例授予最低权限权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新 AWS 托管策略中定义的权限，则更新会影响该策略所关联的所有委托人身份（用户、组和角色）。 AWS 最有可能在启动新的 API 或现有服务可以使用新 AWS 服务 的 API 操作时更新 AWS 托管策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。













## AWS 托管策略：AmazonCodeCatalystSupportAccess
<a name="security-iam-awsmanpol-AmazonCodeCatalystSupportAccess"></a>





该策略向所有空间管理员和空间成员授予使用与空间计费账户关联的 Business 或 Enterprise 高级支持计划的权限。这些权限允许空间管理员和成员利用高级支持计划来获得权限策略中他们有权访问的资源。 CodeCatalyst 



**权限详细信息**

该策略包含以下权限。




+ `support`— 授予权限以允许用户搜索、创建和解决 Su AWS pport 案例。还授予描述通信、严重性级别、附件和相关支持案例详细信息的权限。



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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "support:DescribeAttachment",
        "support:DescribeCaseAttributes",
        "support:DescribeCases",
        "support:DescribeCommunications",
        "support:DescribeIssueTypes",
        "support:DescribeServices",
        "support:DescribeSeverityLevels",
        "support:DescribeSupportLevel",
        "support:SearchForCases",
        "support:AddAttachmentsToSet",
        "support:AddCommunicationToCase",
        "support:CreateCase",
        "support:InitiateCallForCase",
        "support:InitiateChatForCase",
        "support:PutCaseAttributes",
        "support:RateCaseCommunication",
        "support:ResolveCase"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## AWS 托管策略：AmazonCodeCatalystFullAccess
<a name="security-iam-awsmanpol-AmazonCodeCatalystFullAccess"></a>





该政策授予在亚马逊 CodeCatalyst CodeCatalyst 空间页面中管理您的空间和关联账户的权限 AWS 管理控制台。此应用程序用于配置与您的空间 AWS 账户 相连的内容 CodeCatalyst。



**权限详细信息**

该策略包含以下权限。




+ `codecatalyst`— 授予访问中 Amazon CodeCatalyst Spaces 页面的全部权限 AWS 管理控制台。



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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeCatalystResourceAccess",
            "Effect": "Allow",
            "Action": [
                "codecatalyst:*",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CodeCatalystAssociateIAMRole",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "codecatalyst.amazonaws.com",
                        "codecatalyst-runner.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

## AWS 托管策略：AmazonCodeCatalystReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonCodeCatalystReadOnlyAccess"></a>





该政策授予在 Amazon Spaces 页面中查看和列出 CodeCatalyst 空间和关联账户信息的权限 AWS 管理控制台。此应用程序用于配置与您的空间 AWS 账户 相连的内容 CodeCatalyst。



**权限详细信息**

该策略包含以下权限。




+ `codecatalyst`— 向中的 Amazon CodeCatalyst Spaces 页面授予只读权限 AWS 管理控制台。



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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecatalyst:Get*",
                "codecatalyst:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS 托管策略：AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy
<a name="security-iam-awsmanpol-AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy"></a>



您不能将 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy 附加到自己的 IAM 实体。此策略附加到允许代表您执行操作 CodeCatalyst 的服务相关角色。有关更多信息，请参阅 [将服务相关角色用于 CodeCatalyst](using-service-linked-roles.md)。



此策略允许客户在管理空间时查看应用程序实例配置文件以及关联的目录用户和组 CodeCatalyst。客户在管理支持身份联合验证以及 SSO 用户和组的空间时将查看这些资源。



**权限详细信息**

该策略包含以下权限。




+ `sso`— 授予权限以允许用户查看在 IAM Identity Center 中管理的相关空间的应用程序实例配置文件 CodeCatalyst。



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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy",
			"Effect": "Allow",
			"Action": [
				"sso:ListInstances",
				"sso:ListApplications",
				"sso:ListApplicationAssignments",
				"sso:DescribeInstance",
				"sso:DescribeApplication"
			],
			"Resource": "*"
		}
	]
}
```

------

## CodeCatalyst AWS 托管策略的更新
<a name="security-iam-awsmanpol-updates"></a>



查看 CodeCatalyst 自该服务开始跟踪这些更改以来 AWS 托管策略更新的详细信息。要获得有关此页面更改的自动提醒，请订阅 “ CodeCatalyst [文档历史记录](doc-history.md)” 页面上的 RSS feed。




| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy](#security-iam-awsmanpol-AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronizationPolicy) - 新策略  |  CodeCatalyst 添加了策略。 授予权限以允许 CodeCatalyst 用户查看应用程序实例配置文件以及关联的目录用户和组。  | 2023 年 11 月 17 日 | 
|  [AmazonCodeCatalystSupportAccess](#security-iam-awsmanpol-AmazonCodeCatalystSupportAccess)：新策略  |  CodeCatalyst 添加了策略。 授予权限以允许 CodeCatalyst 用户搜索、创建和解决支持案例，以及查看相关通信和详细信息。  | 2023 年 4 月 20 日 | 
|  [AmazonCodeCatalystFullAccess](#security-iam-awsmanpol-AmazonCodeCatalystFullAccess)：新策略  |  CodeCatalyst 添加了策略。 授予对的完全访问权限 CodeCatalyst。  | 2023 年 4 月 20 日 | 
|  [AmazonCodeCatalystReadOnlyAccess](#security-iam-awsmanpol-AmazonCodeCatalystReadOnlyAccess)：新策略  |  CodeCatalyst 添加了策略。 授予对的只读访问权限 CodeCatalyst。  | 2023 年 4 月 20 日 | 
|  CodeCatalyst 开始跟踪更改  |  CodeCatalyst 开始跟踪其 AWS 托管策略的更改。  | 2023 年 4 月 20 日 | 



# 使用 IAM 角色授予对项目 AWS 资源的访问权限
<a name="ipa-iam-roles"></a>

CodeCatalyst 可以通过将您的连接到 CodeCatalyst 空间 AWS 账户 来访问 AWS 资源。之后，您可以创建以下服务角色并在连接账户时将其关联。

有关在 JSON 策略中使用的元素的更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。
+ 要访问 CodeCatalyst 项目和工作流程中的资源，必须先授予代表您访问这些资源的权限。 AWS 账户 CodeCatalyst 为此，您必须在 connected 中创建一个服务角色 AWS 账户 ，该角色 CodeCatalyst可以代表空间中的用户和项目代替。您可以选择创建和使用 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服务角色，也可以创建自定义的服务角色并手动配置这些 IAM 策略和角色。最佳实践是向这些角色分配最少的必需权限。
**注意**  
对于自定义的服务角色，需要 CodeCatalyst 服务主体。有关 CodeCatalyst 服务主体和信任模型的更多信息，请参阅[了解 CodeCatalyst 信任模型](trust-model.md)。
+ 要通过互联管理对空间的支持 AWS 账户，您可以选择创建和使用允许 CodeCatalyst 用户访问支持的**AWSRoleForCodeCatalystSupport**服务角色。有关 CodeCatalyst 空间支持的更多信息，请参阅[支持 for Amazon CodeCatalyst](support.md)。



## 了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服务角色
<a name="ipa-iam-roles-service-role"></a>

您可以为空间添加一个 IAM 角色，该角色 CodeCatalyst 可用于在互联环境中创建和访问资源 AWS 账户。该角色称作[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。创建服务角色的最简单方法是，在创建空间时添加一个服务角色并为该角色选择 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 选项。这不仅创建了`AdministratorAccess`附加的服务角色，而且还创建了信任策略， CodeCatalyst 允许在空间中的项目中代表用户担任该角色。服务角色的范围限于空间而不是单个项目。如需创建此角色，请参阅[为您的账户和空间创建 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色](#ipa-iam-roles-service-create)。您只能为每个账户中的每个空间创建一个角色。

**注意**  
此角色仅建议与开发账户一起使用，并且使用`AdministratorAccess` AWS 托管策略，从而赋予其在其中创建新策略和资源的完全访问权限 AWS 账户。

附加到 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色的策略旨在用于使用空间中的蓝图创建的项目。该策略使这些项目中的用户能够使用已连接的 AWS 账户中的资源来开发、构建、测试和部署代码。有关更多信息，请参阅[为 AWS 服务创建角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

附加到**CodeCatalystWorkflowDevelopmentRole-*spaceName***角色的策略是中的`AdministratorAccess`托管策略 AWS。这是一项授予对所有 AWS 操作和资源的完全访问权限的策略。要在 IAM 控制台中查看 JSON 策略文档，请参阅[AdministratorAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AdministratorAccess)。

以下信任策略 CodeCatalyst 允许代入该**CodeCatalystWorkflowDevelopmentRole-*spaceName***角色。有关 CodeCatalyst 信任模型的更多信息，请参阅[了解 CodeCatalyst 信任模型](trust-model.md)。

```
"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/*"
                }
            }
        }
    ]
```

## 为您的账户和空间创建 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色
<a name="ipa-iam-roles-service-create"></a>

按照以下步骤操作，创建将用于空间中的工作流的 `CodeCatalystWorkflowDevelopmentRole-spaceName` 角色。对于要具有在项目中使用的 IAM 角色的每个账户，您必须向空间添加一个角色，例如开发人员角色。

在开始之前，您必须拥有自己的管理权限 AWS 账户 或能够与您的管理员合作。有关中如何使用 AWS 账户 和 IAM 角色的更多信息 CodeCatalyst，请参阅[允许在已连接的情况下访问 AWS 资源 AWS 账户](ipa-connect-account.md)。

**要创建并添加 CodeCatalyst **CodeCatalystWorkflowDevelopmentRole-*spaceName*****

1. 在开始进入 CodeCatalyst 控制台之前，请先打开 AWS 管理控制台，然后确保您的空间使用相同 AWS 账户 的方式登录。

1. 打开 CodeCatalyst 控制台，[网址为 https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 导航到您的 CodeCatalyst 空间。选择**设置**，然后选择 **AWS 账户**。

1. 选择要创建角色的 AWS 账户 位置的链接。此时将显示 **AWS 账户 详细信息**页面。

1. **从中选择 “管理角色**” AWS 管理控制台。

   “**将 IAM 角色添加到 Amazon CodeCatalyst 空间**” 页面将在中打开 AWS 管理控制台。这是 **Amazon CodeCatalyst 空间**页面。您可能需要登录才能访问该页面。

1. 选择**在 IAM 中创建 CodeCatalyst 开发管理员角色**。此选项将创建一个服务角色，其中包含开发角色的权限策略和信任策略。该角色的名称为 `CodeCatalystWorkflowDevelopmentRole-spaceName`。有关角色和角色策略的更多信息，请参阅[了解 **CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服务角色](#ipa-iam-roles-service-role)。
**注意**  
此角色仅建议与开发者账户一起使用，并且使用`AdministratorAccess` AWS 托管策略，从而赋予其在此创建新策略和资源的完全访问权限 AWS 账户。

1. 选择**创建开发角色**。

1. 在连接页面的**可用的 IAM 角色**下 CodeCatalyst，查看添加到您的账户的 IAM 角色列表中的角色。`CodeCatalystWorkflowDevelopmentRole-spaceName`

1. 要返回您的空间，请选择 **Go to Amazon CodeCatalyst**。

## 了解 **AWSRoleForCodeCatalystSupport** 服务角色
<a name="ipa-iam-roles-support-role"></a>

您可以为空间添加一个 IAM 角色，空间中的 CodeCatalyst 用户可以使用该角色来创建和访问支持案例。此角色称作用于支持的[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。创建用于支持的服务角色的最简单方法是，在创建空间时添加一个服务角色并为该角色选择 `AWSRoleForCodeCatalystSupport` 选项。这不仅可以创建策略和角色，还可以创建信任策略，该策略 CodeCatalyst 允许在空间中的项目中代表用户担任该角色。服务角色的范围限于空间而不是单个项目。如需创建此角色，请参阅[为您的账户和空间创建 **AWSRoleForCodeCatalystSupport** 角色](#ipa-iam-roles-support-create)。

附加到 `AWSRoleForCodeCatalystSupport` 角色的策略是提供支持权限的托管式策略。有关更多信息，请参阅 [AWS 托管策略：AmazonCodeCatalystSupportAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonCodeCatalystSupportAccess)。

策略的信任角色 CodeCatalyst 允许代入该角色。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "codecatalyst.amazonaws.com",
                    "codecatalyst-runner.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

## 为您的账户和空间创建 **AWSRoleForCodeCatalystSupport** 角色
<a name="ipa-iam-roles-support-create"></a>

按照以下步骤操作，创建将用于空间中的支持案例的 `AWSRoleForCodeCatalystSupport` 角色。必须将该角色添加到空间的指定计费账户中。

在开始之前，您必须拥有自己的管理权限 AWS 账户 或能够与您的管理员合作。有关中如何使用 AWS 账户 和 IAM 角色的更多信息 CodeCatalyst，请参阅[允许在已连接的情况下访问 AWS 资源 AWS 账户](ipa-connect-account.md)。

**要创建并添加 CodeCatalyst **AWSRoleForCodeCatalystSupport****

1. 在开始进入 CodeCatalyst 控制台之前，请先打开 AWS 管理控制台，然后确保您的空间使用相同 AWS 账户 的方式登录。

1. 导航到您的 CodeCatalyst 空间。选择**设置**，然后选择 **AWS 账户**。

1. 选择要创建角色的 AWS 账户 位置的链接。此时将显示 **AWS 账户 详细信息**页面。

1. **从中选择 “管理角色**” AWS 管理控制台。

   “**将 IAM 角色添加到 Amazon CodeCatalyst 空间**” 页面将在中打开 AWS 管理控制台。这是 **Amazon CodeCatalyst Spaces** 页面。您可能需要登录才能访问该页面。

1. 在**CodeCatalyst 空间详情**下，选择**添加 Su CodeCatalyst pport 角色**。此选项将创建一个服务角色，其中包含预览开发角色的权限策略和信任策略。该角色的名称为 **AWSRoleForCodeCatalystSupport**，并且将附加唯一标识符。有关角色和角色策略的更多信息，请参阅[了解 **AWSRoleForCodeCatalystSupport** 服务角色](#ipa-iam-roles-support-role)。

1. 在 “为 Su ** CodeCatalyst pport 添加角色**” 页面上，将默认角色保留为选中状态，然后选择**创建角色**。

1. 在 “**可用的 IAM 角色**” `CodeCatalystWorkflowDevelopmentRole-spaceName` 下 CodeCatalyst，在添加到您的账户的 IAM 角色列表中查看该角色。

1. 要返回您的空间，请选择 **Go to Amazon CodeCatalyst**。

## 在中为工作流程操作配置 IAM 角色 CodeCatalyst
<a name="ipa-iam-roles-policies"></a>

本部分详细介绍了您可以创建的用于 CodeCatalyst账户的 IAM 角色和策略。有关创建示例角色的说明，请参阅[手动为工作流操作创建角色](#ipa-iam-roles-actions)。创建 IAM 角色后，复制角色 ARN 以将 IAM 角色添加到账户连接中，并将其与项目环境关联。要了解更多信息，请参阅[将 IAM 角色添加到账户连接](ipa-connect-account-addroles.md)。

### CodeCatalyst 为 Amazon S3 访问权限构建角色
<a name="ipa-iam-rolepolicy-BuildRoleS3"></a>

对于 CodeCatalyst 工作流程构建操作，您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建名为 **CodeCatalystBuildRoleforS3** Access 的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在中的 CloudFormation 资源上运行任务。 AWS 账户

此角色授予执行以下操作所需的权限：
+ 写入 Amazon S3 存储桶。
+ 使用 Support 来支持资源构建 CloudFormation。这需要 Amazon S3 访问权限。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为其构建角色 CloudFormation
<a name="ipa-iam-rolepolicy-BuildRoleCloudFormation"></a>

对于 CodeCatalyst 工作流程构建操作，您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在中的 CloudFormation 资源上运行任务。 AWS 账户

此角色授予执行以下操作所需的权限：
+ 使用 Support 来支持资源构建 CloudFormation。这与访问 Amazon S3 的 CodeCatalyst构建角色和的 CodeCatalyst 部署角色一起是必需的 CloudFormation。

应将以下 AWS 托管策略附加到此角色：
+ **AWSCloudFormationFullAccess**
+ **IAMFull访问**
+ **亚马逊 3 FullAccess**
+ **亚马逊APIGateway管理员**
+ **AWSLambdaFullAccess**

### CodeCatalyst 为 CDK 构建角色
<a name="ipa-iam-rolepolicy-BuildRoleCDK"></a>

对于运行 CDK 构建操作 CodeCatalyst 的工作流程，例如现代三层 Web 应用程序，您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要对您的 CloudFormation 资源进行引导和运行 CDK 构建命令。 AWS 账户

此角色授予执行以下操作所需的权限：
+ 写入 Amazon S3 存储桶。
+ Support 构建 CDK 构造和 CloudFormation 资源堆栈。这需要访问 Amazon S3 以存储构件，访问 Amazon ECR 以获得映像存储库支持，并访问 SSM 以进行系统治理和监控虚拟实例。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为部署角色 CloudFormation
<a name="ipa-iam-rolepolicy-DeployCloudFormation"></a>

对于使用 CodeCatalyst 的工作流程部署操作 CloudFormation，您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以使用具有限定权限的策略，该策略 CodeCatalyst 需要对中的 CloudFormation AWS 账户资源运行任务。

此角色授予执行以下操作所需的权限：
+  CodeCatalyst 允许调用 λ 函数来执行 blue/green 部署 CloudFormation。
+  CodeCatalyst 允许在中创建和更新堆栈和变更集。 CloudFormation

该角色使用以下策略：

```
{"Action": [
        "cloudformation:CreateStack",
        "cloudformation:DeleteStack",
        "cloudformation:Describe*",
        "cloudformation:UpdateStack",
        "cloudformation:CreateChangeSet",
        "cloudformation:DeleteChangeSet",
        "cloudformation:ExecuteChangeSet",
        "cloudformation:SetStackPolicy",
        "cloudformation:ValidateTemplate",
        "cloudformation:List*",
        "iam:PassRole"
    ],
    "Resource": "resource_ARN",
    "Effect": "Allow"
}
```

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为 Amazon EC2 部署角色
<a name="ipa-iam-rolepolicy-DeployEC2"></a>

CodeCatalyst 工作流程部署操作使用具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您 AWS 账户的 Amazon EC2 资源上运行任务。**CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色的默认策略不包括 Amazon EC2 或 Amazon EC2 Auto Scaling 的权限。

此角色授予执行以下操作所需的权限：
+ 创建 Amazon EC2 部署。
+ 读取实例上的标签，或通过自动扩缩组名称识别 Amazon EC2 实例。
+ 读取、创建、更新和删除 Amazon EC2 Auto Scaling 组、生命周期挂钩和扩展策略。
+ 将信息发布到 Amazon SNS 主题。
+ 检索有关 CloudWatch 警报的信息。
+ 读取和更新 Elastic Load Balancing。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为 Amazon ECS 部署角色
<a name="ipa-iam-rolepolicy-DeployECS"></a>

对于 CodeCatalyst 工作流程操作，您可以创建具有必要权限的 IAM 角色。您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建用于 CodeCatalyst 部署操作的 IAM 角色以用于 Lambda 部署。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您 AWS 账户的 Amazon ECS 资源上运行任务。

此角色授予执行以下操作所需的权限：
+ 代表 CodeCatalyst 用户使用 CodeCatalyst 连接中指定的账户启动滚动部署 Amazon ECS。
+ 读取、更新和删除 Amazon ECS 任务集。
+ 更新 Elastic Load Balancing 目标组、侦听器和规则。
+ 调用 Lambda 函数。
+ 访问 Amazon S3 存储桶中的修订文件。
+ 检索有关 CloudWatch 警报的信息。
+ 将信息发布到 Amazon SNS 主题。

该角色使用以下策略：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
    "Action":[
      "ecs:DescribeServices",
      "ecs:CreateTaskSet",
      "ecs:DeleteTaskSet",
      "ecs:ListClusters",
      "ecs:RegisterTaskDefinition",
      "ecs:UpdateServicePrimaryTaskSet",
      "ecs:UpdateService",
      "elasticloadbalancing:DescribeTargetGroups",
      "elasticloadbalancing:DescribeListeners",
      "elasticloadbalancing:ModifyListener",
      "elasticloadbalancing:DescribeRules",
      "elasticloadbalancing:ModifyRule",
      "lambda:InvokeFunction",
      "lambda:ListFunctions",
      "cloudwatch:DescribeAlarms",
      "sns:Publish",
      "sns:ListTopics", 
      "s3:GetObject",
      "s3:GetObjectVersion",
      "codedeploy:CreateApplication", 
      "codedeploy:CreateDeployment", 
      "codedeploy:CreateDeploymentGroup", 
      "codedeploy:GetApplication", 
      "codedeploy:GetDeployment", 
      "codedeploy:GetDeploymentGroup", 
      "codedeploy:ListApplications", 
      "codedeploy:ListDeploymentGroups", 
      "codedeploy:ListDeployments", 
      "codedeploy:StopDeployment", 
      "codedeploy:GetDeploymentTarget", 
      "codedeploy:ListDeploymentTargets", 
      "codedeploy:GetDeploymentConfig", 
      "codedeploy:GetApplicationRevision", 
      "codedeploy:RegisterApplicationRevision", 
      "codedeploy:BatchGetApplicationRevisions", 
      "codedeploy:BatchGetDeploymentGroups", 
      "codedeploy:BatchGetDeployments", 
      "codedeploy:BatchGetApplications", 
      "codedeploy:ListApplicationRevisions", 
      "codedeploy:ListDeploymentConfigs", 
      "codedeploy:ContinueDeployment"           
   ],
   "Resource":"*",
   "Effect":"Allow"
},{"Action":[
      "iam:PassRole"
   ],
   "Effect":"Allow",
   "Resource":"*",
   "Condition":{"StringLike":{"iam:PassedToService":[
            "ecs-tasks.amazonaws.com",
            "codedeploy.amazonaws.com"
         ]
      }
   }
}]
}
```

------

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为 Lambda 部署角色
<a name="ipa-iam-rolepolicy-DeployLambda"></a>

 对于 CodeCatalyst 工作流程操作，您可以创建具有必要权限的 IAM 角色。您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建用于 CodeCatalyst部署操作的 IAM 角色以用于 Lambda 部署。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您的 Lambda 资源上运行任务。 AWS 账户

此角色授予执行以下操作所需的权限：
+ 读取、更新和调用 Lambda 函数和别名。
+ 访问 Amazon S3 存储桶中的修订文件。
+ 检索有关 CloudWatch 事件警报的信息。
+ 将信息发布到 Amazon SNS 主题。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为 Lambda 部署角色
<a name="ipa-iam-rolepolicy-DeployLambda"></a>

对于 CodeCatalyst 工作流程操作，您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您的 Lambda 资源上运行任务。 AWS 账户

此角色授予执行以下操作所需的权限：
+ 读取、更新和调用 Lambda 函数和别名。
+ 访问 Amazon S3 存储桶中的修订文件。
+ 检索有关 CloudWatch 警报的信息。
+ 将信息发布到 Amazon SNS 主题。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst 为部署角色 AWS SAM
<a name="ipa-iam-rolepolicy-DeploySAM"></a>

对于 CodeCatalyst 工作流程操作，您可以使用默认**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色，也可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您的 AWS 账户上运行任务 AWS SAM 和 CloudFormation 资源。

此角色授予执行以下操作所需的权限：
+  CodeCatalyst 允许调用 Lambda 函数来部署无服务器和 CLI AWS SAM 应用程序。
+  CodeCatalyst 允许在中创建和更新堆栈和变更集。 CloudFormation

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst Amazon EC2 的只读角色
<a name="ipa-iam-rolepolicy-ReadOnlyEC2"></a>

对于 CodeCatalyst 工作流程操作，您可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您 AWS 账户的 Amazon EC2 资源上运行任务。该**CodeCatalystWorkflowDevelopmentRole-*spaceName***服务角色不包括对 Amazon EC2 的权限或所描述的针对亚马逊的操作 CloudWatch。

此角色授予执行以下操作所需的权限：
+ 获取 Amazon EC2 实例的状态。
+ 获取 Amazon EC2 实例的 CloudWatch 指标。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst Amazon ECS 的只读角色
<a name="ipa-iam-rolepolicy-ReadOnlyECS"></a>

对于 CodeCatalyst 工作流程操作，您可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您 AWS 账户的 Amazon ECS 资源上运行任务。

此角色授予执行以下操作所需的权限：
+ 读取 Amazon ECS 任务集。
+ 检索有关 CloudWatch 警报的信息。

该角色使用以下策略：

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

### CodeCatalyst Lambda 的只读角色
<a name="ipa-iam-rolepolicy-ReadOnlyLambda"></a>

对于 CodeCatalyst 工作流程操作，您可以创建具有必要权限的 IAM 角色。此角色使用具有限定权限的策略，该策略 CodeCatalyst 需要在您的 Lambda 资源上运行任务。 AWS 账户

此角色授予执行以下操作所需的权限：
+  读取 Lambda 函数和别名。
+ 访问 Amazon S3 存储桶中的修订文件。
+ 检索有关 CloudWatch 警报的信息。

该角色使用以下策略。

**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

```
"Resource": "*"
```

## 手动为工作流操作创建角色
<a name="ipa-iam-roles-actions"></a>

CodeCatalyst 工作流程操作使用您创建的 IAM 角色，这些**角色称为构建****角色、部署角色**和**堆栈角色**。

按以下步骤操作，在 IAM 中创建这些角色。

**创建部署角色**

1. 按如下步骤操作，为角色创建策略：

   1. 登录到 AWS。

   1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**策略**。

   1. 选择**创建策略**。

   1. 选择 **JSON** 选项卡。

   1. 删除现有代码。

   1. 粘贴以下代码：
**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

      ```
      "Resource": "*"
      ```

   1. 选择**下一步：标签**。

   1. 选择**下一步：审核**。

   1. 在**名称**中，输入：

      ```
      codecatalyst-deploy-policy
      ```

   1. 选择**创建策略**。

      现在，您已经创建了权限策略。

1. 按如下步骤操作，创建部署角色：

   1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

   1. 选择**自定义信任策略**。

   1. 删除现有的自定义信任策略。

   1. 添加以下自定义信任策略：

   1. 选择**下一步**。

   1. 在**权限策略**中，搜索 `codecatalyst-deploy-policy` 并选中其复选框。

   1. 选择**下一步**。

   1. 对于**角色名称**，输入：

      ```
      codecatalyst-deploy-role
      ```

   1. 对于**角色描述**，输入：

      ```
      CodeCatalyst deploy role
      ```

   1. 选择**创建角色**。

   现在，您已创建一个具有信任策略和权限策略的部署角色。

1. 按如下步骤操作，获取部署角色 ARN：

   1. 在导航窗格中，选择**角色**。

   1. 在搜索框中，输入刚创建的角色的名称（`codecatalyst-deploy-role`）。

   1. 从列表中选择该角色。

      此时将显示该角色的**摘要**页面。

   1. 在顶部，复制 **ARN** 值。

   现在，您已创建具有相应权限的部署角色并已获取其 ARN。

**创建构建角色**

1. 按如下步骤操作，为角色创建策略：

   1. 登录到 AWS。

   1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**策略**。

   1. 选择**创建策略**。

   1. 选择 **JSON** 选项卡。

   1. 删除现有代码。

   1. 粘贴以下代码：
**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

      ```
      "Resource": "*"
      ```

   1. 选择**下一步：标签**。

   1. 选择**下一步：审核**。

   1. 在**名称**中，输入：

      ```
      codecatalyst-build-policy
      ```

   1. 选择**创建策略**。

      现在，您已经创建了权限策略。

1. 按如下步骤操作，创建构建角色：

   1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

   1. 选择**自定义信任策略**。

   1. 删除现有的自定义信任策略。

   1. 添加以下自定义信任策略：

   1. 选择**下一步**。

   1. 在**权限策略**中，搜索 `codecatalyst-build-policy` 并选中其复选框。

   1. 选择**下一步**。

   1. 对于**角色名称**，输入：

      ```
      codecatalyst-build-role
      ```

   1. 对于**角色描述**，输入：

      ```
      CodeCatalyst build role
      ```

   1. 选择**创建角色**。

   现在，您已创建一个具有信任策略和权限策略的构建角色。

1. 按如下步骤操作，获取构建角色 ARN：

   1. 在导航窗格中，选择**角色**。

   1. 在搜索框中，输入刚创建的角色的名称（`codecatalyst-build-role`）。

   1. 从列表中选择该角色。

      此时将显示该角色的**摘要**页面。

   1. 在顶部，复制 **ARN** 值。

   现在，您已创建具有相应权限的构建角色并已获取其 ARN。

**创建堆栈角色**
**注意**  
您不必创建堆栈角色，但出于安全考虑，建议您这样做。如果您不创建堆栈角色，则需要将此过程中进一步描述的权限策略添加到部署角色。

1.  AWS 使用要部署堆栈的账户登录。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 选择顶部的 **AWS 服务**。

1. 从服务列表中选择**CloudFormation**。

1. 选择**下一步: 权限**。

1. 在搜索框中，添加访问堆栈中的资源所需的所有策略。例如，如果您的堆栈包含一个 AWS Lambda 函数，则需要添加授予对 Lambda 的访问权限的策略。
**提示**  
如果您不确定要添加哪些策略，此时可以将其忽略。在测试操作时，如果您没有正确的权限，则 CloudFormation 会生成错误，显示您需要添加哪些权限。

1. 选择**下一步：标签**。

1. 选择**下一步：审核**。

1. 对于**角色名称**，输入：

   ```
   codecatalyst-stack-role
   ```

1. 选择**创建角色**。

1. 要获取堆栈角色的 ARN，请执行以下操作：

   1. 在导航窗格中，选择**角色**。

   1. 在搜索框中，输入刚创建的角色的名称（`codecatalyst-stack-role`）。

   1. 从列表中选择该角色。

   1. 在**摘要**页面上，复制**角色 ARN** 值。

## AWS CloudFormation 用于在 IAM 中创建策略和角色
<a name="ipa-iam-roles-cfn"></a>

您可以选择创建和使用 AWS CloudFormation 模板来创建访问 CodeCatalyst 项目和工作流程中资源所需的策略和角色。 AWS 账户 CloudFormation 是一项服务，可帮助您对 AWS 资源进行建模和设置，这样您就可以花更少的时间管理这些资源，而将更多的时间集中在运行的应用程序上 AWS。如果您打算创建多个角色 AWS 账户，则创建模板可以帮助您更快地执行此任务。

以下示例模板创建了部署操作角色和策略。

```
Parameters:
  CodeCatalystAccountId:
    Type: String
    Description: Account ID from the connections page
  ExternalId:
    Type: String
    Description: External ID from the connections page
Resources:
  CrossAccountRole:
    Type: 'AWS::IAM::Role'
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"		 	 	 
        Statement:
          - Effect: Allow
            Principal:
              AWS:
                - !Ref CodeCatalystAccountId
            Action:
              - 'sts:AssumeRole'
            Condition:
              StringEquals:
                sts:ExternalId: !Ref ExternalId
      Path: /
      Policies:
        - PolicyName: CodeCatalyst-CloudFormation-action-policy
          PolicyDocument:
            Version: "2012-10-17"		 	 	 
            Statement:
              - Effect: Allow
                Action:
                  - 'cloudformation:CreateStack'
                  - 'cloudformation:DeleteStack'
                  - 'cloudformation:Describe*'
                  - 'cloudformation:UpdateStack'
                  - 'cloudformation:CreateChangeSet'
                  - 'cloudformation:DeleteChangeSet'
                  - 'cloudformation:ExecuteChangeSet'
                  - 'cloudformation:SetStackPolicy'
                  - 'cloudformation:ValidateTemplate'
                  - 'cloudformation:List*'
                  - 'iam:PassRole'
                Resource: '*'
```

## 手动为 Web 应用程序蓝图创建角色
<a name="ipa-iam-roles-webapp-blueprint"></a>

 CodeCatalyst Web 应用程序蓝图使用您创建的 IAM 角色，这些**角色称为 CDK 的构建**角色、**部署角色**和**堆栈角色**。

按以下步骤操作，在 IAM 中创建角色。

**创建构建角色**

1. 按如下步骤操作，为角色创建策略：

   1. 登录到 AWS。

   1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**策略**。

   1. 选择**创建策略**。

   1. 选择 **JSON** 选项卡。

   1. 删除现有代码。

   1. 粘贴以下代码：
**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

      ```
      "Resource": "*"
      ```

   1. 选择**下一步：标签**。

   1. 选择**下一步：审核**。

   1. 在**名称**中，输入：

      ```
      codecatalyst-webapp-build-policy
      ```

   1. 选择**创建策略**。

      现在，您已经创建了权限策略。

1. 按如下步骤操作，创建构建角色：

   1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

   1. 选择**自定义信任策略**。

   1. 删除现有的自定义信任策略。

   1. 添加以下自定义信任策略：

   1. 选择**下一步**。

   1. 将权限策略附加到构建角色。在**添加权限**页面上的**权限策略**部分中，搜索 `codecatalyst-webapp-build-policy` 并选中其复选框。

   1. 选择**下一步**。

   1. 对于**角色名称**，输入：

      ```
      codecatalyst-webapp-build-role
      ```

   1. 对于**角色描述**，输入：

      ```
      CodeCatalyst Web app build role
      ```

   1. 选择**创建角色**。

   现在，您已创建一个具有信任策略和权限策略的构建角色。

1. 将权限策略附加到构建角色，如下所示：

   1. 在导航窗格中，选择**角色**，然后搜索 `codecatalyst-webapp-build-role`。``

   1. 选择 `codecatalyst-webapp-build-role` 以显示其详细信息。``

   1. 在**权限**选项卡中，选择**添加权限**，然后选择**附加策略**。

   1. 搜索 `codecatalyst-webapp-build-policy`，选中其复选框，然后选择**附加策略**。

      您现在已将权限策略附加到构建角色。构建角色现在具有两个策略：权限策略和信任策略。

1. 按如下步骤操作，获取构建角色 ARN：

   1. 在导航窗格中，选择**角色**。

   1. 在搜索框中，输入刚创建的角色的名称（`codecatalyst-webapp-build-role`）。

   1. 从列表中选择该角色。

      此时将显示该角色的**摘要**页面。

   1. 在顶部，复制 **ARN** 值。

   现在，您已创建具有相应权限的构建角色并已获取其 ARN。

## 手动为 SAM 蓝图创建角色
<a name="ipa-iam-roles-SAM-blueprint"></a>

SA CodeCatalyst M 蓝图使用您创建的 IAM 角色，分别称为**构建角色 CloudFormation**和 SA **M 的部署角色**。

按以下步骤操作，在 IAM 中创建这些角色。

**为创建生成角色 CloudFormation**

1. 按如下步骤操作，为角色创建策略：

   1. 登录到 AWS。

   1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**策略**。

   1. 选择**创建策略**。

   1. 选择 **JSON** 选项卡。

   1. 删除现有代码。

   1. 粘贴以下代码：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:*",
                      "cloudformation:*"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------
**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

      ```
      "Resource": "*"
      ```

   1. 选择**下一步：标签**。

   1. 选择**下一步：审核**。

   1. 在**名称**中，输入：

      ```
      codecatalyst-SAM-build-policy
      ```

   1. 选择**创建策略**。

      现在，您已经创建了权限策略。

1. 按如下步骤操作，创建构建角色：

   1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

   1. 选择**自定义信任策略**。

   1. 删除现有的自定义信任策略。

   1. 添加以下自定义信任策略：

   1. 选择**下一步**。

   1. 将权限策略附加到构建角色。在**添加权限**页面上的**权限策略**部分中，搜索 `codecatalyst-SAM-build-policy` 并选中其复选框。

   1. 选择**下一步**。

   1. 对于**角色名称**，输入：

      ```
      codecatalyst-SAM-build-role
      ```

   1. 对于**角色描述**，输入：

      ```
      CodeCatalyst SAM build role
      ```

   1. 选择**创建角色**。

   现在，您已创建一个具有信任策略和权限策略的构建角色。

1. 将权限策略附加到构建角色，如下所示：

   1. 在导航窗格中，选择**角色**，然后搜索 `codecatalyst-SAM-build-role`。``

   1. 选择 `codecatalyst-SAM-build-role` 以显示其详细信息。``

   1. 在**权限**选项卡中，选择**添加权限**，然后选择**附加策略**。

   1. 搜索 `codecatalyst-SAM-build-policy`，选中其复选框，然后选择**附加策略**。

      您现在已将权限策略附加到构建角色。构建角色现在具有两个策略：权限策略和信任策略。

1. 按如下步骤操作，获取构建角色 ARN：

   1. 在导航窗格中，选择**角色**。

   1. 在搜索框中，输入刚创建的角色的名称（`codecatalyst-SAM-build-role`）。

   1. 从列表中选择该角色。

      此时将显示该角色的**摘要**页面。

   1. 在顶部，复制 **ARN** 值。

   现在，您已创建具有相应权限的构建角色并已获取其 ARN。

**创建适用于 SAM 的部署角色**

1. 按如下步骤操作，为角色创建策略：

   1. 登录到 AWS。

   1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

   1. 在导航窗格中，选择**策略**。

   1. 选择**创建策略**。

   1. 选择 **JSON** 选项卡。

   1. 删除现有代码。

   1. 粘贴以下代码：
**注意**  
第一次使用该角色运行工作流操作时，请在资源策略语句中使用以下通配符，然后在策略可用后使用资源名称缩小策略范围。  

      ```
      "Resource": "*"
      ```

   1. 选择**下一步：标签**。

   1. 选择**下一步：审核**。

   1. 在**名称**中，输入：

      ```
      codecatalyst-SAM-deploy-policy
      ```

   1. 选择**创建策略**。

      现在，您已经创建了权限策略。

1. 按如下步骤操作，创建构建角色：

   1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

   1. 选择**自定义信任策略**。

   1. 删除现有的自定义信任策略。

   1. 添加以下自定义信任策略：

   1. 选择**下一步**。

   1. 将权限策略附加到构建角色。在**添加权限**页面上的**权限策略**部分中，搜索 `codecatalyst-SAM-deploy-policy` 并选中其复选框。

   1. 选择**下一步**。

   1. 对于**角色名称**，输入：

      ```
      codecatalyst-SAM-deploy-role
      ```

   1. 对于**角色描述**，输入：

      ```
      CodeCatalyst SAM deploy role
      ```

   1. 选择**创建角色**。

   现在，您已创建一个具有信任策略和权限策略的构建角色。

1. 将权限策略附加到构建角色，如下所示：

   1. 在导航窗格中，选择**角色**，然后搜索 `codecatalyst-SAM-deploy-role`。``

   1. 选择 `codecatalyst-SAM-deploy-role` 以显示其详细信息。``

   1. 在**权限**选项卡中，选择**添加权限**，然后选择**附加策略**。

   1. 搜索 `codecatalyst-SAM-deploy-policy`，选中其复选框，然后选择**附加策略**。

      您现在已将权限策略附加到构建角色。构建角色现在具有两个策略：权限策略和信任策略。

1. 按如下步骤操作，获取构建角色 ARN：

   1. 在导航窗格中，选择**角色**。

   1. 在搜索框中，输入刚创建的角色的名称（`codecatalyst-SAM-deploy-role`）。

   1. 从列表中选择该角色。

      此时将显示该角色的**摘要**页面。

   1. 在顶部，复制 **ARN** 值。

   现在，您已创建具有相应权限的构建角色并已获取其 ARN。