Trabalhar com projetos compartilhados - AWS CodeBuild

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á.

Trabalhar com projetos compartilhados

O compartilhamento de projetos permite aos proprietários de projetos compartilhar os projetos do AWS CodeBuild com outras contas ou usuários da AWS. Neste modelo, a conta que possui o projeto (proprietário) compartilha um projeto com outras contas (consumidores). Um consumidor não pode editar nem executar um projeto.

Pré-requisitos para compartilhamento de projetos

Para compartilhar um projeto, sua conta da AWS deve ser proprietária dele. Não é possível compartilhar um projeto que tenha sido compartilhado com você.

Pré-requisitos para acessar projetos compartilhados com você

Para acessar um projeto compartilhado, o perfil do IAM de um consumidor requer a permissão BatchGetProjects. É possível anexar a seguinte política ao perfil do IAM:

{ "Effect": "Allow", "Resource": [ "*" ], "Action": [ "codebuild:BatchGetProjects" ] }

Para obter mais informações, consulte Usando políticas baseadas em identidade para AWS CodeBuild.

O compartilhamento de projetos integra-se ao AWS Resource Access Manager (AWS RAM), um serviço que permite que você compartilhe seus recursos da AWS com qualquer conta da AWS ou por meio do AWS Organizations. Com o AWS RAM, você compartilha recursos criando um compartilhamento de recursos que especifica os recursos e os consumidores com os quais compartilhá-los. Os consumidores podem ser contas individuais da AWS, unidades organizacionais do AWS Organizations ou toda uma organização do AWS Organizations.

Para obter mais informações, consulte o Guia do usuário do AWS RAM.

Como compartilhar um projeto

O consumidor pode usar a AWS CLI e o console do AWS CodeBuild para visualizar o projeto e as compilações compartilhadas. O consumidor não pode editar nem executar o projeto.

Você pode adicionar um projeto a um compartilhamento de recursos existente ou criar um no console do AWS RAM.

nota

Não é possível excluir um projeto com compilações que foram adicionadas a um compartilhamento de recursos.

Para compartilhar um projeto com unidades organizacionais ou toda uma organização, é necessário habilitar o compartilhamento com AWS Organizations. Para obter mais informações, consulte Habilitar o compartilhamento com o AWS Organizations no Manual do usuário do AWS RAM.

Você pode usar o console do AWS CodeBuild, o console do AWS RAM ou a AWS CLI para compartilhar um projeto de sua propriedade.

Como compartilhar um projeto de sua propriedade (console do CodeBuild)
  1. Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home.

  2. No painel de navegação, selecione Build projects.

    nota

    Por padrão, somente os 10 projetos de compilação mais recentes são exibidos. Para ver mais projetos de compilação, selecione o ícone de engrenagem e depois selecione um valor diferente para Projects per page (Projetos por página) ou use as setas para voltar e avançar.

  3. Escolha o projeto que deseja compartilhar e selecione Share (Compartilhar). Para obter mais informações, consulte Criar um compartilhamento de recurso no Guia do usuário do AWS RAM.

Como compartilhar um projeto de sua propriedade (console do AWS RAM)

Consulte Creating a resource share no Guia do usuário do AWS RAM.

Como compartilhar um projeto de sua propriedade (comando do AWS RAM)

Use o comando create-resource-share.

Como compartilhar um projeto de sua propriedade (comando do CodeBuild)

Use o comando put-resource-policy:

  1. Crie um arquivo chamado policy.json e copie o seguinte nele.

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"<consumer-aws-account-id-or-user>" }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"<arn-of-project-to-share>" }] }
  2. Atualize policy.json com o ARN do projeto e os identificadores com quais compartilhá-lo. O exemplo a seguir concede acesso somente leitura ao usuário raiz para a conta da AWS identificada por 123456789012.

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS": [ "123456789012" ] }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"arn:aws:codebuild:us-west-2:123456789012:project/my-project" }] }
  3. Execute o comando put-resource-policy.

    aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json
  4. Obtenha o ARN do compartilhamento de recursos de AWS RAM.

    aws ram list-resources --resource-owner SELF --resource-arns <project-arn>

    Isso vai gerar uma resposta semelhante a esta:

    { "resources": [ { "arn": "<project-arn>", "type": "<type>", "resourceShareArn": "<resource-share-arn>", "creationTime": "<creation-time>", "lastUpdatedTime": "<last-update-time>" } ] }

    Na resposta, copie o valor <resource-share-arn> a ser usado na próxima etapa.

  5. Execute o comando promote-resource-share-created-from-policy de AWS RAM.

    aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>

Cancelar o compartilhamento de um projeto compartilhado

Um projeto não compartilhado, incluindo suas compilações, pode ser acessado somente por seu proprietário. Se você cancelar o compartilhamento de um projeto, os usuários ou contas da AWS com os quais você compartilhou anteriormente não poderão acessar o projeto nem suas compilações.

Para cancelar o compartilhamento de um projeto de sua propriedade, é necessário removê-lo do compartilhamento de recursos. Você pode usar o console do AWS CodeBuild, o console do AWS RAM ou a AWS CLI para fazer isso.

Como cancelar o compartilhamento de um projeto compartilhado de sua propriedade (console do AWS RAM)

Consulte Atualização de um compartilhamento de recursos no Manual do usuário do AWS RAM.

Como cancelar o compartilhamento de um projeto compartilhado de sua propriedade (AWS CLI)

Use o comando disassociate-resource-share.

Como cancelar o compartilhamento do projeto de sua propriedade (comando do CodeBuild)

Execute o comando delete-resource-policy e especifique o ARN do projeto que você deseja cancelar o compartilhamento:

aws codebuild delete-resource-policy --resource-arn project-arn

Identificar um projeto compartilhado

Os proprietários e consumidores podem usar a AWS CLI para identificar projetos compartilhados.

Como identificar projetos compartilhados com seu usuário ou conta da AWS (AWS CLI)

Use o comando list-shared-projects para retornar os projetos compartilhados com você.

Permissões para projetos compartilhados

Permissões para proprietários

Um proprietário do projeto pode editar o projeto e usá-lo para executar compilações.

Permissões para consumidores

Um consumidor de projeto pode exibir um projeto e suas compilações, mas não pode editar um projeto ou usá-lo para executar compilações.