Uso del comando “register” (ARN de usuario de IAM) para registrar una instancia en las instalaciones - 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.

Uso del comando “register” (ARN de usuario de IAM) para registrar una instancia en las instalaciones

importante

No se recomienda registrar una instancia con un usuario de IAM porque utiliza credenciales estáticas (permanentes) para la autenticación. Para mejorar la seguridad, recomendamos registrar una instancia con credenciales temporales para la autenticación. Para obtener más información, consulte Usa el register-on-premises-instance comando (ARN de sesión de IAM) para registrar una instancia local.

importante

Asegúrese de tener un plan para rotar las claves de acceso del usuario de IAM (credenciales permanentes). Para obtener más información, consulte Rotación de las claves de acceso.

En esta sección, se describe cómo configurar una instancia local, registrarla y etiquetarla CodeDeploy con el mínimo esfuerzo. El comando register resulta especialmente útil cuando se trabaja con una sola flota o con flotas pequeñas de instancias en las instalaciones. Solo puede utilizar el comando register si emplea un ARN de usuario de IAM para autenticar una instancia. No puede utilizar el comando register con un ARN de sesión de IAM para la autenticación.

Al usar el register comando, puede CodeDeploy hacer lo siguiente:

  • Crea un usuario de IAM AWS Identity and Access Management para la instancia local si no especificas uno con el comando.

  • Guardar las credenciales del usuario de IAM en un archivo de configuración de la instancia en las instalaciones.

  • Registre la instancia local con. CodeDeploy

  • Añadir etiquetas a la instancia en las instalaciones, si las especifica como parte del comando.

nota

El register-on-premises-instancecomando es una alternativa al comando register. Usa el register-on-premises-instance comando si quieres configurar una instancia local y registrarla y etiquetarla CodeDeploy casi siempre por tu cuenta. El comando register-on-premises-instance también le da la opción de utilizar un ARN de sesión de IAM para registrar instancias en lugar de un ARN de usuario de IAM. Este enfoque proporciona una gran ventaja si tiene grandes flotas de instancias en las instalaciones. Específicamente, puede utilizar un solo ARN de sesión de IAM para autenticar múltiples instancias en lugar de tener que crear un usuario de IAM para cada instancia en las instalaciones a la vez. Para obtener más información, consulte Usa el register-on-premises-instance comando (ARN del usuario de IAM) para registrar una instancia local y Usa el register-on-premises-instance comando (ARN de sesión de IAM) para registrar una instancia local.

