Visão geral do gerenciamento de permissões de acesso aos recursos do AWS CodeBuild - AWS CodeBuild

Visão geral do gerenciamento de permissões de acesso aos recursos do AWS CodeBuild

Cada recurso da AWS pertence a uma conta da AWS, e as permissões para criá-lo ou acessá-lo são regidas por políticas de permissões. Um administrador de conta pode anexar políticas de permissões a identidades do IAM (ou seja, usuários, grupos e funções).

nota

Um administrador da conta (ou usuário administrador) é um usuário com privilégios de administrador. Para obter mais informações, consulte Práticas recomendadas de segurança no IAM no Guia do usuário do IAM.

Ao conceder permissões, você decide quem receberá as permissões, os recursos que poderão acessar e as ações que poderão ser executadas nesses recursos.

Recursos e operações do AWS CodeBuild

No AWS CodeBuild, o recurso principal é um projeto de compilação. Em uma política, você usa um Amazon Resource Name (ARN) para identificar o recurso a que a política se aplica. As compilações também são recursos e têm ARNs a eles associados. Para obter mais informações, consulte Nomes de recurso da Amazon (ARN) e namespaces do serviço da AWS no Referência geral da Amazon Web Services.

Tipo de recurso Formato ARN
Projeto de compilação

arn:aws:codebuild:region-ID:account-ID:project/project-name

Compilar

arn:aws:codebuild:region-ID:account-ID:build/build-ID

Grupo de relatórios arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name
Relatório arn:aws:codebuild:region-ID:account-ID:report/report-ID
Frota

arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID

Todos os recursos do CodeBuild

arn:aws:codebuild:*

Todos os recursos do CodeBuild pertencentes à conta especificada na região definida da AWS

arn:aws:codebuild:region-ID:account-ID:*

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.

nota

A maioria dos serviços AWS trata dois pontos (:) e a barra inclinada (/) como o mesmo caractere em ARNs. Contudo, o CodeBuild usa uma correspondência exata em padrões e regras dos recursos. Certifique-se de usar os caracteres corretos ao criar padrões de evento, de modo que eles correspondam à sintaxe ARN no recurso.

Por exemplo, você pode indicar um projeto específico de build (myBuildProject) em sua declaração usando o ARN, como se segue:

"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"

Para especificar todos os recursos, ou se uma ação de API não oferece suporte aos ARNs, use o caractere curinga (*) no elemento Resource, como se segue:

"Resource": "*"

Algumas ações da API do CodeBuild aceitam vários recursos (por exemplo, BatchGetProjects). Para especificar vários recursos em uma única declaração, separe seus ARNs com vírgulas, como se segue:

"Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject", "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject" ]

O CodeBuild fornece um conjunto de operações para funcionar com recursos do CodeBuild. Para ver uma lista, consulte Referência de permissões do AWS CodeBuild.

Entendendo a propriedade de recursos

A conta da AWS possui os recursos criados na conta, independentemente de quem os criou. Especificamente, o proprietário do recurso é a conta da AWS da entidade principal (ou seja, a conta-raiz, um usuário ou um perfil do IAM) que autentica a solicitação de criação de recursos. Os seguintes exemplos mostram como isso funciona:

  • Se você usar as credenciais da conta raiz da conta da AWS para criar uma regra, a conta da AWS será a proprietária do recurso do CodeBuild.

  • Se você criar um usuário na conta da AWS e conceder permissões para criar recursos do CodeBuild para esse usuário, ele poderá criar recursos do CodeBuild. No entanto, sua conta da AWS, à qual o usuário pertence, é a proprietária dos recursos do CodeBuild.

  • Se você criar um perfil do IAM na conta da AWS com permissões para criar recursos do CodeBuild, qualquer pessoa que puder assumir o perfil poderá criar recursos do CodeBuild. A conta da AWS, à qual o perfil pertence, é a proprietária dos recursos do CodeBuild.

Gerenciar acesso aos recursos da

A política de permissões descreve quem possui acesso a quais recursos.

nota

Esta seção aborda o uso do IAM no AWS CodeBuild. Não são fornecidas informações detalhadas sobre o serviço IAM. Para obter a documentação completa do IAM, consulte O que é o IAM? no Guia do usuário do IAM. Para obter mais informações sobre a sintaxe e as descrições da política do IAM, consulte a Referência de políticas do AWS IAM no Guia do usuário do IAM.

As políticas anexadas a uma identidade do IAM são conhecidas como políticas baseadas em identidade (políticas do IAM). As políticas anexadas a um recurso são chamadas de políticas baseadas em recursos. O CodeBuild é compatível com políticas baseadas em identidades e políticas com base em recursos para determinadas APIs somente leitura com o objetivo de compartilhar recursos entre contas.

Acesso seguro aos buckets do S3

É altamente recomendável que você inclua as seguintes permissões no perfil do IAM para verificar se o bucket do S3 associado ao projeto do CodeBuild é de sua propriedade ou de alguém em quem você confia. Essas permissões não são incluídas nas políticas gerenciadas e funções da AWS. Você mesmo deve adicioná-las.

  • s3:GetBucketAcl

  • s3:GetBucketLocation

Se o proprietário de um bucket do S3 usado no projeto for alterado, você deverá verificar se o bucket ainda é de sua propriedade e, caso contrário, atualizar o perfil do IAM. Para obter mais informações, consulte Permitir que os usuários interajam com o CodeBuild e Permitir que o CodeBuild interaja com outros serviços da AWS.

Especificar elementos da política: ações, efeitos e entidades principais

Para cada recurso do AWS CodeBuild, o serviço define um conjunto de operações da API. Para conceder permissões a essas operações da API, o CodeBuild define um conjunto de ações que podem ser especificadas em uma política. Algumas operações da API podem exigir permissões para mais de uma ação a fim de realizar a operação da API. Para obter mais informações, consulte Recursos e operações do AWS CodeBuild e Referência de permissões do AWS CodeBuild.

Estes são os elementos de política básicos:

  • Recurso: use um nome de recurso da Amazon (ARN) para identificar o recurso ao qual a política se aplica.

  • Ação: use palavras-chave de ações para identificar operações de recursos que deseja permitir ou negar. Por exemplo, a permissão codebuild:CreateProject permite que o usuário execute a operação CreateProject.

  • Efeito: especifique o efeito, permitir ou negar, quando o usuário solicita a ação. Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado. Você também pode negar acesso explicitamente a um recurso. Você poderia fazer isso para garantir que um usuário não possa acessar um recurso, mesmo quando uma política diferente concede o acesso.

  • Entidade principal: em políticas baseadas em identidade (políticas do IAM), o usuário ao qual a política é anexada é a entidade principal implícita. Para as políticas baseadas em recursos, você especifica o usuário, conta, serviço ou outra entidade a receber permissões.

Para saber mais sobre a sintaxe e as descrições da política do IAM, consulte a Referência de política do AWS IAM no Guia do usuário do IAM.

Para obter uma tabela que mostra todas as ações da API do CodeBuild e os recursos aos quais elas se aplicam, consulte Referência de permissões do AWS CodeBuild.