Uso de proyectos compartidos - AWS CodeBuild

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 de proyectos compartidos

El uso compartido de proyectos permite a los propietarios compartir susAWS CodeBuildproyectos con otrosAWScuentas 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.

Requisitos previos para compartir proyectos

Para compartir un proyecto, su cuenta de AWS debe ser la propietaria. No puede compartir un proyecto que se ha compartido con usted.

Requisitos previos para acceder a proyectos compartidos con usted

Para tener acceso a un proyecto compartido, el rol de IAM de un consumidor requiere elBatchGetProjectspermiso. 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 identidades para AWS CodeBuild.

El uso compartido de proyectos se integra con AWS Resource Access Manager (AWS RAM), un servicio que le permite compartir sus recursos de AWS con cualquier cuenta de AWS o a través de 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 cuentas de AWS individuales, unidades organizativas en AWS Organizations o toda una organización de AWS Organizations.

Para obtener más información, consulte la Guía del usuario de AWS RAM.

Compartir un proyecto

El consumidor puede utilizar tanto elAWS CLIyAWS CodeBuildpara ver el proyecto y las compilaciones que ha 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.

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 en la Guía del usuario de AWS RAM.

Puede usar la consola de AWS CodeBuild, la consola de AWS RAM o AWS CLI para compartir un proyecto de su propiedad.

Para compartir un proyecto que posee (consola de CodeBuild)
  1. Abra el iconoAWS CodeBuildConsola de enhttps://console.aws.amazon.com/codesuite/codebuild/home.

  2. En el panel de navegación, elija Build projects.

    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.

  3. Elija el proyecto que desea compartir y, a continuación, elija Share (Compartir). Para obtener más información, consulte Crear un recurso compartido en la Guía del usuario de AWS RAM.

Para compartir un proyecto que posee (consola de AWS RAM)

ConsulteCrear un recurso compartidoen laAWS RAMGuía del usuario de.

Para compartir un proyecto que posee (comando AWS RAM)

Utilice el comando create-resource-share.

Para compartir un proyecto que posee (comando CodeBuild)

Utilice el comando put-resource-policy:

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

    { "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>" }] }
  2. 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 deAWScuenta 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" }] }
  3. Ejecute laput-resource-policycomando.

    aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json
  4. Consigue elAWS RAMARN compartido de recursos.

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

    Esto devolverá una respuesta similar a la siguiente:

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

    En la respuesta, copie el<resource-share-arn>valor que se utilizará en el paso siguiente.

  5. Ejecute laAWS RAM promote-recursos-compartido-creado-de-política-comando.

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

Dejar de compartir un proyecto compartido

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

Para dejar de compartir un proyecto compartido que posee, debe quitarlo del recurso compartido. Puede usar la consola de AWS CodeBuild, la consola de AWS RAM o AWS CLI para realizar esta operación.

Para dejar de compartir un proyecto compartido que posee (consola de AWS RAM)

Consulte Actualización de un recurso compartido 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.

Para dejar de compartir un proyecto que posee (comando CodeBuild)

Ejecute el comando delete-resource-policy 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

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

Para identificar proyectos compartidos con su cuenta o usuario de AWS (AWS CLI)

Utilice el comando lista de proyectos compartidos para devolver los proyectos que se comparten con usted.

Permisos de los proyectos compartidos

Permisos de los propietarios

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

Permisos de los consumidores

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