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.
Tópicos
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 Guia 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.
Pré-requisitos para compartilhamento de projetos
Antes de começar a compartilhar um projeto, verifique se sua conta da AWS é proprietária. Não é possível compartilhar um projeto que tenha sido compartilhado com você.
Como compartilhar um projeto de sua propriedade (console do CodeBuild)
Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home
. -
No painel de navegação, selecione Projetos de compilação.
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 escolha outro valor para Projetos por página ou use as setas para voltar e avançar.
-
Escolha o projeto que deseja compartilhar e selecione 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:
-
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>
" }] } -
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" }] }
-
Execute o comando put-resource-policy.
aws codebuild put-resource-policy --resource-arn
<project-arn>
--policy file://policy.json -
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. -
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>
Serviços relacionados
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.