針對 使用身分型政策 AWS CodeBuild - AWS CodeBuild

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

針對 使用身分型政策 AWS CodeBuild

本主題提供以身分為基礎的政策範例,示範帳戶管理員如何將許可政策連接至身分 IAM (即使用者、群組和角色),藉此授予許可以對 AWS CodeBuild 資源執行操作。

重要

建議您先檢閱介紹主題,這些主題說明可用於管理 CodeBuild 資源存取的基本概念和選項。如需詳細資訊,請參閱管理 AWS CodeBuild 資源的存取許可概觀

以下顯示的許可政策範例,可讓使用者取得組建專案的相關資訊,僅針對 us-east-2 區域的帳戶 123456789012 中名稱開頭為 my 的組建專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

使用 AWS CodeBuild 主控台所需的許可

使用 AWS CodeBuild 主控台的使用者必須具有一組最低許可,允許使用者描述 AWS 帳戶的其他 AWS 資源。您必須具備下列服務的許可:

  • AWS CodeBuild

  • Amazon CloudWatch

  • CodeCommit (如果您將原始程式碼儲存在儲存庫中 AWS CodeCommit )

  • Amazon Elastic Container Registry (Amazon ECR) (如果您使用的建置環境依賴 Amazon ECR儲存庫中的 Docker 映像)

    注意

    截至 2022 年 7 月 26 日,預設IAM政策已更新。如需詳細資訊,請參閱AWS CodeBuild 連線至 Amazon Elastic Container Registry 所需的許可

  • Amazon Elastic Container Service (Amazon ECS) (如果您使用的建置環境依賴 Amazon ECR儲存庫中的 Docker 映像)

  • AWS Identity and Access Management (IAM)

  • AWS Key Management Service (AWS KMS)

  • Amazon Simple Storage Service (Amazon S3)

如果您建立IAM的政策比所需的最低許可更嚴格,則主控台將無法如預期般運作。

AWS CodeBuild 連線至 Amazon Elastic Container Registry 所需的許可

截至 2022 年 7 月 26 日, AWS CodeBuild 已更新其 Amazon ECR許可的預設IAM政策。下列許可已從預設政策中移除:

"ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload"

對於在 2022 年 7 月 26 日之前建立的 CodeBuild 專案,我們建議您使用下列 Amazon 政策更新您的ECR政策:

"Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ]

如需更新政策的詳細資訊,請參閱 允許使用者與 互動 CodeBuild

AWS CodeBuild 主控台連線至來源提供者所需的許可

AWS CodeBuild 主控台會使用下列API動作來連線至來源提供者 (例如 GitHub 儲存庫)。

  • codebuild:ListConnectedOAuthAccounts

  • codebuild:ListRepositories

  • codebuild:PersistOAuthToken

  • codebuild:ImportSourceCredentials

您可以使用 AWS CodeBuild 主控台將來源提供者 (例如 GitHub 儲存庫) 與建置專案建立關聯。若要這麼做,您必須先新增上述API動作,才能IAM存取與您用來存取 AWS CodeBuild 主控台的使用者相關聯的政策。

ListConnectedOAuthAccountsListRepositoriesPersistOAuthTokenAPI動作不適用於由您的程式碼呼叫。因此,這些API動作不包含在 AWS CLI 和 AWS 中SDKs。

AWS 的受管 (預先定義) 政策 AWS CodeBuild

AWS 透過提供由 建立和管理的獨立IAM政策來解決許多常見的使用案例 AWS。這些 AWS 受管政策授予常見使用案例的必要許可,因此您可以避免調查需要哪些許可。的受管政策 CodeBuild 也提供在其他 服務中執行操作的許可,例如 IAM、 AWS CodeCommit、Amazon EC2、Amazon SNS、ECRAmazon 和 Amazon CloudWatch Events,這是已授予相關政策之使用者的責任所需。例如,AWSCodeBuildAdminAccess政策是一種管理層級使用者政策,可讓使用者使用此政策建立和管理 CloudWatch專案建置的事件規則,以及 Amazon SNS主題的專案相關事件通知 (名稱以 開頭的主題arn:aws:codebuild:),以及在 中管理專案和報告群組 CodeBuild。如需詳細資訊,請參閱 IAM 使用者指南 中的 AWS 受管政策

