

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

# 管理 CodePipeline 服務角色
<a name="how-to-custom-role"></a>

服務角色是使用一或多個政策來設定，以控制對管道所用 AWS 資源的存取。您可能想要將更多政策連接至此角色、編輯連接至角色的政策，或為其他 服務角色設定政策 AWS。在設定跨帳戶存取您的管道時，您可能也會想要將政策連接到角色。

**重要**  
修改政策說明或將其他政策連接到角色，可能會導致您的管道停止運作。請在以任何方式修改 的服務角色前務必確認您了解其含意。對服務角色進行任何變更之後，務必測試您的管道。

**注意**  
在主控台，在 2018 年 9 月之前建立的服務角色是以名稱 `oneClick_AWS-CodePipeline-Service_ID-Number` 建立。  
2018 年 9 月之後建立的服務角色使用服務角色名稱格式 `AWSCodePipelineServiceRole-Region-Pipeline_Name`。例如，對於 `MyFirstPipeline`中名為 的管道`eu-west-2`，主控台會命名角色和政策 `AWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline`。

## CodePipeline 服務角色政策
<a name="how-to-custom-role-policy"></a>

CodePipeline 服務角色政策陳述式包含管理管道的最低許可。您可以編輯服務角色陳述式，以移除或新增對您未使用之資源的存取權。如需 CodePipeline 用於每個動作的最低必要許可，請參閱適當的動作參考。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowS3BucketAccess",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::[[pipeArtifactBucketNames]]"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "{{accountId}}"
        }
      }
    },
    {
      "Sid": "AllowS3ObjectAccess",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:PutObjectTagging",
        "s3:GetObjectTagging",
        "s3:GetObjectVersionTagging"
      ],
      "Resource": [
        "arn:aws:s3:::[[pipeArtifactBucketNames]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "{{accountId}}"
        }
      }
    }
  ]
}
```

------

**注意**  
在政策中，當來源儲存貯體中的 S3 物件具有標籤時，需要下列許可：  

```
s3:PutObjectTagging
s3:GetObjectTagging
s3:GetObjectVersionTagging
```

## 從 CodePipeline 服務角色移除許可
<a name="remove-permissions-from-policy"></a>

您可以編輯服務角色說明，移除您未使用的資源存取。例如，如果沒有任何管道包含 Elastic Beanstalk，您可以編輯政策陳述式來移除授予 Elastic Beanstalk 資源存取權的區段。

同樣地，如果沒有任何管道包含 CodeDeploy，您可以編輯政策陳述式來移除授予 CodeDeploy 資源存取權的區段：

```
    {
    "Action": [
        "codedeploy:CreateDeployment",
        "codedeploy:GetApplicationRevision",
        "codedeploy:GetDeployment",
        "codedeploy:GetDeploymentConfig",
        "codedeploy:RegisterApplicationRevision"
    ],
    "Resource": "*",
    "Effect": "Allow"
},
```

## 將許可新增至 CodePipeline 服務角色
<a name="how-to-update-role-new-services"></a>

您必須使用預設服務角色政策陳述式中 AWS 服務 未包含的 許可來更新服務角色政策陳述式，才能在管道中使用它。

如果您用於管道的服務角色是在 的支援新增至 之前建立的，這尤其重要 AWS 服務。

下表顯示何時新增其他 的支援 AWS 服務。


****  

| AWS 服務 | CodePipeline 支援日期 | 
| --- | --- | 
| 已新增 CodePipeline 調用動作支援。請參閱 [CodePipeline 調用動作的服務角色政策許可](action-reference-PipelineInvoke.md#action-reference-PipelineInvoke-permissions-action)。 | 2025 年 3 月 14 日 | 
|  EC2 新增 動作支援。請參閱 [EC2 部署動作的服務角色政策許可](action-reference-EC2Deploy.md#action-reference-EC2Deploy-permissions-action)。 | 2025 年 2 月 21 日 | 
|  EKS 新增 動作支援。請參閱 [服務角色政策許可](action-reference-EKS.md#action-reference-EKS-service-role)。 | 2025 年 2 月 20 日 | 
|  新增了 Amazon Elastic Container Registry ECRBuildAndPublish動作支援。請參閱 [服務角色許可：`ECRBuildAndPublish`動作](action-reference-ECRBuildAndPublish.md#edit-role-ECRBuildAndPublish)。 | 2024 年 11 月 22 日 | 
| 新增 Amazon Inspector InspectorScan動作支援。請參閱 [服務角色許可：`InspectorScan`動作](action-reference-InspectorScan.md#edit-role-InspectorScan)。 | 2024 年 11 月 22 日 | 
| 新增命令動作支援。請參閱 [服務角色許可：命令動作](action-reference-Commands.md#edit-role-Commands)。 | 2024 年 10 月 3 日 | 
| CloudFormation 新增 動作支援。請參閱 [服務角色許可：`CloudFormationStackSet`動作](action-reference-StackSets.md#edit-role-cfn-stackset) 和 [服務角色許可：`CloudFormationStackInstances`動作](action-reference-StackSets.md#edit-role-cfn-stackinstances)。 | 2020 年 12 月 30 日 | 
| 已新增 CodeCommit 完整複製輸出成品格式動作支援。請參閱 [服務角色許可：CodeCommit 動作](action-reference-CodeCommit.md#edit-role-codecommit)。 | 2020 年 11 月 11 日 | 
| 已新增AWS CodeBuild 批次建置動作支援。請參閱 [服務角色許可：CodeCommit 動作](action-reference-CodeCommit.md#edit-role-codecommit)。 | 2020 年 7 月 30 日 | 
| 已新增AWS AppConfig 動作支援。請參閱 [服務角色許可：`AppConfig`動作](action-reference-AppConfig.md#edit-role-appconfig)。 | 2020 年 6 月 22 日 | 
| AWS Step Functions 新增 動作支援。請參閱 [服務角色許可：`StepFunctions`動作](action-reference-StepFunctions.md#edit-role-stepfunctions)。 | 2020 年 5 月 27 日 | 
| AWS CodeStar 已新增連線動作支援。請參閱 [服務角色許可：CodeConnections 動作](action-reference-CodestarConnectionSource.md#edit-role-connections)。 | 2019 年 12 月 18 日 | 
| 新增 S3 部署動作支援。請參閱 [服務角色許可：S3 部署動作](action-reference-S3Deploy.md#edit-role-s3deploy)。 | 2019 年 1 月 16 日 | 
| 新增CodeDeployToECS動作動作支援。請參閱 [服務角色許可：`CodeDeployToECS`動作](action-reference-ECSbluegreen.md#edit-role-codedeploy-ecs)。 | 2018 年 11 月 27 日 | 
| 已新增 Amazon ECR 動作支援。請參閱 [服務角色許可：Amazon ECR 動作](action-reference-ECR.md#edit-role-ecr)。 | 2018 年 11 月 27 日 | 
| 已新增 Service Catalog 動作支援。請參閱 [服務角色許可：Service Catalog 動作](action-reference-ServiceCatalog.md#edit-role-servicecatalog)。 | 2018 年 10 月 16 日 | 
| AWS Device Farm 新增 動作支援。請參閱 [服務角色許可： AWS Device Farm 動作](action-reference-DeviceFarm.md#edit-role-devicefarm)。 | 2018 年 7 月 19 日 | 
| 已新增 Amazon ECS 動作支援。請參閱 [服務角色許可：Amazon ECS 標準動作](action-reference-ECS.md#edit-role-ecs)。 | 2017 年 12 月 12 日/2017 年 7 月 21 日更新選擇加入標記授權 | 
| 已新增 CodeCommit 動作支援。請參閱 [服務角色許可：CodeCommit 動作](action-reference-CodeCommit.md#edit-role-codecommit)。 | 2016 年 4 月 18 日 | 
| AWS OpsWorks 新增 動作支援。請參閱 [服務角色許可： AWS OpsWorks 動作](action-reference-OpsWorks.md#edit-role-opsworks)。 | 2016 年 6 月 2 日 | 
| CloudFormation 新增 動作支援。請參閱 [服務角色許可： CloudFormation 動作](action-reference-CloudFormation.md#edit-role-cloudformation)。 | 2016 年 11 月 3 日 | 
| 已新增AWS CodeBuild 動作支援。請參閱 [服務角色許可：CodeBuild 動作](action-reference-CodeBuild.md#edit-role-codebuild)。 | 2016 年 12 月 1 日 | 
| 已新增 Elastic Beanstalk 動作支援。請參閱 [服務角色許可：`ElasticBeanstalk`部署動作](action-reference-Beanstalk.md#edit-role-beanstalk)。 | 初始服務啟動 | 
| 已新增 CodeDeploy 動作支援。請參閱 [服務角色許可： AWS CodeDeploy 動作](action-reference-CodeDeploy.md#edit-role-codedeploy)。 | 初始服務啟動 | 
| 已新增 S3 來源動作支援。請參閱 [服務角色許可：S3 來源動作](action-reference-S3.md#edit-role-s3source)。 | 初始服務啟動 | 

請依照下列步驟為支援的服務新增許可：

 

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**，然後從`AWS-CodePipeline-Service`角色清單中選擇您的角色。

1. 在**許可**索引標籤的**內嵌政策**中，在您的服務角色政策的資料列中，選擇**編輯政策**。

1. 在**政策文件**方塊中新增必要的許可。
**注意**  
當您建立 IAM 政策時，請遵循授予最低權限的標準安全建議，也就是僅授予執行任務所需的許可。某些 API 呼叫支援資源型許可，並且允許限制存取。例如，在此範例中，如要限制呼叫 `DescribeTasks` 和 `ListTasks` 時的許可，您可以將萬用字元 (\$1) 取代成資源 ARN，或是使用包含萬用字元 (\$1) 的資源 ARN。如需建立授予最低權限存取權的政策的詳細資訊，請參閱 [https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

1. 選擇**檢閱政策**，確保政策沒有任何錯誤。當政策沒有錯誤時，請選擇**套用政策**。