翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodeBuild 条件キー
AWS CodeBuild には、プロジェクトやフリートなどの CodeBuild リソースに組織ポリシーを適用するために IAM ポリシーで使用できる一連の条件キーが用意されています。条件キーは、ネットワーク設定、認証情報設定、コンピューティング制限など、ほとんどの 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
条件キーは、API フィールドの存在をチェックする Null 演算子のみをサポートします。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 要件を適用します。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"codebuild:CreateProject",
"codebuild:UpdateProject"
],
"Resource": "*",
"Condition": {
"Null": {
"codebuild:vpcConfig": "false"
}
}
}]
}