

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

# Acesso ao repositório entre contas: ações para o administrador na AccountA
<a name="cross-account-administrator-a"></a>

Para permitir que os usuários ou grupos na AccountB acessem um repositório na AccountA, o administrador da AccountA deve:
+ Criar uma política na AccountA que concede acesso ao repositório.
+ Criar uma função na AccountA que possa ser assumida por grupos e usuários do IAM na AccountB.
+ Anexe a política ao perfil.

As seções a seguir apresentam etapas e exemplos.

**Topics**
+ [Etapa 1: criar uma política para acesso ao repositório na AccountA](#cross-account-create-policy-a)
+ [Etapa 2: criar uma função para acesso ao repositório na AccountA](#cross-account-create-role-a)

## Etapa 1: criar uma política para acesso ao repositório na AccountA
<a name="cross-account-create-policy-a"></a>

Você pode criar uma política na AccountA que conceda acesso ao repositório na AccountA aos usuários na AccountB. Dependendo do nível de acesso que deseja conceder, execute uma das seguintes ações:
+ Configure a política para permitir que os usuários da AccountB acessem a um repositório específico, mas não permita a visualização da lista de todos os repositórios na AccountA.
+ Configure o acesso adicional para permitir que os usuários da AccountB escolham o repositório em uma lista de todos os repositórios na AccountA.<a name="cross-account-create-policy-a-procedure"></a>

**Para criar uma política para acesso ao repositório**

1. Faça login no AWS Management Console como um usuário do IAM com permissões para criar políticas no AccountA.

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, selecione **Políticas**.

1. Selecione **Criar política**.

1. Escolha a guia **JSON** e cole o documento de política JSON a seguir na caixa de texto JSON. *us-east-2*Substitua Região da AWS pelo do repositório, *111122223333* pelo ID da conta da AccountA *MySharedDemoRepo* e pelo nome do CodeCommit seu repositório na AccountA:

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

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "codecommit:BatchGet*",
               "codecommit:Create*",
               "codecommit:DeleteBranch",
               "codecommit:Get*",
               "codecommit:List*",
               "codecommit:Describe*",
               "codecommit:Put*",
               "codecommit:Post*",
               "codecommit:Merge*",
               "codecommit:Test*",
               "codecommit:Update*",
               "codecommit:GitPull",
               "codecommit:GitPush"
           ],
           "Resource": [
               "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo"
           ]
       }
   ]
   }
   ```

------

   Se você quiser que os usuários que assumem essa função possam visualizar uma lista de repositórios na página inicial do CodeCommit console, adicione uma declaração adicional à política, da seguinte forma:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "codecommit:BatchGet*",
                   "codecommit:Create*",
                   "codecommit:DeleteBranch",
                   "codecommit:Get*",
                   "codecommit:List*",
                   "codecommit:Describe*",
                   "codecommit:Put*",
                   "codecommit:Post*",
                   "codecommit:Merge*",
                   "codecommit:Test*",
                   "codecommit:Update*",
                   "codecommit:GitPull",
                   "codecommit:GitPush"
               ],
               "Resource": [
                   "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "codecommit:ListRepositories",
               "Resource": "*"
           }
       ]
   }
   ```

------

   Esse acesso facilita para os usuários que assumem essa função com essa política a localização do repositório ao qual eles têm acesso. Eles podem escolher o nome do repositório na lista e serem direcionados para a página inicial do repositório compartilhado (`Code`). Os usuários não podem acessar qualquer um dos outros repositórios exibidos na lista, mas podem visualizar os repositórios na AccountA na página **Dashboard**.

   Se você não quiser permitir que os usuários que assumem a função possam visualizar uma lista de todos os repositórios no AccountA, use o primeiro exemplo de política, mas certifique-se de enviar a esses usuários um link direto para a página inicial do repositório compartilhado no console. CodeCommit 

1. Selecione **Revisar política**. O validador de políticas reporta erros de sintaxe (por exemplo, se você esquecer de substituir o ID da conta da Amazon Web Services e o nome do repositório de exemplo pelo seu ID da conta da Amazon Web Services e nome do repositório).

1. Na página **Revisar política**, insira um nome para a política (por exemplo,*CrossAccountAccessForMySharedDemoRepo*). Você também pode fornecer uma descrição opcional para esta política. Selecione **Criar política**. 

## Etapa 2: criar uma função para acesso ao repositório na AccountA
<a name="cross-account-create-role-a"></a>

Após configurar uma política, crie uma função que grupos e usuários do IAM na AccountB possam assumir e anexe a política a essa função.<a name="cross-account-create-role-a-procedure"></a>

**Para criar uma função para acesso ao repositório**

1. No console do IAM, selecione **Roles (Funções)**.

1. Selecione **Criar perfil**.

1. Selecionar **Outra conta da Amazon Web Services**.

1. Em **ID da conta**, insira o ID da conta da Amazon Web Services para AccountB (por exemplo,*888888888888*). Escolha **Próximo: Permissões**.

1. Em **Anexar políticas de permissões**, selecione a política que você criou no procedimento anterior (*CrossAccountAccessForMySharedDemoRepo*). Escolha **Próximo: revisar**.

1. Em **Nome da função**, insira um nome para a função (por exemplo,*MyCrossAccountRepositoryContributorRole*). Você também pode inserir uma descrição opcional para ajudar outras pessoas a entenderem a finalidade da função.

1. Selecione **Criar perfil**.

1. Abra a função recém-criada e copie o ARN da função (por exemplo, `arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole`). Você precisa fornecer esse ARN para o administrador da AccountB.