AWS CodeBuild 條件索引鍵 - AWS CodeBuild

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

AWS CodeBuild 條件索引鍵

AWS CodeBuild 提供一組條件金鑰,可用於 IAM 政策,以在專案和機群等 CodeBuild 資源上強制執行組織政策。條件索引鍵涵蓋大多數 CodeBuild API 請求內容,包括網路設定、登入資料組態和運算限制。

在專案和機群上強制執行 VPC 連線設定

此政策允許發起人在建立 CodeBuild 專案和機群時使用選取的 VPCs、子網路和安全群組。如需多值內容索引鍵的詳細資訊,請參閱單一值與多值內容索引鍵。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "codebuild:CreateProject", "codebuild:CreateFleet" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "codebuild:vpcConfig.vpcId": [ "vpc-01234567890abcdef", "vpc-abcdef01234567890" ], "codebuild:vpcConfig.subnets": [ "subnet-1234abcd", "subnet-5678abcd" ], "codebuild:vpcConfig.securityGroupIds": [ "sg-12345678abcdefghij", "sg-01234567abcdefghij" ] } } }] }

防止對專案 buildspec 進行未經授權的修改

此政策不允許發起人覆寫 buildspecOverride 欄位中的 buildspec。

注意

codebuild:source.buildspec 條件索引鍵僅支援 Null 運算子來檢查 API 欄位是否存在。它不會評估 buildspec 的內容。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "codebuild:StartBuild", "Resource": "*" }, { "Effect": "Deny", "Action": "codebuild:StartBuild", "Resource": "*", "Condition": { "Null": { "codebuild:source.buildspec": "false" } } }] }

限制您建置的運算類型

此政策允許建立只能使用 c5.largem5.large 運算執行個體類型建置的機群。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "codebuild:CreateFleet", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "codebuild:computeConfiguration.instanceType": ["c5.large", "m5.large"] } } }] }

控制環境變數設定

此政策允許發起人覆寫STAGE環境變數為 BETAGAMMA。它也明確拒絕覆寫STAGEPRODUCTION,並拒絕覆寫MY_APP_VERSION環境變數。如需多個值內容索引鍵,請參閱單一值與多值內容索引鍵。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "codebuild:environment.environmentVariables/STAGE.value": [ "BETA", "GAMMA" ] } } }, { "Effect": "Deny", "Action": [ "codebuild:StartBuild" ], "Resource": "*", "Condition": { "StringEquals": { "codebuild:environment.environmentVariables/STAGE.value": "PRODUCTION" }, "ForAnyValue:StringEquals": { "codebuild:environment.environmentVariables.name": [ "MY_APP_VERSION" ] } } } ] }

在條件索引鍵名稱中使用變數

您可以在條件索引鍵名稱中使用變數,例如 secondarySources/${sourceIdentifier}.locationsecondaryArtifacts/${artifactIdentifier}.location,您可以在 IAM 政策中指定次要來源或次要成品識別符。以下政策允許發起人建立具有次要來源 之特定來源位置的專案mySecondSource

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "*", "Condition": { "StringEquals": { "codebuild:secondarySources/mySecondSource.location": "my-source-location" } } } ] }

檢查 API 請求中是否存在屬性

CodeBuild 支援條件索引鍵,以檢查 API 請求中是否存在某些欄位。政策會在建立或更新專案時強制執行 VPC 要求。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "codebuild:CreateProject", "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "Null": { "codebuild:vpcConfig": "false" } } }] }