Personaliza el AWS CDK bootstrapping - AWS Cloud Development Kit (AWS CDK) v2

Esta es la guía para AWS CDK desarrolladores de la versión 2. La CDK versión anterior entró en mantenimiento el 1 de junio de 2022 y finalizó el soporte el 1 de junio de 2023.

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.

Personaliza el AWS CDK bootstrapping

Puede personalizar el AWS Cloud Development Kit (AWS CDK) arranque mediante la interfaz de línea de AWS CDK comandos (AWS CDK CLI) o modificando e implementando la plantilla de arranque. AWS CloudFormation

Para obtener una introducción al arranque, consulte. AWS CDK arranque

Utilice el para personalizar el arranque CDK CLI

Los siguientes son algunos ejemplos de cómo puede personalizar el arranque mediante. CDK CLI Para obtener una lista de todas las opciones cdk bootstrap, consulte cdk bootstrap.

Anule el nombre del bucket de Amazon S3

Utilice la --bootstrap-bucket-name opción para anular el nombre predeterminado del bucket de Amazon S3. Esto puede requerir que modifique la síntesis de la plantilla. Para obtener más información, consulte Personalice CDK la síntesis de pilas.

Modifique las claves de cifrado del lado del servidor para el bucket de Amazon S3

De forma predeterminada, el bucket de Amazon S3 de la pila de bootstrap está configurado para usar claves AWS administradas para el cifrado del lado del servidor. Para usar una clave administrada por el cliente existente, use la --bootstrap-kms-key-id opción y proporcione un valor para que la clave AWS Key Management Service (AWS KMS) la use. Si desea tener más control sobre la clave de cifrado, utilice --bootstrap-customer-key una clave gestionada por el cliente.

Adjunte las políticas administradas a la función de implementación que asume AWS CloudFormation

De forma predeterminada, las pilas se implementan con todos los permisos de administrador mediante la AdministratorAccess política. Para usar tus propias políticas administradas, usa la --cloudformation-execution-policies opción y proporciona ARNs las políticas administradas para asociarlas a la función de implementación.

Para proporcionar varias políticas, páselas una sola cadena, separada por comas:

$ cdk bootstrap --cloudformation-execution-policies "arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"

Para evitar errores en la implementación, asegúrese de que las políticas que especifique sean suficientes para cualquier implementación que vaya a realizar en el entorno que se está iniciando.

Cambie el calificador que se añade a los nombres de los recursos de su pila de bootstrap

De forma predeterminada, el hnb659fds calificador se añade al ID físico de los recursos de la pila de bootstrap. Para cambiar este valor, usa la --qualifier opción.

Esta modificación resulta útil cuando se aprovisionan varias pilas de bootstrap en el mismo entorno para evitar conflictos de nombres.

El objetivo de cambiar el calificador es aislar el nombre entre las pruebas automatizadas del propio calificador. CDK A menos que puedas delimitar con precisión los IAM permisos otorgados a la función de CloudFormation ejecución, tener dos pilas de bootstrap diferentes en una sola cuenta no tiene ningún beneficio de aislamiento de permisos. Por lo tanto, no suele ser necesario cambiar este valor.

Cuando cambias el calificador, tu CDK aplicación debe pasar el valor modificado al sintetizador de pilas. Para obtener más información, consulte Personalice CDK la síntesis de pilas.

Agrega etiquetas a la pila de bootstrap

Usa la --tags opción en el formato de KEY=VALUE para añadir CloudFormation etiquetas a tu pila de bootstrap.

Especifique otras Cuentas de AWS que se puedan implementar en el entorno que se está iniciando

Utilice la --trust opción para proporcionar más recursos Cuentas de AWS que puedan desplegarse en el entorno que se está iniciando. De forma predeterminada, siempre se confiará en la cuenta que realiza el arranque.

Esta opción resulta útil cuando se está iniciando un entorno en el que se va a implementar CDK Pipeline desde otro entorno.

Al utilizar esta opción, también debe proporcionarla. --cloudformation-execution-policies

Para añadir cuentas de confianza a una pila de bootstrap existente, debe especificar todas las cuentas en las que puede confiar, incluidas las que haya proporcionado anteriormente. Si solo proporciona cuentas nuevas en las que confiar, se eliminarán las cuentas de confianza anteriores.

