As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar tags para controlar o acesso aos recursos do AWS CodeBuild
As condições nas declarações de política do IAM fazem parte da sintaxe que você pode usar para especificar permissões para ações baseadas em CodeBuild projetos. É possível criar uma política que permita ou negue ações em projetos com base nas tags associadas a esses projetos e aplicar essas políticas aos grupos do IAM que você configura para gerenciar usuários. Para obter informações sobre como aplicar tags a um projeto usando o console ou AWS CLI, consulteCrie um projeto de construção em AWS CodeBuild. Para obter informações sobre como aplicar tags usando o CodeBuild SDK, consulte CreateProject Tags na Referência da CodeBuild API. Para obter informações sobre o uso de tags para controlar o acesso aos AWS recursos, consulte Como controlar o acesso aos AWS recursos usando tags de recursos no Guia do usuário do IAM.
Importante
Ao usar o recurso de capacidade reservada, os dados armazenados em cache nas instâncias da frota, incluindo arquivos de origem, camadas do Docker e diretórios em cache especificados no buildspec, podem ser acessados por outros projetos na mesma conta. Isso ocorre por design e permite que projetos dentro da mesma conta compartilhem instâncias de frota.
exemplo Exemplo 1: limitar as ações CodeBuild do projeto com base nas tags de recursos
O exemplo a seguir nega todas as ações BatchGetProjects
em projetos marcados com a chave Environment
com o valor de chave de Production
. O administrador de um usuário deve anexar essa política do IAM, além de uma política gerenciada pelo usuário, a usuários não autorizados. A chave de condição aws:ResourceTag
é usada para controlar o acesso a recursos com base em suas tags.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
exemplo Exemplo 2: limitar as ações CodeBuild do projeto com base nas tags de solicitação
A política a seguir negará a permissão dos usuários para a ação CreateProject
se a solicitação tiver uma tag com a chave Environment
e o valor de chave Production
. Além disso, a política impede que esses usuários não autorizados modifiquem projetos usando a chave de condição aws:TagKeys
para não permitir UpdateProject
se a solicitação tiver uma tag com a chave Environment
. Um administrador deve anexar essa política do IAM, além da política gerenciada pelo usuário, a usuários que não estão autorizados a executar essas ações. A chave de condição aws:RequestTag
é usada para controlar quais tags podem ser transmitidas em uma solicitação do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:CreateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Environment": "Production" } } }, { "Effect": "Deny", "Action": [ "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Environment"] } } } ] }
exemplo Exemplo 3: Negar ou permitir ações em grupos de relatórios com base em tags de recursos
Você pode criar uma política que permita ou negue ações em CodeBuild recursos (projetos e grupos de relatórios) com base nas AWS tags associadas a esses recursos e, em seguida, aplicar essas políticas aos grupos do IAM que você configura para gerenciar usuários. Por exemplo, você pode criar uma política que negue todas as CodeBuild ações em qualquer grupo de relatórios com a chave de AWS tag Status
e o valor da chave de eSecret
, em seguida, aplicar essa política ao grupo do IAM que você criou para desenvolvedores gerais (Developers
). Em seguida, você precisa garantir que os desenvolvedores que trabalham nesses grupos de relatórios marcados não sejam membros desse Developers
grupo geral, mas pertençam a um grupo diferente do IAM que não tenha a política restritiva aplicada (SecretDevelopers
).
O exemplo a seguir nega todas as CodeBuild ações em grupos de relatórios marcados com a chave Status
e o valor-chave deSecret
:
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : [ "codebuild:BatchGetReportGroups," "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ] "Resource" : "*", "Condition" : { "StringEquals" : "aws:ResourceTag/
Status
": "Secret
" } } ] }
exemplo Exemplo 4: limitar CodeBuild ações AWSCode BuildDeveloperAccess com base em tags de recursos
Você pode criar políticas que permitam CodeBuild ações em todos os grupos de relatórios e projetos que não estejam marcados com tags específicas. Por exemplo, a política a seguir permite o equivalente de permissões AWSCodeBuildDeveloperAccess para todos os grupos de relatórios e projetos, exceto os marcados com as tags especificadas:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/
Status
": "Secret
", "aws:ResourceTag/Team
": "Saanvi
" } } } ] }