管理 CodePipeline 服务角色
CodePipeline 服务角色配置有一个或多个策略,以控制对管道使用的 Amazon 资源的访问。您可能希望向此角色附加其他策略,编辑附加到该角色的策略,或为 Amazon 中的其他服务角色配置策略。在配置对管道的跨账户访问时,您可能还需要将策略附加到角色。
重要
修改策略语句或向角色附加其他策略可能会导致您的管道无法运行。在您以任何方式修改 CodePipeline 的服务角色之前,请务必了解其影响。对服务角色进行任何更改后,确保测试管道。
注意
在控制台中,使用名称 oneClick_AWS-CodePipeline-Service_ 创建 2018 年 9 月之前创建的服务角色。ID-Number
2018 年 9 月之后创建的服务角色使用服务角色名称格式 AWSCodePipelineServiceRole-。例如,对于 Region-Pipeline_Nameeu-west-2 区域中名为 MyFirstPipeline 的管道,控制台会将角色和策略命名为 AWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline。
CodePipeline 服务角色策略
CodePipeline 服务角色策略语句包含管理管道的最低权限。您可以编辑服务角色语句以删除或添加对不使用的资源的访问权限。有关 CodePipeline 为每个操作使用的最低必需权限,请参阅相应的操作参考。
注意
在该策略中,当您的源存储桶中的 S3 对象中包含标签时,需要以下权限:
s3:PutObjectTagging s3:GetObjectTagging s3:GetObjectVersionTagging
从 CodePipeline 服务角色中移除权限
您可以编辑服务角色语句以删除对不使用的资源的访问权限。例如,如果您的所有管道均不包括 Elastic Beanstalk,您可以编辑策略语句以移除授权访问 Elastic Beanstalk 资源的部分。
类似地,如果您的所有管道均不包括 CodeDeploy,您可以编辑策略语句以移除授权访问 CodeDeploy 资源的部分:
{ "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetApplicationRevision", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:RegisterApplicationRevision" ], "Resource": "*", "Effect": "Allow" },
向 CodePipeline 服务角色添加权限
您必须使用尚未包含在默认服务角色策略语句中的 Amazon Web Services 服务 的权限更新服务角色策略语句,然后才能在管道中使用它。
如果要用于管道的服务角色是在向 CodePipeline 中添加对Amazon Web Services 服务的支持之前创建的,则这一点尤为重要。
下表显示了添加对其他 Amazon Web Services 服务 的支持的时间。
| Amazon Web Services 服务 | CodePipeline 支持日期 |
|---|---|
| 添加了 CodePipeline 调用操作支持。请参阅CodePipeline 调用操作的服务角色策略权限。 | 2025 年 3 月 14 日 |
添加了 EC2 操作支持。请参阅EC2 部署操作的服务角色策略权限。 |
2025 年 2 月 21 日 |
添加了 EKS 操作支持。请参阅服务角色策略权限。 |
2025 年 2 月 20 日 |
添加了 Amazon Elastic Container Registry ECRBuildAndPublish 操作支持。请参阅服务角色权限:ECRBuildAndPublish 操作。 |
2024 年 11 月 22 日 |
添加了 Amazon Inspector InspectorScan 操作支持。请参阅服务角色权限:InspectorScan 操作。 |
2024 年 11 月 22 日 |
| 添加了 Commands 操作支持。请参阅服务角色权限:Commands 操作。 | 2024 年 10 月 3 日 |
| 添加了 Amazon CloudFormation 操作支持。请参阅 服务角色权限:CloudFormationStackSet 操作和服务角色权限:CloudFormationStackInstances 操作。 | 2020 年 12 月 30 日 |
| 添加了 CodeCommit 完整克隆输出构件格式操作支持。请参阅服务角色权限:CodeCommit 操作。 | 2020 年 11 月 11 日 |
| 添加了 CodeBuild 批量构建操作支持。请参阅服务角色权限:CodeCommit 操作。 | 2020 年 7 月 30 日 |
| 添加了 Amazon AppConfig 操作支持。请参阅服务角色权限:AppConfig 操作。 | 2020 年 6 月 22 日 |
| 添加了 Amazon Step Functions 操作支持。请参阅服务角色权限:StepFunctions 操作。 | 2020 年 5 月 27 日 |
| 添加了 AWS CodeStar Connections 操作支持。请参阅服务角色权限:CodeConnections 操作。 | 2019 年 12 月 18 日 |
| 添加了 S3 部署操作支持。请参阅服务角色权限:S3 部署操作。 | 2019 年 1 月 16 日 |
添加了 CodeDeployToECS 操作支持。请参阅服务角色权限:CodeDeployToECS 操作。 |
2018 年 11 月 27 日 |
| 添加了 Amazon ECR 操作支持。请参阅服务角色权限:Amazon ECR 操作。 | 2018 年 11 月 27 日 |
| 添加了 Service Catalog 操作支持。请参阅服务角色权限:Service Catalog 操作。 | 2018 年 10 月 16 日 |
| 添加了 Amazon Device Farm 操作支持。请参阅服务角色权限:Amazon Device Farm 操作。 | 2018 年 7 月 19 日 |
| 添加了 Amazon ECS 操作支持。请参阅服务角色权限:Amazon ECS 标准操作。 | 2017 年 12 月 12 日/2017 年 7 月 21 日更新了选择加入标记授权的选项 |
| 添加了 CodeCommit 操作支持。请参阅服务角色权限:CodeCommit 操作。 | 2016 年 4 月 18 日 |
| 添加了 Amazon OpsWorks 操作支持。请参阅服务角色权限:Amazon OpsWorks 操作。 | 2016 年 6 月 2 日 |
| 添加了 Amazon CloudFormation 操作支持。请参阅服务角色权限:Amazon CloudFormation 操作。 | 2016 年 11 月 3 日 |
| 添加了 Amazon CodeBuild 操作支持。请参阅服务角色权限:CodeBuild 操作。 | 2016 年 12 月 1 日 |
| 添加了 Elastic Beanstalk 操作支持。请参阅服务角色权限:ElasticBeanstalk 部署操作。 | 首次服务发布 |
| 添加了 CodeDeploy 操作支持。请参阅服务角色权限:Amazon CodeDeploy 操作。 | 首次服务发布 |
| 添加了 S3 源操作支持。请参阅服务角色权限:S3 源操作。 | 首次服务发布 |
请按照以下步骤添加受支持服务的权限:
-
登录 Amazon Web Services 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。
-
在 IAM 角色控制台的导航窗格中,选择角色,然后从角色列表中选择您的
AWS-CodePipeline-Service角色。 -
在权限选项卡上的内联策略中,选择您的服务角色策略所在行中的编辑策略。
-
在策略文档框中添加所需权限。
注意
在您创建 IAM 策略时,请遵循授予最低权限这一标准安全建议,即仅授予执行任务所需的权限。某些 API 调用支持基于资源的权限并允许限制访问。例如,在这种情况下,要在调用
DescribeTasks和ListTasks时限制权限,您可以将通配符(*)替换为资源 ARN 或包含通配符(*)的资源 ARN。有关创建策略以授予最低权限访问权限的更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html#grant-least-privilege。 -
选择查看策略以确保策略不包含错误。当策略正确无误时,选择应用策略。