A continuación se muestra un ejemplo en el que se confía en dos cuentas:

$ cdk bootstrap aws://123456789012/us-west-2 --trust 234567890123 --trust 987654321098 --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess ⏳ Bootstrapping environment aws://123456789012/us-west-2... Trusted accounts for deployment: 234567890123, 987654321098 Trusted accounts for lookup: (none) Execution policies: arn:aws:iam::aws:policy/AdministratorAccess CDKToolkit: creating CloudFormation changeset... ✅ Environment aws://123456789012/us-west-2 bootstrapped.
Especifique otras Cuentas de AWS que puedan buscar información en el entorno que se está iniciando

Utilice la --trust-for-lookup opción para especificar si están autorizados a buscar información contextual del entorno Cuentas de AWS que se está iniciando. Esta opción resulta útil para dar permiso a las cuentas para sintetizar las pilas que se van a implementar en el entorno, sin concederles realmente permiso para desplegar esas pilas directamente.

Habilite la protección de terminaciones para la pila bootstrap

Si se elimina una pila de arranque, también se eliminarán los AWS recursos que se aprovisionaron originalmente en el entorno. Tras el arranque del entorno, le recomendamos que no elimine ni vuelva a crear la pila de arranque del entorno, a menos que lo haga de forma intencionada. En su lugar, intente actualizar la pila de arranque a una nueva versión ejecutando de nuevo el comando. cdk bootstrap

Utilice la --termination-protection opción para gestionar la configuración de protección de terminación de la pila de arranque. Al habilitar la protección de terminación, se evita que la pila de arranque y sus recursos se eliminen accidentalmente. Esto es especialmente importante si lo usas, CDK Pipelines ya que no hay una opción de recuperación general si eliminas accidentalmente la pila de arranque.

Después de habilitar la protección de terminación, puede usar la AWS CloudFormation consola AWS CLI o para verificarlo.

Para activar la protección de terminación
  1. Ejecute el siguiente comando para habilitar la protección de terminación en una pila de bootstrap nueva o existente:

    $ cdk bootstrap --termination-protection
  2. Utilice la CloudFormation consola AWS CLI o para verificarlo. A continuación, se muestra un ejemplo mediante la AWS CLI. Si has modificado el nombre de la pila de bootstrap, CDKToolkit sustitúyela por el nombre de la pila:

    $ aws cloudformation describe-stacks --stack-name CDKToolkit --query "Stacks[0].EnableTerminationProtection" true

Modifica la plantilla de bootstrap predeterminada

Cuando necesite más personalización de la que CDK CLI puede proporcionar, puede modificar la plantilla de bootstrap según sea necesario. A continuación, implemente la plantilla para arrancar su entorno.

Para modificar e implementar la plantilla de arranque predeterminada
  1. Obtenga la plantilla de bootstrap predeterminada mediante la --show-template opción. De forma predeterminada, CDK CLI mostrará la plantilla en la ventana de su terminal. Puede modificar el CDK CLI comando para guardar la plantilla en su máquina local. A continuación, se muestra un ejemplo:

    $ cdk bootstrap --show-template > my-bootstrap-template.yaml
  2. Modifique la plantilla de bootstrap según sea necesario. Cualquier cambio que realice debe cumplir con el contrato de la plantilla de arranque. Para obtener más información sobre el contrato de plantilla de arranque, consulte. Siga el contrato de arranque

    Para asegurarse de que alguien que cdk bootstrap utilice la plantilla predeterminada no sobrescriba accidentalmente sus personalizaciones más adelante, cambie el valor predeterminado del parámetro de la plantilla. BootstrapVariant Esto solo CDK CLI permitirá sobrescribir la pila de arranque con plantillas que tengan la misma BootstrapVariant versión o una versión igual o superior a la de la plantilla que está implementada actualmente.

  3. Implemente la plantilla modificada mediante el método de AWS CloudFormation despliegue que prefiera. A continuación se muestra un ejemplo en el que se utiliza CDKCLI:

    $ cdk bootstrap --template my-bootstrap-template.yaml

Siga el contrato de arranque

