

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.

# Uso compartido de proyectos de compilación
<a name="project-sharing"></a>

El uso compartido de proyectos permite a los propietarios de los AWS CodeBuild proyectos compartir sus proyectos con otras AWS cuentas o usuarios. En este modelo, la cuenta propietaria del proyecto (propietario) comparte un proyecto con otras cuentas (consumidores). Un consumidor no puede editar ni ejecutar un proyecto.

**Topics**
+ [Uso compartido de un proyecto](#project-sharing-share)
+ [Servicios relacionados](#project-sharing-related)
+ [Acceda a CodeBuild los proyectos que han compartido con usted](project-sharing-access-prereqs.md)
+ [Cómo dejar de compartir un proyecto compartido](project-sharing-unshare.md)
+ [Identificación de un proyecto compartido](project-sharing-identify.md)
+ [Permisos de los proyectos compartidos](project-sharing-perms.md)

## Uso compartido de un proyecto
<a name="project-sharing-share"></a>

El consumidor puede usar tanto la AWS CLI consola como la AWS CodeBuild consola para ver el proyecto y las compilaciones que has compartido. El consumidor no puede editar ni ejecutar el proyecto.

Puede añadir un proyecto a un recurso compartido existente o puede crear uno en la consola de [AWS RAM](https://console.aws.amazon.com/ram).

**nota**  
No se puede eliminar un proyecto con compilaciones que se haya añadido a un recurso compartido. 

Para compartir un proyecto con unidades organizativas o con toda la organización, debe habilitar el uso compartido con AWS Organizations. Para obtener más información, consulte [Habilitar el uso compartido con AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html) en la *Guía del usuario de AWS RAM *.

Puedes usar la AWS CodeBuild consola, la AWS RAM consola o la AWS CLI para compartir un proyecto que te pertenezca.

**Requisitos previos para compartir proyectos**  
Antes de empezar a compartir un proyecto, asegúrate de que sea propiedad de tu AWS cuenta. No puede compartir un proyecto que se ha compartido con usted. 

**Para compartir un proyecto de tu propiedad (CodeBuild consola)**

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. En el panel de navegación, elija **Proyectos de compilación**.
**nota**  
De forma predeterminada, solo se muestran los 10 últimos proyectos de compilación. Para ver más proyectos de compilación, elija el icono de rueda dentada y, a continuación, seleccione un valor diferente para **Projects per page (Proyectos por página)** o use las flechas atrás y adelante.

1. Elija el proyecto que desea compartir y, a continuación, elija **Share (Compartir)**. Para obtener más información, consulte [Crear un recurso compartido](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create) en la *Guía del usuario de AWS RAM *. 

**Para compartir un proyecto de tu propiedad (consola)AWS RAM**  
Consulte [Creación de un uso compartido de recursos](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create) en la *Guía del usuario de AWS RAM *.

**Para compartir un proyecto de tu propiedad (AWS RAM comando)**  
Utilice el comando [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html).

**Para compartir un proyecto que posee (comando CodeBuild)**<a name="codebuild-command"></a>

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

1. Cree un archivo llamado `policy.json` y copie lo siguiente en él. 

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

****  

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

------

1. Actualice `policy.json` con el ARN del proyecto y los identificadores para compartirlo. En el siguiente ejemplo, se concede acceso de solo lectura al usuario raíz de la AWS cuenta identificada como 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. Ejecute el 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. Obtenga el AWS RAM ARN del recurso compartido.

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

   Esto devolverá una respuesta con un aspecto similar al siguiente:

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

   De la respuesta, copia el *<resource-share-arn>* valor para usarlo en el siguiente paso.

1. Ejecute el 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>
   ```

## Servicios relacionados
<a name="project-sharing-related"></a>

El uso compartido de proyectos se integra con AWS Resource Access Manager (AWS RAM), un servicio que te permite compartir tus AWS recursos con cualquier AWS cuenta o a través de ella. AWS Organizations Con AWS RAM, comparte los recursos mediante la creación de un *recurso compartido* que especifica los recursos y los consumidores con los que los comparte. Los consumidores pueden ser AWS cuentas individuales, unidades organizativas o toda una organización AWS Organizations. AWS Organizations

Para obtener más información, consulte la *Guía del usuario de [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/)*.

# Acceda a CodeBuild los proyectos que han compartido con usted
<a name="project-sharing-access-prereqs"></a>

Para tener acceso a un proyecto compartido, el rol de IAM de un consumidor requiere el permiso `BatchGetProjects`. Puede adjuntar la siguiente política a su rol de IAM: 

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

 Para obtener más información, consulte [Uso de políticas basadas en la identidad para AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md). 

# Cómo dejar de compartir un proyecto compartido
<a name="project-sharing-unshare"></a>

Solo el propietario puede obtener acceso a un proyecto que se ha dejado de compartir, incluidas sus compilaciones. Si dejas de compartir un proyecto, cualquier AWS cuenta o usuario con el que lo hayas compartido anteriormente no podrá acceder al proyecto ni a sus compilaciones.

Para dejar de compartir un proyecto compartido que posee, debe quitarlo del recurso compartido. Puedes usar la AWS CodeBuild consola, la AWS RAM consola o alguna AWS CLI otra opción.

**Para dejar de compartir un proyecto compartido de tu propiedad (AWS RAM consola)**  
Consulte [Actualización de un recurso compartido](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update) en la *Guía del usuario de AWS RAM *.

**Para dejar de compartir un proyecto compartido que posee (AWS CLI)**  
Utilice el comando [disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html).

 **Para dejar de compartir un proyecto que te pertenece (comando) CodeBuild ** 

Ejecute el [delete-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/delete-resource-policy.html)comando y especifique el ARN del proyecto que desea dejar de compartir:

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

# Identificación de un proyecto compartido
<a name="project-sharing-identify"></a>

Los propietarios y los consumidores pueden usarlo AWS CLI para identificar los proyectos compartidos.

**Para identificar los proyectos compartidos con su AWS cuenta o usuario (AWS CLI)**  
Usa el [list-shared-projects](https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-shared-projects.html)comando para devolver los proyectos que se comparten contigo.

# Permisos de los proyectos compartidos
<a name="project-sharing-perms"></a>

## Permisos de los propietarios
<a name="project-perms-owner"></a>

El propietario del proyecto puede editar el proyecto y utilizarlo para ejecutar compilaciones.

## Permisos de los consumidores
<a name="project-perms-consumer"></a>

Un consumidor de proyecto puede ver un proyecto y sus compilaciones, pero no puede editarlo ni usarlo para ejecutar compilaciones.