下列 AWS 受管政策,您可以連接到帳戶中的使用者,其專屬於 AWS CodeBuild。

AWSCodeBuildAdminAccess

提供 的完整存取權, CodeBuild 包括管理 CodeBuild 建置專案的許可。

AWSCodeBuildDeveloperAccess

提供 的存取權 CodeBuild ,但不允許建置專案管理。

AWSCodeBuildReadOnlyAccess

提供 的唯讀存取權 CodeBuild。

若要存取 CodeBuild 建立的建置輸出成品,您還必須連接名為 的 AWS 受管政策AmazonS3ReadOnlyAccess

若要建立和管理 CodeBuild 服務角色,您還必須連接名為 的 AWS 受管政策IAMFullAccess

您也可以建立自己的自訂IAM政策,以允許動作和資源的 CodeBuild許可。您可以將這些自訂政策連接至需要這些許可的使用者或群組。

AWSCodeBuildAdminAccess

AWSCodeBuildAdminAccess政策提供 的完整存取權 CodeBuild,包括管理 CodeBuild 建置專案的許可。僅將此政策套用至管理層級使用者,以授予他們對 AWS 帳戶中 CodeBuild 專案、報告群組和相關資源的完整控制權,包括刪除專案和報告群組的能力。

AWSCodeBuildAdminAccess 政策包含以下政策陳述式:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSServicesAccess", "Action": [ "codebuild:*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cloudwatch:GetMetricStatistics", "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecr:DescribeRepositories", "ecr:ListImages", "elasticfilesystem:DescribeFileSystems", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CWLDeleteLogGroupAccess", "Action": [ "logs:DeleteLogGroup" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*" }, { "Sid": "SSMParameterWriteAccess", "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "SSMStartSessionAccess", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:UpdateConnectionInstallation", "codestar-connections:TagResource", "codestar-connections:UntagResource", "codestar-connections:ListConnections", "codestar-connections:ListInstallationTargets", "codestar-connections:ListTagsForResource", "codestar-connections:GetConnection", "codestar-connections:GetIndividualAccessToken", "codestar-connections:GetInstallationUrl", "codestar-connections:PassConnection", "codestar-connections:StartOAuthHandshake", "codestar-connections:UseConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] }, { "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:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ] }

AWSCodeBuildDeveloperAccess

AWSCodeBuildDeveloperAccess政策允許存取 和專案 CodeBuild 的所有功能,以及報告群組相關資源。此政策不允許使用者刪除 CodeBuild 專案或報告群組,或其他 AWS 服務中的相關資源,例如 CloudWatch 事件。建議將此政策套用到大多數使用者。

AWSCodeBuildDeveloperAccess 政策包含以下政策陳述式:

{ "Statement": [ { "Sid": "AWSServicesAccess", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "codebuild:RetryBuild", "codebuild:RetryBuildBatch", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SSMParameterWriteAccess", "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "SSMStartSessionAccess", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ], "Version": "2012-10-17" }

AWSCodeBuildReadOnlyAccess

AWSCodeBuildReadOnlyAccess政策會授予其他服務中 CodeBuild 和 相關資源的唯讀存取權 AWS 。將此政策套用至可檢視和執行組建、檢視專案,以及檢視報告群組,但無法對其進行任何變更的使用者。

AWSCodeBuildReadOnlyAccess 政策包含以下政策陳述式:

{ "Statement": [ { "Sid": "AWSServicesAccess", "Action": [ "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:List*", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] }, { "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" } ], "Version": "2012-10-17" }

CodeBuild 受管政策和通知

CodeBuild 支援通知,可通知使用者建置專案的重要變更。的受管政策 CodeBuild 包含通知功能的政策陳述式。如需詳細資訊,請參閱什麼是通知?

完整存取受管政策中的通知相關許可

AWSCodeBuildFullAccess 受管政策包含下列陳述式,允許對通知的完整存取權限。套用此 受管政策的使用者也可以建立和管理 Amazon SNS主題,以接收通知、訂閱和取消訂閱使用者、列出要選擇作為通知規則目標的主題,以及列出 AWS Chatbot 為 Slack 設定的用戶端。

{ "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:codebuild:*"} } }, { "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": "*" }

唯讀受管政策中的通知相關許可

