AWS 的托管策略 AWS CodePipeline - AWS CodePipeline

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

AWS 的托管策略 AWS CodePipeline

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

请记住, AWS 托管策略可能不会为您的特定用例授予最低权限权限,因为它们可供所有 AWS 客户使用。我们建议通过定义特定于您的使用场景的客户托管式策略来进一步减少权限。

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

有关更多信息,请参阅《IAM用户指南》中的AWS 托管策略

重要

AWS托管策略AWSCodePipelineFullAccessAWSCodePipelineReadOnlyAccess已被替换。使用 AWSCodePipeline_FullAccessAWSCodePipeline_ReadOnlyAccess 策略。

AWS 托管策略:AWSCodePipeline_FullAccess

这是一项授予完全访问权限的政策 CodePipeline。要在IAM控制台中查看JSON策略文档,请参阅 AWSCodePipeline_ FullAccess

权限详细信息

该策略包含以下权限。

  • codepipeline— 向授予权限 CodePipeline。

  • chatbot— 授予权限以允许委托人管理中的资源。 AWS Chatbot

  • cloudformation— 授予权限以允许委托人管理中的资源堆栈。 AWS CloudFormation

  • cloudtrail— 授予权限以允许委托人管理中的日志资源。 CloudTrail

  • codebuild— 授予权限以允许委托人访问中的生成资源。 CodeBuild

  • codecommit— 授予权限以允许委托人访问中的源资源。 CodeCommit

  • codedeploy— 授予权限以允许委托人访问中的部署资源。 CodeDeploy

  • codestar-notifications— 授予权限以允许委托人访问 AWS CodeStar 通知中的资源。

  • ec2— 授予权限以允许在中进行部署 CodeCatalyst 以管理 Amazon 中的弹性负载平衡EC2。

  • ecr— 授予权限以允许访问 Amazon 中的资源ECR。

  • elasticbeanstalk:授予权限以允许主体访问 Elastic Beanstalk 中的资源。

  • iam— 授予权限以允许委托人管理中的角色和策略。IAM

  • lambda:授予权限以允许主体管理 Lambda 中的资源。

  • events— 授予权限以允许委托人管理 Ev CloudWatch ents 中的资源。

  • opsworks— 授予权限以允许委托人管理中的资源。 AWS OpsWorks

  • s3:授予权限以允许主体管理 Amazon S3 中的资源。

  • sns— 授予权限以允许委托人管理 Amazon SNS 中的通知资源。

  • states— 授予权限以允许委托人查看中的状态机。 AWS Step Functions状态机由一组状态组成,这些状态用于管理任务和状态之间的转换。

{ "Statement": [ { "Action": [ "codepipeline:*", "cloudformation:DescribeStacks", "cloudformation:ListStacks", "cloudformation:ListChangeSets", "cloudtrail:DescribeTrails", "codebuild:BatchGetProjects", "codebuild:CreateProject", "codebuild:ListCuratedEnvironmentImages", "codebuild:ListProjects", "codecommit:ListBranches", "codecommit:GetReferences", "codecommit:ListRepositories", "codedeploy:BatchGetDeploymentGroups", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ecr:DescribeRepositories", "ecr:ListImages", "ecs:ListClusters", "ecs:ListServices", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "iam:ListRoles", "iam:GetRole", "lambda:ListFunctions", "events:ListRules", "events:ListTargetsByRule", "events:DescribeRule", "opsworks:DescribeApps", "opsworks:DescribeLayers", "opsworks:DescribeStacks", "s3:ListAllMyBuckets", "sns:ListTopics", "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes", "states:ListStateMachines" ], "Effect": "Allow", "Resource": "*", "Sid": "CodePipelineAuthoringAccess" }, { "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketPolicy", "s3:GetBucketVersioning", "s3:GetObjectVersion", "s3:CreateBucket", "s3:PutBucketPolicy" ], "Effect": "Allow", "Resource": "arn:aws:s3::*:codepipeline-*", "Sid": "CodePipelineArtifactsReadWriteAccess" }, { "Action": [ "cloudtrail:PutEventSelectors", "cloudtrail:CreateTrail", "cloudtrail:GetEventSelectors", "cloudtrail:StartLogging" ], "Effect": "Allow", "Resource": "arn:aws:cloudtrail:*:*:trail/codepipeline-source-trail", "Sid": "CodePipelineSourceTrailReadWriteAccess" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/service-role/cwe-role-*" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "events.amazonaws.com" ] } }, "Sid": "EventsIAMPassRole" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "codepipeline.amazonaws.com" ] } }, "Sid": "CodePipelineIAMPassRole" }, { "Action": [ "events:PutRule", "events:PutTargets", "events:DeleteRule", "events:DisableRule", "events:RemoveTargets" ], "Effect": "Allow", "Resource": [ "arn:aws:events:*:*:rule/codepipeline-*" ], "Sid": "CodePipelineEventsReadWriteAccess" }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*" } } }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ], "Version": "2012-10-17" }

AWS 托管策略: AWSCodePipeline_ReadOnlyAccess

