本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CodeBuild 條件索引鍵
AWS CodeBuild 提供一組條件金鑰,可用於 IAM 政策,以在專案和機群等 CodeBuild 資源上強制執行組織政策。條件索引鍵涵蓋大部分 CodeBuild API 請求內容,包括網路設定、登入資料組態和運算限制。
在專案和機群上強制執行 VPC 連線設定
此政策允許發起人在建立 CodeBuild 專案和機群時使用選取的 VPCs、子網路和安全群組。如需多值內容索引鍵的詳細資訊,請參閱單一值與多值內容索引鍵。
- JSON
-
-
{
"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 的內容。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "codebuild:StartBuild",
"Resource": "*"
}, {
"Effect": "Deny",
"Action": "codebuild:StartBuild",
"Resource": "*",
"Condition": {
"Null": {
"codebuild:source.buildspec": "false"
}
}
}]
}
限制您建置的運算類型
此政策允許建立只能使用 c5.large
或 m5.large
運算執行個體類型建置的機群。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "codebuild:CreateFleet",
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"codebuild:computeConfiguration.instanceType": ["c5.large", "m5.large"]
}
}
}]
}
控制環境變數設定
此政策允許發起人覆寫STAGE
環境變數為 BETA
或 GAMMA
。它也明確拒絕覆寫STAGE
為 PRODUCTION
,並拒絕覆寫MY_APP_VERSION
環境變數。如需多個值內容索引鍵,請參閱單一值與多值內容索引鍵。
- JSON
-
-
{
"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}.location
和 secondaryArtifacts/${artifactIdentifier}.location
,您可以在 IAM 政策中指定次要來源或次要成品識別符。以下政策允許發起人建立具有次要來源 特定來源位置的專案mySecondSource
。
- JSON
-
-
{
"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.vpcId": "false"
}
}
}]
}