AWS CodeBuild 条件キー - AWS CodeBuild

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

AWS CodeBuild 条件キー

AWS CodeBuild には、プロジェクトやフリートなどの CodeBuild リソースに組織ポリシーを適用するために IAM ポリシーで使用できる一連の条件キーが用意されています。条件キーは、ネットワーク設定、認証情報設定、コンピューティング制限など、ほとんどの 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 条件キーは、API フィールドの存在をチェックする Null 演算子のみをサポートします。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.largeまたは m5.large コンピューティングインスタンスタイプのみで構築できるフリートを作成できます。

{ "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への上書きを明示的に拒否しPRODUCTIONMY_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}.location や などの条件キー名で変数を使用できます。ここではsecondaryArtifacts/${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" } } }] }