AWS CodeBuildChaves de condição do - AWS CodeBuild

AWS CodeBuildChaves de condição do

O AWS CodeBuild fornece um conjunto de chaves de condição que podem ser usadas em políticas do IAM para aplicar políticas organizacionais em recursos do CodeBuild, como projetos e frotas. As chaves de condição abrangem a maioria dos contextos de solicitação da API do CodeBuild, incluindo configurações de rede, configurações de credenciais e restrições de computação.

Aplicar as configurações de conectividade da VPC em projetos e frotas

Essa política permite que o chamador use VPCs, sub-redes e grupos de segurança selecionados ao criar projetos e frotas do CodeBuild. Consulte mais informações sobre chaves de contexto de valores múltiplos, em Chaves de contexto de valor único vs. de múltiplos valores.

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" ] } } }] }

Evitar modificações não autorizadas no buildspec do projeto

Essa política não permite que o chamador substitua o buildspec no campo buildspecOverride.

nota

A chave de condição codebuild:source.buildspec é compatível somente com o operador Null para verificar a existência do campo da API. Ela não avalia o conteúdo do 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" } } }] }

Restringir os tipos de computação para as compilações

Essa política permite criar frotas que podem ser compiladas somente com o tipo de instância de computação c5.large ou m5.large.

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

Controlar configurações de variável de ambiente

Essa política permite que o chamador substitua a variável de ambiente STAGE por BETA ou GAMMA. Também nega explicitamente a substituição de STAGE por PRODUCTION e nega a substituição da variável de ambiente MY_APP_VERSION. Consulte chaves de contexto de múltiplos valores em Chaves de contexto de valor único vs. de múltiplos valores.

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" ] } } } ] }

Usar variáveis em nomes de chaves de condição

É possível usar variáveis em nomes de chaves de condição, como secondarySources/${sourceIdentifier}.location esecondaryArtifacts/${artifactIdentifier}.location, onde você pode especificar o identificador da origem secundária ou do artefato secundário na política do IAM. A política abaixo permite que o chamador crie um projeto com um local de origem específico para mySecondSource de origem secundária.

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

Verificar a existência de atributos nas solicitações de API

O CodeBuild permite o uso de chaves de condição para verificar a existência de alguns campos na solicitação da API. A política impõe o requisito da VPC ao criar ou atualizar projetos.

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