Paso 1: Instalar y configurar AWS CLI la instancia local

  1. Instálelo AWS CLI en la instancia local. Siga las instrucciones en Configuración inicial de la AWS CLI en la Guía del usuario de la AWS Command Line Interface .

    nota

    CodeDeploy Los comandos para trabajar con instancias locales están disponibles en la AWS CLI versión 1.7.19 y versiones posteriores. Si AWS CLI ya la tienes instalada, llama aws --version para comprobar su versión.

  2. Configure AWS CLI la instancia local. Siga las instrucciones de Configuración de la AWS CLI en la Guía del usuario de la AWS Command Line Interface .

    importante

    Al configurar AWS CLI (por ejemplo, mediante una llamada al aws configure comando), asegúrese de especificar el ID de clave secreta y la clave de acceso secreta de un usuario de IAM que tenga, como mínimo, los siguientes permisos de AWS acceso además de los permisos especificados en. Requisitos previos para configurar una instancia en las instalaciones Esto permite descargar e instalar el CodeDeploy agente en la instancia local. Los permisos de acceso podrían tener un aspecto similar a este:

    { "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*", "iam:CreateAccessKey", "iam:CreateUser", "iam:DeleteAccessKey", "iam:DeleteUser", "iam:DeleteUserPolicy", "iam:ListAccessKeys", "iam:ListUserPolicies", "iam:PutUserPolicy", "iam:GetUser", "tag:getTagKeys", "tag:getTagValues", "tag:GetResources" ], "Resource" : "*" }, { "Effect" : "Allow", "Action" : [ "s3:Get*", "s3:List*" ], "Resource" : [ "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    nota

    Si ve errores de acceso denegado al intentar acceder a uno de los buckets de Amazon S3 mostrados anteriormente, intente omitir la parte de /* del ARN de recursos del bucket, por ejemplo arn:aws:s3:::aws-codedeploy-sa-east-1.

Paso 2: Llamar al comando “register”

Para este paso se da por sentado que va a registrar la instancia on-premises desde la propia instancia on-premises. También puede registrar una instancia local desde un dispositivo o instancia independiente que la tenga AWS CLI instalada y configurada tal y como se describe en el paso anterior.

Use el comando register AWS CLI para llamar al comando register y especifique:

  • Un nombre que identifica de forma exclusiva a la instancia local CodeDeploy (con la --instance-name opción).

    importante

    Para ayudarle a identificar la instancia on-premises en otro momento, especialmente a efectos de depuración, recomendamos encarecidamente que utilice un nombre que se asigne a algunas características exclusivas de la instancia on-premises (por ejemplo, el número de serie o algún identificador único de recurso interno, si procede). Si especificas una dirección MAC para un nombre, ten en cuenta que las direcciones MAC contienen caracteres CodeDeploy no permitidos, como dos puntos (:). Para obtener una lista de los caracteres permitidos, consulte CodeDeploy cuotas.

  • Si lo desea, el ARN de un usuario de IAM existente que desea asociar a esta instancia en las instalaciones (con la opción --iam-user-arn). Para obtener el ARN de un usuario de IAM, llame al comando get-user o elija el nombre de usuario de IAM en la sección Users de la consola de IAM y, a continuación, busque el valor ARN de usuario en la sección Resumen. Si no se especifica esta opción, CodeDeploy creará un usuario de IAM en su nombre en su AWS cuenta y lo asociará a la instancia local.

    importante

    Si especifica la opción --iam-user-arn, además debe crear manualmente el archivo de configuración de la instancia en las instalaciones, como se describe en Paso 4: Añadir un archivo de configuración a la instancia en las instalaciones.

    Puede asociar un solo usuario de IAM a una sola instancia en las instalaciones. Intentar asociar un solo usuario de IAM a múltiples instancias en las instalaciones puede producir errores, implementaciones fallidas en dichas instancias en las instalaciones o implementaciones en dichas instancias en las instalaciones que permanecen en estado pendiente perpetuo.

  • Opcionalmente, un conjunto de etiquetas de instancias locales (con la --tags opción) que CodeDeploy se utilizarán para identificar el conjunto de instancias de Amazon EC2 en las que se va a implementar. Especifique cada etiqueta con Key=tag-key,Value=tag-value (por ejemplo, Key=Name,Value=Beta Key=Name,Value=WestRegion). Si no se especifica esta opción, no se registrarán etiquetas. Para registrar las etiquetas más adelante, ejecute el comando add-tags-to-on-premises-instances.

  • De forma opcional, la AWS región en la que se registrará la instancia local CodeDeploy (con la opción). --region Debe ser una de las regiones admitidas que se encuentran en la lista de Regiones y puntos de enlace de la Referencia general de AWS (por ejemplo, us-west-2). Si no se especifica esta opción, se utilizará la AWS región predeterminada asociada al usuario de IAM que realiza la llamada.

Por ejemplo:

aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arn:aws:iam::444455556666:user/CodeDeployUser-OnPrem --tags Key=Name,Value=CodeDeployDemo-OnPrem --region us-west-2

El comando register hace lo siguiente:

  1. Si no se especifica un usuario de IAM existente, lo crea, le asocia los permisos necesarios y genera la clave secreta y la clave de acceso secreta correspondientes. La instancia local utilizará este usuario de IAM y sus permisos y credenciales para autenticarse e interactuar con él. CodeDeploy

  2. Registra la instancia local con. CodeDeploy

  3. Si se especifica, asocia CodeDeploy las etiquetas especificadas con la --tags opción al nombre de la instancia local registrada.

  4. Si ya se ha creado el usuario de IAM, también crea el archivo de configuración necesario en el mismo directorio desde el que se ejecutó el comando register.

Si este comando encuentra algún error, aparece un mensaje en el que se describe cómo realizar manualmente los pasos faltantes. En caso contrario, aparece un mensaje de confirmación en el que se describe cómo ejecutar el comando install según se indica en el siguiente paso.

Paso 3: Llamar al comando “install”

Desde la instancia local, usa el comando AWS CLI para llamar al comando install y especifica:

  • La ruta al archivo de configuración (con la opción --config-file).

  • Si lo desea, si se reemplazará el archivo de configuración que ya existe en la instancia on-premises (con la opción --override-config). Si no se especifica, no se sustituirá el archivo de configuración existente.

  • De forma opcional, la AWS región en la que se registrará la instancia local CodeDeploy (con la --region opción). Debe ser una de las regiones admitidas que se encuentran en la lista de Regiones y puntos de enlace de la Referencia general de AWS (por ejemplo, us-west-2). Si no se especifica esta opción, se utilizará la AWS región predeterminada asociada al usuario de IAM que realiza la llamada.

  • Opcionalmente, una ubicación personalizada desde la que instalar el CodeDeploy agente (con la --agent-installer opción). Esta opción resulta útil para instalar una versión personalizada del CodeDeploy agente que CodeDeploy no sea compatible oficialmente (por ejemplo, una versión personalizada basada en el repositorio de CodeDeployagentes de GitHub). El valor debe ser la ruta a un bucket de Amazon S3 que contenga cualquiera de los siguientes:

    • Un script de instalación del CodeDeploy agente (para sistemas operativos basados en Linux o Unix, similar al archivo de instalación del repositorio del CodeDeployagente). GitHub

    • Un archivo de paquete de instalación del CodeDeploy agente (.msi) (para sistemas operativos basados en Windows).

    Si no se especifica esta opción, CodeDeploy intentará instalar desde su propia ubicación una versión oficial del CodeDeploy agente que sea compatible con el sistema operativo de la instancia local.

Por ejemplo:

aws deploy install --override-config --config-file /tmp/codedeploy.onpremises.yml --region us-west-2 --agent-installer s3://aws-codedeploy-us-west-2/latest/codedeploy-agent.msi

El comando install hace lo siguiente:

  1. Comprueba si la instancia en las instalaciones es una instancia de Amazon EC2. Si lo es, aparece un mensaje de error.

  2. Copia el archivo de configuración de las instancias locales de la ubicación especificada de la instancia a la ubicación en la que el CodeDeploy agente espera encontrarlo, siempre que el archivo no esté ya en esa ubicación.

    Para Ubuntu Server y Red Hat Enterprise Linux (RHEL), es /etc/codedeploy-agent/conf/codedeploy.onpremises.yml.

    Para Windows Server, es C:\ProgramData\Amazon\CodeDeploy\conf.onpremises.yml.

    Si se especificó la opción --override-config, crea o sobrescribe el archivo.

  3. Instala el CodeDeploy agente en la instancia local y, a continuación, la inicia.

Paso 4: Implementar revisiones de la aplicación en la instancia en las instalaciones

Ahora está listo para implementar revisiones de aplicaciones en la instancia on-premises registrada y etiquetada.

La implementación de revisiones de aplicaciones en instancias en las instalaciones es similar a la implementación de revisiones de aplicaciones en instancias de Amazon EC2. Para ver instrucciones, consulte Cree una implementación con CodeDeploy. Estas instrucciones incluyen un enlace a los requisitos previos, incluida la creación de una aplicación, la creación de un grupo de implementaciones y la preparación de la revisión de una aplicación. Si necesita una revisión de una aplicación sencilla para implementar, puede crear la que se describe en Paso 2: Crear una revisión de aplicación de ejemplo en el Tutorial: Implemente una aplicación en una instancia local con CodeDeploy (Windows Server, Ubuntu Server o Red Hat Enterprise Linux).

importante

Si reutilizas un rol de CodeDeploy servicio existente como parte de la creación de un grupo de implementación orientado a instancias locales, debes Tag:get* incluirlo en esa Action parte de la declaración de política del rol de servicio. Para obtener más información, consulte Paso 2: Crear un rol de servicio para CodeDeploy.

Paso 5: Hacer un seguimiento de las implementaciones en la instancia en las instalaciones

Después de implementar una revisión de una aplicación en instancias en las instalaciones registradas y etiquetadas, puede hacer un seguimiento del progreso de la implementación.

El seguimiento de las implementaciones en instancias en las instalaciones es similar al seguimiento de las implementaciones en instancias de Amazon EC2. Para ver instrucciones, consulte Ver detalles CodeDeploy de la implementación .

Para obtener más opciones, consulte Administrar las operaciones de instancias locales en CodeDeploy.