

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Acceso al repositorio entre cuentas: acciones del administrador de CuentaA
<a name="cross-account-administrator-a"></a>

Para permitir a los usuarios o grupos de Cuenta B obtener acceso a un repositorio en CuentaA, un administrador de CuentaA debe:
+ Crear una política en CuentaA que conceda acceso al repositorio.
+ Crear una función en CuentaA que puedan desempeñar los usuarios de IAM y grupos en Cuenta B.
+ Asocie la política de al rol.

En las siguientes secciones se proporcionan pasos y ejemplos.

**Topics**
+ [Paso 1: Crear una política de acceso al repositorio en CuentaA](#cross-account-create-policy-a)
+ [Paso 2: Crear una función para el acceso al repositorio en CuentaA](#cross-account-create-role-a)

## Paso 1: Crear una política de acceso al repositorio en CuentaA
<a name="cross-account-create-policy-a"></a>

Puede crear una política en CuentaA que conceda acceso al repositorio de Cuenta A a los usuarios de CuentaB. Según el nivel de acceso que desee permitir, realice una de las siguientes acciones:
+ Configure la política para permitir a los usuarios de Cuenta B obtener acceso a un repositorio específico, pero no les deje ver una lista de todos los repositorios en CuentaA.
+ Configure acceso adicional para permitir a los usuarios de Cuenta B elegir el repositorio de una lista de todos los repositorios en CuentaA.<a name="cross-account-create-policy-a-procedure"></a>

**Para crear una política de acceso al repositorio**

1. Inicie sesión en la consola AWS de administración como usuario de IAM con permisos para crear políticas en AccountA.

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas**.

1. Elija **Crear política**.

1. Seleccione la pestaña **JSON** y pegue el siguiente documento de política JSON en el cuadro de texto JSON. *us-east-2* Región de AWS Sustitúyalo por el del repositorio, *111122223333* por el ID de cuenta de AccountA y *MySharedDemoRepo* por el nombre de tu CodeCommit repositorio en 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"
           ]
       }
   ]
   }
   ```

------

   Si quieres que los usuarios que asuman esta función puedan ver una lista de repositorios en la página de inicio de la CodeCommit consola, añade una declaración adicional a la política, de la siguiente manera:

------
#### [ 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": "*"
           }
       ]
   }
   ```

------

   Este acceso facilita a los usuarios que desempeñan esta función con esta política la localización del repositorio al que tienen acceso. Pueden elegir el nombre del repositorio de la lista y se les puede redirigir a la página de inicio del repositorio compartido (`Code`). Los usuarios no pueden obtener acceso a ninguno de los otros repositorios que ven en la lista, pero pueden ver los repositorios de CuentaA en la página **Dashboard** (Panel).

   Si no quieres permitir que los usuarios que asuman el rol puedan ver una lista de todos los repositorios de AccountA, usa el primer ejemplo de política, pero asegúrate de enviar a esos usuarios un enlace directo a la página principal del repositorio compartido en CodeCommit la consola.

1. Elija **Revisar política**. El validador de políticas notifica los errores de sintaxis (por ejemplo, si olvida reemplazar el nombre del repositorio y el ID de cuenta de Amazon Web Services de ejemplo por el nombre del repositorio y el ID de su cuenta de Amazon Web Services).

1. En la página **de revisión de la política**, introduce un nombre para la política (por ejemplo,*CrossAccountAccessForMySharedDemoRepo*). También puede proporcionar una descripción opcional para esta política. Elija **Crear política**. 

## Paso 2: Crear una función para el acceso al repositorio en CuentaA
<a name="cross-account-create-role-a"></a>

Una vez que haya configurado una política, cree una función que puedan desempeñar los usuarios y grupos de IAM de CuentaB y asocie la política a esa función.<a name="cross-account-create-role-a-procedure"></a>

**A fin de crear una función para obtener acceso al repositorio**

1. En la consola de IAM, seleccione **Roles**.

1. Elija **Crear rol**.

1. Seleccione **Otra cuenta de Amazon Web Services**.

1. En **ID de cuenta**, introduce el ID de cuenta de Amazon Web Services para AccountB (por ejemplo,*888888888888*). Elija **Siguiente: permisos**.

1. En **Adjuntar políticas de permisos**, seleccione la política que creó en el procedimiento anterior (*CrossAccountAccessForMySharedDemoRepo*). Elija **Siguiente: Revisar**.

1. En **Nombre del rol**, introduzca un nombre para el rol (por ejemplo,*MyCrossAccountRepositoryContributorRole*). También puede introducir una descripción opcional para ayudar a otras personas a conocer el objetivo del rol.

1. Elija **Crear rol**.

1. Abra la función que acaba de crear y copie el ARN de la función (por ejemplo, `arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole`). Debe proporcionar este ARN al administrador de CuentaB.