本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 使用身分型政策 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 主控台的使用者相關聯的政策。
ListConnectedOAuthAccounts
、 ListRepositories
和 PersistOAuthToken
API動作不適用於由您的程式碼呼叫。因此,這些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 使用者指南文件歷史記錄 。
變更 | 描述 | 日期 |
---|---|---|
|
CodeBuild 已將資源新增至這些政策,以支援 AWS CodeConnections 更名。
|
2024 年 4 月 18 日 |
|
CodeBuild 新增了這些政策的許可,以支援使用 的其他通知類型 AWS Chatbot。
|
2023 年 5 月 16 日 |
CodeBuild 開始追蹤變更 |
CodeBuild 已開始追蹤其 AWS 受管政策的變更。 |
2021 年 5 月 16 日 |
客戶受管政策範例
在本節中,您可以找到授予 AWS CodeBuild 動作許可的使用者政策範例。當您使用 CodeBuild API、 或 時 AWS SDKs,這些政策會運作 AWS CLI。當您使用主控台時,您必須授予其他主控台特定的許可。如需相關資訊,請參閱 使用 AWS CodeBuild 主控台所需的許可。
您可以使用下列範例IAM政策來限制使用者和角色的 CodeBuild 存取。
主題
- 允許使用者取得建置專案的相關資訊
- 允許使用者取得機群的相關資訊
- 允許使用者取得報告群組的相關資訊
- 允許使用者取得報告的相關資訊
- 允許使用者建立建置專案
- 允許使用者建立機群
- 允許使用者建立報告群組
- 允許使用者刪除機群
- 允許使用者刪除報告群組
- 允許使用者刪除報告
- 允許使用者刪除建置專案
- 允許使用者取得建置專案名稱的清單
- 允許使用者變更建置專案的相關資訊
- 允許使用者變更機群
- 允許使用者變更報告群組
- 允許使用者取得建置的相關資訊
- 允許使用者取得建置專案的IDs建置清單
- 允許使用者取得建置清單 IDs
- 允許使用者取得機群清單
- 允許使用者取得報告群組的清單
- 允許使用者取得報告的清單
- 允許使用者取得報告群組的報告清單
- 允許使用者取得報告的測試案例清單
- 允許使用者開始執行建置
- 允許使用者嘗試停止建置
- 允許使用者嘗試刪除建置
- 允許使用者取得由 管理之 Docker 映像的相關資訊 CodeBuild
- 允許使用者新增機群服務角色的許可政策
- 允許 CodeBuild 存取建立VPC網路介面所需的 AWS 服務
- 使用拒絕陳述式以防止中斷與來源提供者 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*" } ] }
允許使用者取得機群的相關資訊
下列範例政策陳述式允許使用者取得帳戶 us-east-2
區域中機群的相關資訊123456789012
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetFleets", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }
允許使用者取得報告群組的相關資訊
以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012
在 us-east-2
區域的相關報告群組資訊:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReportGroups", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
允許使用者取得報告的相關資訊
以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012
在 us-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/*" } ] }
允許使用者建立報告群組
以下顯示的政策陳述式範例,會允許使用者建立帳戶 123456789012
在 us-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/*" } ] }
允許使用者刪除報告群組
以下顯示的政策陳述式範例,會允許使用者刪除帳戶 123456789012
在 us-east-2
區域中的報告群組:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
允許使用者刪除報告
以下顯示的政策陳述式範例,會允許使用者刪除帳戶 123456789012
在 us-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/*" } ] }
允許使用者變更報告群組
以下顯示的政策陳述式範例,會允許使用者變更帳戶 123456789012
在 us-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-project
和 my-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-project
和 123456789012
的建置專案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": "*" } ] }
允許使用者取得報告群組的清單
以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012
在 us-east-2
區域的報告群組清單:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportGroups", "Resource": "*" } ] }
允許使用者取得報告的清單
以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012
在 us-east-2
區域的報告清單:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReports", "Resource": "*" } ] }
允許使用者取得報告群組的報告清單
以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012
在 us-east-2
區域中報告群組的報告清單:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportsForReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
允許使用者取得報告的測試案例清單
以下顯示的政策陳述式範例,會允許使用者取得帳戶 123456789012
在 us-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:PersistOAuthToken
和 codebuild:ImportSourceCredentials
相反) 與來源供應商連接。如需詳細資訊,請參閱AWS CodeBuild 主控台連線至來源提供者所需的許可。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ] }