Implementación de una aplicación en otra cuenta de AWS - AWS CodeDeploy

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.

Implementación de una aplicación en otra cuenta de AWS

Las organizaciones suelen tener varias AWS cuentas que utilizan para distintos fines (por ejemplo, una para las tareas de administración del sistema y otra para las tareas de desarrollo, pruebas y producción, o una asociada a los entornos de desarrollo y prueba y otra asociada al entorno de producción).

Aunque puede realizar trabajos relacionados en diferentes cuentas, los grupos de CodeDeploy despliegue y las instancias de Amazon EC2 en las que se despliegan están estrictamente vinculados a las cuentas en las que se crearon. Por ejemplo, no se puede añadir una instancia que lanzó en una cuenta a un grupo de implementaciones en otra.

Suponga que tiene dos AWS cuentas: la cuenta de desarrollo y la cuenta de producción. Trabaja principalmente en la cuenta de desarrollo, pero desea poder iniciar implementaciones en su cuenta de producción sin un conjunto completo de credenciales allí o sin tener que salir de la cuenta de desarrollo e iniciar sesión en la cuenta de producción.

Después de seguir los pasos de configuración entre cuentas, puede iniciar implementaciones que pertenecen a otra cuenta de la organización, sin necesitar un conjunto completo de credenciales para esa otra cuenta. Esto es posible, en parte, utilizando una capacidad proporcionada en el AWS Security Token Service (AWS STS) que le concede acceso temporal a esa cuenta.

Paso 1: Crear un bucket de S3 en cualquiera de las cuentas

En la cuenta de desarrollo o en la cuenta de producción:

  • Si aún no lo ha hecho, cree un bucket de Amazon S3 en el cual se almacenarán las revisiones de la aplicación para la cuenta de producción. Para obtener información, consulte Crear un bucket en Amazon S3. Incluso, puede utilizar el mismo bucket y revisiones de la aplicación para ambas cuentas, implementando los mismos archivos a su entorno de producción que ya probó y verificó en la cuenta de desarrollo.

Paso 2: Conceder permisos de bucket de Amazon S3 al perfil de instancia de IAM de la cuenta de producción

Si el bucket de Amazon S3 que creó en el paso 1 está en la cuenta de producción, este paso no es necesario. El rol que asuma después ya tendrá acceso a este bucket porque también estará en la cuenta de producción.

Si creó el bucket de Amazon S3 en la cuenta de desarrollo, haga lo siguiente:

  • En la cuenta de producción, cree un perfil de instancia de IAM. Para obtener más información, consulte Paso 4: Crear un perfil de instancia de IAM para las instancias de Amazon EC2.

    nota

    Anote el ARN de este perfil de instancia de IAM. Deberá añadirlo a la política de buckets cruzados que cree a continuación.

  • En la cuenta de desarrollo, conceda acceso al bucket de Amazon S3 que creó en la cuenta de desarrollo al perfil de instancia de IAM que acaba de crear en la cuenta de producción. Para obtener más información, consulte Ejemplo 2: Propietario del bucket que concede permisos de bucket entre cuentas.

    Tenga en cuenta lo siguiente cuando complete el proceso de conceder permisos de bucket entre cuentas:

    • En el ejemplo del tutorial, la Cuenta A representa la cuenta de desarrollo y la Cuenta B representa la cuenta de producción.

    • Cuando realice las tareas de la cuenta A (cuenta de desarrollo), modifique la siguiente política de bucket para conceder permisos entre cuentas en lugar de utilizar la política de ejemplo del tutorial.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Cross-account permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] }

      account-id representa el número de cuenta de la cuenta de producción en la que acaba de crear el perfil de instancia de IAM.

      role-name representa el nombre del perfil de instancia de IAM que acaba de crear.

      bucket-name representa el nombre del bucket que creó en el paso 1. Asegúrese de incluir /* después del nombre de su bucket para conceder acceso a cada uno de los archivos dentro del bucket.

Paso 3: Crear recursos y un rol entre cuentas en la cuenta de producción

En su cuenta de producción:

  • Cree sus CodeDeploy recursos (aplicación, grupo de implementación, configuración de implementación, instancias de Amazon EC2, perfil de instancia de Amazon EC2, rol de servicio, etc.) siguiendo las instrucciones de esta guía.

  • Cree una función adicional, una función de IAM multicuenta, que un usuario de su cuenta de desarrollo pueda asumir para realizar CodeDeploy operaciones en esta cuenta de producción.

    Usa el tutorial: Delega el acceso entre AWS cuentas utilizando las funciones de IAM como guía para ayudarte a crear la función multicuenta. En lugar de añadir a tu documento de política los permisos de ejemplo que aparecen en el tutorial, deberías adjuntar al rol, como mínimo, las dos políticas AWS siguientes:

    • AmazonS3FullAccess: necesaria solamente si el bucket de S3 está en la cuenta de desarrollo. Proporciona el rol asumido de la cuenta de producción con acceso total a los servicios y recursos de Amazon S3 en la cuenta de desarrollo donde se almacena la revisión.

    • AWSCodeDeployDeployerAccess: permite a un usuario registrar e implementar revisiones.

    Si desea crear y administrar grupos de implementación y no solamente iniciar implementaciones, añada la política AWSCodeDeployFullAccess en lugar de la política AWSCodeDeployDeployerAccess. Para obtener más información sobre el uso de las políticas gestionadas de IAM para conceder permisos para CodeDeploy las tareas, consulte. AWS políticas gestionadas (predefinidas) para CodeDeploy

    Puede adjuntar políticas adicionales si desea ejecutar tareas en otros servicios de AWS mientras utiliza este rol entre cuentas.

importante

Cuando cree el rol de IAM entre cuentas, anote los detalles que necesitará para acceder a la cuenta de producción.

Para utilizarlas AWS Management Console para cambiar de rol, tendrás que proporcionar uno de los siguientes datos:

  • Una URL para acceder a la cuenta de producción con las credenciales del rol asumido. Encontrará la URL en la página Review, que aparece al final del proceso de creación de rol entre cuentas.

  • El nombre del rol entre cuentas y el número del ID de la cuenta o el alias.

Para usar el AWS CLI para cambiar de rol, necesitará proporcionar lo siguiente:

  • El ARN del rol entre cuentas que asumirá.

Paso 4: Cargar la revisión de la aplicación al bucket de Amazon S3

En la cuenta en la que creó el bucket de Amazon S3:

Paso 5: Asumir el rol entre cuentas e implementar las aplicaciones

En la cuenta de desarrollo, puede utilizar la AWS CLI o la AWS Management Console para asumir la función multicuenta e iniciar el despliegue en la cuenta de producción.

Para obtener instrucciones sobre cómo usarlo AWS Management Console para cambiar de rol e iniciar despliegues, consulte Cambiar a un rol (AWS Management Console) y. Creación de una implementación en una plataforma de informática de EC2/en las instalaciones (consola)

Para obtener instrucciones sobre cómo utilizarla AWS CLI para asumir la función multicuenta e iniciar las implementaciones, consulte Cambiar a una función de IAM () y.AWS Command Line InterfaceCreación de una implementación en una plataforma de informática EC2/en las instalaciones (CLI)

Para obtener más información sobre cómo asumir un rol AWS STS, consulte la Guía del AWS Security Token Service usuario y asume-role AssumeRoleen la Referencia de comandos.AWS CLI

Tema relacionado: