

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

# Compartilhar projetos de compilação
<a name="project-sharing"></a>

O compartilhamento de projetos permite que os proprietários compartilhem seus AWS CodeBuild projetos com outras AWS contas ou usuários. 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.

**Topics**
+ [Compartilhar um projeto](#project-sharing-share)
+ [Serviços relacionados](#project-sharing-related)
+ [Acesse CodeBuild projetos compartilhados com você](project-sharing-access-prereqs.md)
+ [Cancelar o compartilhamento de um projeto compartilhado](project-sharing-unshare.md)
+ [Identificar um projeto compartilhado](project-sharing-identify.md)
+ [Permissões para projetos compartilhados](project-sharing-perms.md)

## Compartilhar um projeto
<a name="project-sharing-share"></a>

O consumidor pode usar o AWS CodeBuild console AWS CLI e o console para visualizar o projeto e as construções que você compartilhou. 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](https://console.aws.amazon.com/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](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) no *Guia do usuário do AWS RAM *.

Você pode usar o AWS CodeBuild console, o AWS RAM console ou o 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 AWS conta é proprietária. Não é possível compartilhar um projeto que tenha sido compartilhado com você. 

**Para compartilhar um projeto que você possui (CodeBuild console)**

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

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

1. Escolha o projeto que deseja compartilhar e selecione **Compartilhar**. Para obter mais informações, consulte [Create a resource share](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create) no *Guia do usuário do AWS RAM *. 

**Para compartilhar um projeto que você possui (AWS RAM console)**  
Consulte [Creating a resource share](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create) no *Guia do usuário do AWS RAM *.

**Para compartilhar um projeto que você possui (AWS RAM comando)**  
Use o comando [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html).

**Como compartilhar um projeto de sua propriedade (comando do CodeBuild)**<a name="codebuild-command"></a>

Use o comando [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html):

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

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement":[{
       "Effect":"Allow",
       "Action":[
         "codebuild:BatchGetProjects",
         "codebuild:BatchGetBuilds",
         "codebuild:ListBuildsForProject"],
       "Resource":"arn:aws:iam::*:role/Service*"
     }]
   }
   ```

------

1. Atualize `policy.json` com o ARN do projeto e os identificadores com quais compartilhá-lo. O exemplo a seguir concede acesso somente de leitura ao usuário raiz da AWS conta identificada por 123456789012. 

------
#### [ JSON ]

****  

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

------

1. Execute o comando [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html).

   ```
   aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json
   ```

1. Obtenha o ARN do compartilhamento de AWS RAM recursos.

   ```
   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 *<resource-share-arn>* valor a ser usado na próxima etapa.

1. Execute o comando AWS RAM [promote-resource-share-created-from-policy](https://docs.aws.amazon.com/cli/latest/reference/ram/promote-resource-share-created-from-policy.html).

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

## Serviços relacionados
<a name="project-sharing-related"></a>

O compartilhamento de projetos se integra ao AWS Resource Access Manager (AWS RAM), um serviço que possibilita que você compartilhe seus AWS recursos com qualquer AWS conta ou por meio AWS Organizations de. 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 AWS contas individuais, unidades organizacionais ou uma organização inteira em AWS Organizations. AWS Organizations

Para obter mais informações, consulte o *Guia do usuário do [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/)*.

# Acesse CodeBuild projetos compartilhados com você
<a name="project-sharing-access-prereqs"></a>

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](auth-and-access-control-iam-identity-based-access-control.md). 

# Cancelar o compartilhamento de um projeto compartilhado
<a name="project-sharing-unshare"></a>

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, qualquer AWS conta ou usuário com quem você o compartilhou anteriormente não poderá acessar o projeto ou 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 AWS CodeBuild AWS RAM console, o console ou AWS CLI fazer isso.

**Para cancelar o compartilhamento de um projeto compartilhado de sua propriedade (AWS RAM console)**  
Consulte [Atualização de um compartilhamento de recursos](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update) no *Guia 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](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html).

 **Para cancelar o compartilhamento do projeto que você possui (CodeBuild comando)** 

Execute o [delete-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/delete-resource-policy.html)comando e especifique o ARN do projeto que você deseja descompartilhar:

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

# Identificar um projeto compartilhado
<a name="project-sharing-identify"></a>

Proprietários e consumidores podem usar o AWS CLI para identificar projetos compartilhados.

**Para identificar projetos compartilhados com sua AWS conta ou usuário (AWS CLI)**  
Use o [list-shared-projects](https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-shared-projects.html)comando para retornar os projetos que estão compartilhados com você.

# Permissões para projetos compartilhados
<a name="project-sharing-perms"></a>

## Permissões para proprietários
<a name="project-perms-owner"></a>

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

## Permissões para clientes
<a name="project-perms-consumer"></a>

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.