

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

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

# 使用 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。