

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

在 Amazon CodeCatalyst 中，您可以建立並使用 AWS 建置器 ID 來登入和存取您的空間和專案。 AWS Builder ID 不是 AWS Identity and Access Management (IAM) 中的身分，也不存在於 中 AWS 帳戶。不過，CodeCatalyst 在驗證空間以進行計費時，以及連線到 AWS 帳戶 以建立和使用其中的資源時，確實會與 IAM 整合 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 Amazon 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 Resource Name (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 區域。建立連線後，您可以在 中選擇 選項來建立**CodeCatalystWorkflowDevelopmentRole-*spaceName***角色 AWS 管理主控台。在範例政策中，`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>

本節提供與連線至 CodeCatalyst 之 的帳戶連線資源搭配使用之動作 AWS 帳戶 的許可參考。下一節說明與連線帳戶相關的僅限許可動作。

### 帳戶連線的必要許可
<a name="permissions-reference-connections"></a>

 使用帳戶連線需要下列許可。


****  

| 帳戶連線的 CodeCatalyst 許可 | 所需的許可 | Resources | 
| --- | --- | --- | 
| 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 應用程式需要下列許可。


****  

| IAM Identity Center 應用程式的 CodeCatalyst 許可 | 所需的許可 | Resources | 
| --- | --- | --- | 
| AssociateIdentityCenterApplicationToSpace | 將 IAM Identity Center 應用程式與 CodeCatalyst 空間建立關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| AssociateIdentityToIdentityCenterApplication | 將身分與 CodeCatalyst 空間的 IAM Identity Center 應用程式建立關聯時需要。這只是 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 Identity Center 應用程式取消關聯時需要。這只是 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 Identity Center 應用程式與 CodeCatalyst 空間的關聯時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| DisassociateIdentityFromIdentityCenterApplication | 將身分與 CodeCatalyst 空間的 IAM Identity Center 應用程式取消關聯時需要。這只是 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 Identity Center 應用程式清單時需要。這只是 IAM 政策許可，不是 API 動作。 | arn:aws:codecatalyst:region:account\$1ID:/identity-center-applications/identity-center-application\$1ID | 
| ListSpacesForIdentityCenterApplication | 依 IAM Identity Center 應用程式檢視 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>

Amazon 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)。服務連結角色是直接連結至 CodeCatalyst 的唯一 IAM 角色類型。CodeCatalyst 會預先定義服務連結角色，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓您更輕鬆地設定 CodeCatalyst，因為您不必手動新增必要的許可。CodeCatalyst 定義其服務連結角色的許可，除非另有定義，否則只有 CodeCatalyst 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。這可保護您的 CodeCatalyst 資源，因為您不會不小心移除存取資源的許可。

如需有關支援服務連結角色的其他 服務的資訊，請參閱[AWS 使用 IAM 的服務](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 對指定的資源完成下列動作：
+ 動作：`View application instance profiles and associated directory users and groups`適用於 `CodeCatalyst spaces that support identity federation and SSO 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 CLI或 AWS API 中建立空間時，CodeCatalyst 會為您建立服務連結角色。

**重要**  
此服務連結角色可以顯示在您的帳戶，如果您於其他服務中完成一項動作時，可以使用支援此角色的功能。此外，如果您在 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 CLI或 AWS API 中的空間時，CodeCatalyst 會為您清除資源並刪除服務連結角色。

您也可以使用 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 Regions and endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

CodeCatalyst 不支援在提供服務的每個區域中使用服務連結角色。您可以在下列區域中使用 AmazonCodeCatalystServiceRoleForIdentityCenterApplicationSynchronization 角色。


****  

| 區域名稱 | 區域身分 | CodeCatalyst 支援 | 
| --- | --- | --- | 
| 美國東部 (維吉尼亞北部) | us-east-1 | 否 | 
| 美國東部 (俄亥俄) | us-east-2 | 否 | 
| 美國西部 (加利佛尼亞北部) | us-west-1 | 否 | 
| 美國西部 (奧勒岡) | us-west-2 | 是 | 
| Africa (Cape Town) | 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 | 否 | 
| Europe (Paris) | eu-west-3 | 否 | 
| Europe (Stockholm) | eu-north-1 | 否 | 
| Middle East (Bahrain) | me-south-1 | 否 | 
| 中東 (阿拉伯聯合大公國) | me-central-1 | 否 | 
| 南美洲 (聖保羅) | sa-east-1 | 否 | 
| AWS GovCloud （美國東部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | 否 | 

# AWS Amazon 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 最有可能更新 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>





這是授予所有空間管理員和空間成員使用與空間帳單帳戶相關聯之商業或企業高級支援計劃的許可的政策。這些許可允許空間管理員和成員針對他們在 CodeCatalyst 許可政策中擁有許可的資源，利用進階支援計劃。



**許可詳細資訊**

此政策包含以下許可。




+ `support` – 准許使用者搜尋、建立和解決 AWS 支援案例。同時授予描述通訊、嚴重性等級、附件和相關支援案例詳細資訊的許可。



------
#### [ 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>





這是授予許可的政策，以管理 Amazon CodeCatalyst Spaces 頁面中的 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 CodeCatalyst Spaces 頁面中檢視和列出空間和連線帳戶資訊的許可 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` – 准許使用者檢視在 CodeCatalyst 中針對關聯空間在 IAM Identity Center 中管理的應用程式執行個體描述檔。



------
#### [ 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 摘要。




| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  [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 可以透過 AWS 帳戶 將您的 連接到 CodeCatalyst 空間來存取 AWS 資源。然後，您可以建立下列服務角色，並在連接帳戶時建立關聯。

如需有關您在 JSON 政策中使用的元素的詳細資訊，請參閱《[IAM 使用者指南》中的 IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。 **
+ 若要存取 CodeCatalyst 專案和工作流程 AWS 帳戶 的 中的資源，您必須先授予 CodeCatalyst 代表您存取這些資源的許可。若要這樣做，您必須在 CodeCatalyst 可代表空間中的使用者和專案擔任 AWS 帳戶 的連線 中建立服務角色。您可以選擇建立和使用**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 帳戶 或能夠與您的管理員搭配使用。如需如何在 CodeCatalyst 中使用 AWS 帳戶 和 IAM 角色的詳細資訊，請參閱 [允許存取已連線 AWS 的資源 AWS 帳戶](ipa-connect-account.md)。

**建立和新增 CodeCatalyst **CodeCatalystWorkflowDevelopmentRole-*spaceName*****

1. 在 CodeCatalyst 主控台中開始之前，請開啟 AWS 管理主控台，然後確定您的 AWS 帳戶 空間使用相同的 登入。

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至 CodeCatalyst 空間。選擇 **Settings (設定)**，然後選擇 **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. 在連線頁面的 ** CodeCatalyst 可用的 IAM 角色**下，檢視新增至您帳戶的 IAM 角色`CodeCatalystWorkflowDevelopmentRole-spaceName`清單中的角色。

1. 若要返回您的空間，請選擇**前往 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 帳戶 或能夠與您的管理員搭配使用。如需如何在 CodeCatalyst 中使用 AWS 帳戶 和 IAM 角色的詳細資訊，請參閱 [允許存取已連線 AWS 的資源 AWS 帳戶](ipa-connect-account.md)。

**建立和新增 CodeCatalyst **AWSRoleForCodeCatalystSupport****

1. 在 CodeCatalyst 主控台中開始之前，請開啟 AWS 管理主控台，然後確定您的 AWS 帳戶 空間使用相同的 登入。

1. 導覽至 CodeCatalyst 空間。選擇 **Settings (設定)**，然後選擇 **AWS 帳戶**。

1. 選擇您要建立角色之 AWS 帳戶 的連結。**AWS 帳戶 詳細資訊**頁面隨即顯示。

1. 選擇**從中管理角色 AWS 管理主控台**。

   在 中開啟**將 IAM 角色新增至 Amazon CodeCatalyst 空間**頁面 AWS 管理主控台。這是 **Amazon CodeCatalyst Spaces** 頁面。您可能需要登入才能存取頁面。

1. 在 **CodeCatalyst 空間詳細資訊**下，選擇**新增 CodeCatalyst Support 角色**。此選項會建立服務角色，其中包含預覽開發角色的許可政策和信任政策。角色會有附加**AWSRoleForCodeCatalystSupport**唯一識別符的名稱。如需角色和角色政策的詳細資訊，請參閱 [了解 **AWSRoleForCodeCatalystSupport** 服務角色](#ipa-iam-roles-support-role)。

1. 在**新增 CodeCatalyst Support 角色**頁面上，保持選取預設值，然後選擇**建立角色**。

1. 在 ** CodeCatalyst 可用的 IAM 角色**下，檢視新增至您帳戶的 IAM 角色`CodeCatalystWorkflowDevelopmentRole-spaceName`清單中的角色。

1. 若要返回您的空間，請選擇**前往 Amazon CodeCatalyst**。

## 在 CodeCatalyst 中設定工作流程動作的 IAM 角色
<a name="ipa-iam-roles-policies"></a>

本節詳細說明您可以建立以搭配 CodeCatalyst 帳戶使用的 IAM 角色和政策。如需建立範例角色的說明，請參閱 [為工作流程動作手動建立角色](#ipa-iam-roles-actions)。建立 IAM 角色後，請複製角色 ARN，將 IAM 角色新增至您的帳戶連線，並將其與您的專案環境建立關聯。如需詳細資訊，請參閱 [新增 IAM 角色至帳戶連線](ipa-connect-account-addroles.md)。

### Amazon S3 存取的 CodeCatalyst 建置角色
<a name="ipa-iam-rolepolicy-BuildRoleS3"></a>

對於 CodeCatalyst 工作流程建置動作，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立名為 **CodeCatalystBuildRoleforS3Access** 的 IAM 角色。此角色使用具有 CodeCatalyst 在 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 寫入 Amazon S3 儲存貯體。
+ 支援使用 建置 資源 CloudFormation。這需要 Amazon S3 存取。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用之後縮小政策的範圍。  

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

### 的 CodeCatalyst 建置角色 CloudFormation
<a name="ipa-iam-rolepolicy-BuildRoleCloudFormation"></a>

對於 CodeCatalyst 工作流程建置動作，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 支援使用 建置 資源 CloudFormation。這是 Amazon S3 存取的 CodeCatalyst 建置角色和 CodeCatalyst 部署角色的必要項目 CloudFormation。

下列 AWS 受管政策應連接至此角色：
+ **AWSCloudFormationFullAccess**
+ **IAMFullAccess**
+ **AmazonS3FullAccess**
+ **AmazonAPIGatewayAdministrator**
+ **AWSLambdaFullAccess**

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

對於執行 CDK 組建動作的 CodeCatalyst 工作流程，例如現代三層 Web 應用程式，您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 為 中的 CloudFormation 資源引導和執行 CDK 建置命令所需範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 寫入 Amazon S3 儲存貯體。
+ 支援建置 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 叫用 Λ 函數，透過 執行藍/綠部署 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": "*"
```

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

CodeCatalyst 工作流程部署動作使用具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Amazon EC2 資源上執行任務所需的範圍許可的政策 AWS 帳戶。**CodeCatalystWorkflowDevelopmentRole-*spaceName*** 角色的預設政策不包含 Amazon EC2 或 Amazon EC2 Auto Scaling 的許可。

此角色提供執行下列動作的許可：
+ 建立 Amazon EC2 部署。
+ 讀取執行個體上的標籤，或依 Auto Scaling 群組名稱識別 Amazon EC2 執行個體。
+ 讀取、建立、更新和刪除 Amazon EC2 Auto Scaling 群組、生命週期關聯和擴展政策。
+ 將資訊發佈至 Amazon SNS 主題。
+ 擷取 CloudWatch 警示的相關資訊。
+ 讀取和更新 Elastic Load Balancing。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

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

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，也可以為 CodeCatalyst 部署動作建立 IAM 角色，以用於 Lambda 部署。此角色使用具有 CodeCatalyst 在 Amazon ECS 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 在 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": "*"
```

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

 對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。您可以使用預設**CodeCatalystWorkflowDevelopmentRole-*spaceName***服務角色，或為 CodeCatalyst 部署動作建立 IAM 角色，以用於 Lambda 部署。此角色使用具有 CodeCatalyst 在 Lambda 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 讀取、更新和叫用 Lambda 函數和別名。
+ 存取 Amazon S3 儲存貯體中的修訂檔案。
+ 擷取 CloudWatch Events 警示的相關資訊。
+ 將資訊發佈至 Amazon SNS 主題。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Lambda 的 CodeCatalyst 部署角色
<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 SAM 和 CloudFormation 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 允許 CodeCatalyst 調用 Lambda 函數來執行無伺服器和 AWS SAM CLI 應用程式的部署。
+ 允許 CodeCatalyst 在其中建立和更新堆疊和變更集 CloudFormation。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

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

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Amazon EC2 資源上執行任務所需的範圍許可的政策 AWS 帳戶。**CodeCatalystWorkflowDevelopmentRole-*spaceName*** 服務角色不包含 Amazon EC2 的許可或 Amazon CloudWatch 的描述動作。

此角色提供執行下列動作的許可：
+ 取得 Amazon EC2 執行個體的狀態。
+ 取得 Amazon EC2 執行個體的 CloudWatch 指標。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

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

對於 CodeCatalyst 工作流程動作，您可以建立具有必要許可的 IAM 角色。此角色使用具有 CodeCatalyst 在 Amazon ECS 資源上執行任務所需的範圍許可的政策 AWS 帳戶。

此角色提供執行下列動作的許可：
+ 讀取 Amazon ECS 任務集。
+ 擷取 CloudWatch 警示的相關資訊。

此角色使用以下政策：

**注意**  
第一次使用該角色執行工作流程動作時，請在資源政策陳述式中使用萬用字元，然後在資源名稱可用後縮小政策範圍。  

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

### Lambda 的 CodeCatalyst 唯讀角色
<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. 選擇 **Create policy** (建立政策)。

   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. 選擇 **Create policy** (建立政策)。

   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 範本，為 AWS 帳戶 CodeCatalyst 專案和工作流程在 中建立存取資源所需的政策和角色。 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>

CodeCatalyst SAM 藍圖使用您建立的 IAM 角色，稱為 ** CloudFormation 的建置角色**和 **SAM 的部署角色**。

請依照下列步驟，在 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。