Para que sus CDK aplicaciones se desplieguen correctamente, las CloudFormation plantillas generadas durante la síntesis deben especificar correctamente los recursos creados durante el arranque. Estos recursos se denominan comúnmente recursos de arranque. El arranque crea recursos en su AWS entorno que los utiliza para realizar implementaciones y administrar AWS CDK los activos de las aplicaciones. Synthesis produce CloudFormation plantillas a partir de cada CDK pila de su aplicación. Estas plantillas no solo definen los AWS recursos que se aprovisionarán desde su aplicación. También especifican los recursos de arranque que se utilizarán durante la implementación.

Durante la síntesis, CDK CLI no sabe específicamente cómo se ha AWS iniciado el entorno. En su lugar, CDK CLI produce CloudFormation plantillas basadas en el sintetizador que configure. Por lo tanto, cuando personalice el arranque, es posible que necesite personalizar la síntesis. Para obtener instrucciones sobre cómo personalizar la síntesis, consulte. Personalice CDK la síntesis de pilas El objetivo es garantizar que las CloudFormation plantillas sintetizadas sean compatibles con el entorno de arranque. Esta compatibilidad se denomina contrato de arranque.

El método más sencillo para personalizar la síntesis de pilas consiste en modificar la DefaultStackSynthesizer clase de la Stack instancia. Si necesitas una personalización superior a la que puede ofrecer esta clase, puedes escribir tu propio sintetizador como una clase que se implemente IStackSynthesizer (tal vez se derive de). DefaultStackSynthesizer

Cuando personalices el bootstrapping, sigue el contrato de la plantilla de bootstrap para seguir siendo compatible con él. DefaultStackSynthesizer Si modificas el bootstrapping más allá del contrato de la plantilla de bootstrap, tendrás que escribir tu propio sintetizador.

Control de versiones

La plantilla bootstrap debe contener un recurso para crear un parámetro de Amazon EC2 Systems Manager (SSM) con un nombre conocido y un resultado que refleje la versión de la plantilla:

Resources: CdkBootstrapVersion: Type: AWS::SSM::Parameter Properties: Type: String Name: Fn::Sub: '/cdk-bootstrap/${Qualifier}/version' Value: 4 Outputs: BootstrapVersion: Value: Fn::GetAtt: [CdkBootstrapVersion, Value]

Roles

DefaultStackSynthesizerRequiere cinco IAM funciones para cinco propósitos diferentes. Si no utiliza los roles predeterminados, debe especificar su IAM rol ARNs dentro del DefaultStackSynthesizer objeto. Los roles son los siguientes:

  • La función de despliegue es asumida por CDK CLI y AWS CodePipeline para realizar la implementación en un entorno. AssumeRolePolicyControla quién puede realizar el despliegue en el entorno. En la plantilla, puede ver los permisos que necesita este rol.

  • El rol de búsqueda lo asume CDK CLI para realizar búsquedas de contexto en un entorno. AssumeRolePolicyControla quién puede desplegarse en el entorno. Los permisos que necesita este rol se pueden ver en la plantilla.

  • La función de publicación de archivos y la función de publicación de imágenes las asumen los AWS CodeBuild proyectos CDK CLI y los proyectos que publican activos en un entorno. Se utilizan para escribir en el bucket de Amazon S3 y en el ECR repositorio de Amazon, respectivamente. Estas funciones requieren acceso de escritura a estos recursos.

  • La función AWS CloudFormation de ejecución se transfiere AWS CloudFormation a la función de ejecución para realizar la implementación real. Sus permisos son los permisos con los que se ejecutará la implementación. Los permisos se transfieren a la pila como un parámetro que enumera la política administradaARNs.

Salidas

Esto CDK CLI requiere que existan los siguientes CloudFormation resultados en la pila de arranque:

  • BucketName— El nombre del depósito de activos de archivos.

  • BucketDomainName— El depósito de activos de archivos en formato de nombre de dominio.

  • BootstrapVersion— La versión actual de la pila de bootstrap.

Historial de plantillas

La plantilla bootstrap está versionada y evoluciona con el tiempo junto con ella misma. AWS CDK Si proporciona su propia plantilla de bootstrap, manténgala actualizada con la plantilla canónica predeterminada. Quieres asegurarte de que tu plantilla siga funcionando con todas las funciones. CDK Para obtener más información, consulte Historial de versiones de la plantilla Bootstrap.