AWSCodeBuildReadOnlyAccess 受管政策包含下列陳述式,允許對通知的唯讀存取權限。適用此受管政策的使用者可以檢視資源的通知,但無法建立、管理或訂閱通知。

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

其他受管政策中的通知相關許可

AWSCodeBuildDeveloperAccess 受管政策包含下列陳述式,允許使用者建立、編輯和訂閱通知。使用者無法刪除通知規則或管理資源的標籤。

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

如需 IAM和 通知的詳細資訊,請參閱 Identity and Access Management for AWS CodeStar 通知

CodeBuild 受 AWS 管政策的更新

檢視自此服務開始追蹤這些變更 CodeBuild 以來, 受 AWS 管政策更新的詳細資訊。如需此頁面變更的自動提醒,請訂閱 上的RSS摘要AWS CodeBuild 使用者指南文件歷史記錄

變更 描述 日期

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccessAWSCodeBuildReadOnlyAccess – 更新至現有政策

CodeBuild 已將資源新增至這些政策,以支援 AWS CodeConnections 更名。

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccessAWSCodeBuildReadOnlyAccess政策已變更為新增資源 arn:aws:codeconnections:*:*:connection/*

2024 年 4 月 18 日

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess – 更新現有政策

CodeBuild 新增了這些政策的許可,以支援使用 的其他通知類型 AWS Chatbot。

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess政策已變更為新增許可 chatbot:ListMicrosoftTeamsChannelConfigurations

2023 年 5 月 16 日

CodeBuild 開始追蹤變更

CodeBuild 已開始追蹤其 AWS 受管政策的變更。

2021 年 5 月 16 日

客戶受管政策範例

在本節中,您可以找到授予 AWS CodeBuild 動作許可的使用者政策範例。當您使用 CodeBuild API、 或 時 AWS SDKs,這些政策會運作 AWS CLI。當您使用主控台時,您必須授予其他主控台特定的許可。如需相關資訊,請參閱 使用 AWS CodeBuild 主控台所需的許可

您可以使用下列範例IAM政策來限制使用者和角色的 CodeBuild 存取。

允許使用者取得建置專案的相關資訊

以下顯示的政策陳述式範例,會允許使用者取得組建專案的相關資訊,針對 us-east-2 區域的帳戶 123456789012 中名稱開頭為 my 的組建專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

允許使用者取得機群的相關資訊

下列範例政策陳述式允許使用者取得帳戶 us-east-2區域中機群的相關資訊123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetFleets", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

允許使用者取得報告群組的相關資訊

以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012us-east-2 區域的相關報告群組資訊:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReportGroups", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者取得報告的相關資訊

以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012us-east-2 區域的相關報告資訊:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReports", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者建立建置專案

下列範例政策陳述式允許使用者建立任何名稱的建置專案,但只能在 us-east-2 區域中用於帳戶123456789012,且只能使用指定的 CodeBuild 服務角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole" } ] }

下列範例政策陳述式允許使用者建立任何名稱的建置專案,但只能在 us-east-2 區域中用於帳戶123456789012,且只能使用指定的 CodeBuild 服務角色。它還強制使用者只能將指定的服務角色與任何其他 服務搭配使用 AWS CodeBuild ,而不是任何其他 AWS 服務。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole", "Condition": { "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"} } } ] }}

允許使用者建立機群

下列範例政策陳述式允許使用者在 us-east-2 區域中為帳戶 建立機群123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

允許使用者建立報告群組

以下顯示的政策陳述式範例,會允許使用者建立帳戶 123456789012us-east-2 區域中的報告群組:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者刪除機群

下列範例政策陳述式允許使用者刪除 us-east-2 區域中帳戶 的機群123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

允許使用者刪除報告群組

以下顯示的政策陳述式範例,會允許使用者刪除帳戶 123456789012us-east-2 區域中的報告群組:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者刪除報告

以下顯示的政策陳述式範例,會允許使用者刪除帳戶 123456789012us-east-2 區域中的報告:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReport", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者刪除建置專案

以下顯示的政策陳述式範例,會允許使用者刪除組建專案,針對 us-east-2 區域的帳戶 123456789012 中名稱開頭為 my 的組建專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

允許使用者取得建置專案名稱的清單

下列政策陳述式的範例,會允許使用者取得相同帳戶之組建專案名稱的清單:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListProjects", "Resource": "*" } ] }

允許使用者變更建置專案的相關資訊

以下顯示的政策陳述式範例,會允許使用者變更使用任何名稱組建專案的相關資訊,但只能針對 us-east-2 區域中的帳戶 123456789012,並只能使用指定的 AWS CodeBuild 服務角色:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole" } ] }

允許使用者變更機群

下列範例政策陳述式允許使用者變更帳戶 us-east-2區域中的機群123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

允許使用者變更報告群組

以下顯示的政策陳述式範例,會允許使用者變更帳戶 123456789012us-east-2 區域中的報告群組:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者取得建置的相關資訊

以下顯示的政策陳述式範例,會允許使用者取得組建的相關資訊,針對 us-east-2 區域的帳戶 123456789012 中名稱為 my-build-projectmy-other-build-project 的組建專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetBuilds", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ] }

允許使用者取得建置專案的IDs建置清單

下列範例政策陳述式可讓使用者取得IDsus-east-2區域中的建置清單,以用於名為 my-build-project123456789012的建置專案my-other-build-project

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuildsForProject", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ] }

允許使用者取得建置清單 IDs

下列範例政策陳述式允許使用者取得IDs相同帳戶的所有建置清單:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuilds", "Resource": "*" } ] }

允許使用者取得機群清單

下列範例政策陳述式可讓使用者取得帳戶 us-east-2區域中機群的清單123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListFleets", "Resource": "*" } ] }

允許使用者取得報告群組的清單

以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012us-east-2 區域的報告群組清單:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportGroups", "Resource": "*" } ] }

允許使用者取得報告的清單

以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012us-east-2 區域的報告清單:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReports", "Resource": "*" } ] }

允許使用者取得報告群組的報告清單

以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012us-east-2 區域中報告群組的報告清單:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportsForReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者取得報告的測試案例清單

以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012us-east-2 區域中報告的測試案例清單:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DescribeTestCases", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

允許使用者開始執行建置

以下顯示的政策陳述式範例,會允許使用者執行組建,針對 us-east-2 區域的帳戶 123456789012 中名稱開頭為 my 的組建專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StartBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

允許使用者嘗試停止建置

以下顯示的政策陳述式範例,會允許使用者嘗試停止執行中的組建,僅針對 us-east-2 區域的帳戶 123456789012 中名稱開頭為 my 的組建專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StopBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

允許使用者嘗試刪除建置

以下顯示的政策陳述式範例,會允許使用者嘗試刪除建置,僅針對 us-east-2 區域的帳戶 123456789012 中名稱開頭為 my 的建置專案:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchDeleteBuilds", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

允許使用者取得由 管理之 Docker 映像的相關資訊 CodeBuild

下列範例政策陳述式允許使用者取得由 管理的所有 Docker 映像的相關資訊 CodeBuild:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListCuratedEnvironmentImages", "Resource": "*" } ] }

允許使用者新增機群服務角色的許可政策

下列範例資源政策陳述式允許使用者新增機群服務角色的VPC許可政策:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVpcCreateNI", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:security-group/security-group-id-1", "arn:aws:ec2:region:account-id:network-interface/*" ] }, { "Sid": "CodeBuildFleetVpcPermission", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Sid": "CodeBuildFleetVpcNIPermission", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1" ] } } } ] }

下列範例資源政策陳述式允許使用者為機群服務角色新增自訂 Amazon Managed Image (AMI) 許可政策:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeImages", "Resource": "*" } ] }

下列信任政策陳述式範例允許使用者新增機群服務角色的許可政策:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVPCTrustPolicy", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

允許 CodeBuild 存取建立VPC網路介面所需的 AWS 服務

下列範例政策陳述式授予 AWS CodeBuild 許可,以在VPC具有兩個子網路的 中建立網路介面:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" }, "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:subnet/subnet-id-2" ] } } } ] }

使用拒絕陳述式以防止中斷與來源提供者 AWS CodeBuild 的連線

以下範例政策陳述式會使用拒絕陳述式,以防止 AWS CodeBuild 中斷與來源提供者的連接。它使用 codebuild:DeleteOAuthToken (與 codebuild:PersistOAuthTokencodebuild:ImportSourceCredentials 相反) 與來源供應商連接。如需詳細資訊,請參閱AWS CodeBuild 主控台連線至來源提供者所需的許可

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ] }