AWS CodeBuild 条件キー - AWS CodeBuild

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CodeBuild 条件キー

AWS CodeBuild には、プロジェクトやフリートなどの CodeBuild リソースに組織ポリシーを適用するために IAM ポリシーで使用できる一連の条件キーが用意されています。条件キーは、ネットワーク設定、認証情報設定、コンピューティング制限など、ほとんどの CodeBuild API リクエストコンテキストをカバーします。

プロジェクトとフリートに VPC 接続設定を適用する

このポリシーにより、CodeBuild プロジェクトとフリートを作成するとき、発信者が選択した VPC、サブネット、およびセキュリティグループを使用することが可能になります。複数値コンテキストキーの詳細については、「単一値と複数値のコンテキストキー」を参照してください。

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 に上書きすることが可能になります。さらに、STAGEPRODUCTION に上書きすることも明示的に拒否され、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}.locationsecondaryArtifacts/${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" } } }] }