这是一项授予只读访问权限的策略 CodePipeline。要在IAM控制台中查看JSON策略文档,请参阅 AWSCodePipeline_ ReadOnlyAccess

权限详细信息

该策略包含以下权限。

  • codepipeline— 授予中操作的权限 CodePipeline。

  • codestar-notifications— 授予权限以允许委托人访问 AWS CodeStar 通知中的资源。

  • s3:授予权限以允许主体管理 Amazon S3 中的资源。

  • sns— 授予权限以允许委托人管理 Amazon SNS 中的通知资源。

{ "Statement": [ { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "s3:ListAllMyBuckets", "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketPolicy" ], "Effect": "Allow", "Resource": "arn:aws:s3::*:codepipeline-*" }, { "Sid": "CodeStarNotificationsReadOnlyAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*" } } } ], "Version": "2012-10-17" }

AWS 托管策略:AWSCodePipelineApproverAccess

这是一项授予批准或拒绝手动审批操作的权限的策略。要在IAM控制台中查看JSON策略文档,请参阅 AWSCodePipelineApproverAccess...

权限详细信息

该策略包含以下权限。

  • codepipeline— 授予中操作的权限 CodePipeline。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListPipelines", "codepipeline:PutApprovalResult" ], "Effect": "Allow", "Resource": "*" } ] }

AWS 托管策略: AWSCodePipelineCustomActionAccess

此政策允许用户在生成或测试操作中创建自定义操作 CodePipeline或集成 Jenkins 资源。要在IAM控制台中查看JSON策略文档,请参阅AWSCodePipelineCustomActionAccess

权限详细信息

该策略包含以下权限。

  • codepipeline— 授予中操作的权限 CodePipeline。

{ "Statement": [ { "Action": [ "codepipeline:AcknowledgeJob", "codepipeline:GetJobDetails", "codepipeline:PollForJobs", "codepipeline:PutJobFailureResult", "codepipeline:PutJobSuccessResult" ], "Effect": "Allow", "Resource": "*" } ], "Version": "2012-10-17" }

CodePipeline 托管策略和通知

CodePipeline 支持通知,可以将管道的重要更改通知用户。的托管策略 CodePipeline 包括通知功能的策略声明。有关更多信息,请参阅什么是通知?

完全访问托管策略中的通知的相关权限

此托管策略授予相关服务 CodeCommit、 CodeBuild CodeDeploy、和 AWS CodeStar 通知的权限。 CodePipeline 该策略还授予您使用与您的管道集成的其他服务所需的权限,例如 Amazon S3、Elastic Beanst CloudTrail alk、EC2 Amazon 和。 AWS CloudFormation应用了此托管策略的用户还可以创建和管理通知的 Amazon SNS 主题、为用户订阅和取消订阅主题、列出要选择作为通知规则目标的主题,以及列出为 Slack 配置的 AWS Chatbot 客户端。

AWSCodePipeline_FullAccess 托管策略包含以下语句,以允许对通知进行完全访问。

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

只读托管策略中的通知的相关权限

AWSCodePipeline_ReadOnlyAccess 托管策略包含以下语句,以允许对通知进行只读访问。应用此策略的用户可以查看资源的通知,但无法创建、管理或订阅这些通知。

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

有关IAM通知的更多信息,请参阅通知的 Ident ity and Acces AWS CodeStar s 管理

AWS CodePipelineAWS 托管策略的更新

查看 CodePipeline 自该服务开始跟踪这些更改以来 AWS 托管策略更新的详细信息。要获得有关此页面变更的自动提醒,请订阅 “ CodePipeline 文档历史记录” 页面上的订阅RSS源。

更改 描述 日期
AWSCodePipeline_ FullAccess — 现有政策的更新 CodePipeline 已向此策略添加了支持ListStacks权限 AWS CloudFormation。 2024 年 3 月 15 日
AWSCodePipeline_ FullAccess — 现有政策的更新 此政策已更新,添加了的权限 AWS Chatbot。有关更多信息,请参阅 CodePipeline 托管策略和通知 2023 年 6 月 21 日

AWSCodePipeline_ FullAccessAWSCodePipeline_ ReadOnlyAccess 托管策略-现有策略的更新

CodePipeline 使用 AWS Chatbot、向这些策略添加了支持其他通知类型的权限chatbot:ListMicrosoftTeamsChannelConfigurations

2023 年 5 月 16 日

AWSCodePipelineFullAccess— 已弃用

此策略已被 AWSCodePipeline_FullAccess 取代。

2022 年 11 月 17 日之后,该策略不能附加到任何新的用户、组或角色。有关更多信息,请参阅 AWS 的托管策略 AWS CodePipeline

2022 年 11 月 17 日

AWSCodePipelineReadOnlyAccess— 已弃用

此策略已被 AWSCodePipeline_ReadOnlyAccess 取代。

2022 年 11 月 17 日之后,该策略不能附加到任何新的用户、组或角色。有关更多信息,请参阅 AWS 的托管策略 AWS CodePipeline

2022 年 11 月 17 日

CodePipeline 已开始跟踪更改

CodePipeline 开始跟踪其 AWS 托管策略的更改。

2021 年 3 月 12 日