Creación de CloudFormation StackSets con permisos autoadministrados - AWS CloudFormation

Creación de CloudFormation StackSets con permisos autoadministrados

Con los permisos de autoadministración, puede implementar pilas en Cuentas de AWS específicas de regiones determinadas. Para ello, primero debe crear los roles de IAM necesarios para establecer una relación de confianza entre la cuenta desde la que está administrando el conjunto de pilas y la cuenta en la que está implementando pilas. Para obtener más información, consulte Concesión de permisos autoadministrados.

nota

Antes de completar uno de los siguientes procedimientos, compruebe que los roles de IAM AWSCloudFormationStackSetExecutionRole y AWSCloudFormationStackSetAdministrationRole existen en su cuenta de administrador. Para lanzar pilas en cuentas distintas de la de administrador, compruebe que el rol de IAM AWSCloudFormationStackSetExecutionRole existe en las cuentas de destino. Para obtener más información, consulte Concesión de permisos a todos los usuarios de la cuenta de administrador para administrar pilas en todas las cuentas de destino.

La plantilla a la que se hace referencia en este tema habilita AWS Config en una cuenta de destino dentro de la región Oeste de EE. UU. (Oregón) (us-west-2) y la región Este de EE. UU. (Norte de Virginia) (us-east-1). La plantilla Habilitar AWS Config se encuentra en el siguiente bucket de S3: https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml. También puede elegir esta plantilla de muestra en la consola de StackSets.

Creación de un conjunto de pilas con permisos autoadministrados (consola)

  1. Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation.

  2. En la barra de navegación de la parte superior de la pantalla, elija la Región de AWS desde la cual desea administrar el conjunto de pilas.

  3. En el panel de navegación, seleccione StackSets (Conjuntos de pilas).

  4. En la parte superior de la página Conjuntos de pilas, seleccione Crear conjunto de pilas.

  5. Omita los Permisos para usar los roles de IAM nombrados AWSCloudFormationStackSetExecutionRole y AWSCloudFormationStackSetAdministrationRole que haya creado anteriormente.

  6. En Prerequisite - Prepare template (Requisito previo: preparar plantilla), elija Use a sample template (Usar una plantilla de ejemplo).

  7. En la opción Seleccionar una plantilla de muestra del menú desplegable, seleccione la plantilla Habilitar AWS Config. A continuación, elija Siguiente.

  8. En la página Especificar detalles de StackSet, en nombre de StackSet, proporcione un nombre para el conjunto de pilas. Los nombres de conjuntos de pilas deben comenzar por un carácter alfabético y solo pueden contener letras, números y guiones. En este tutorial, use el nombre my-awsconfig-stackset.

  9. Para la descripción del conjunto de pilas, proporcione una descripción del conjunto de pilas.

  10. En Parámetros, haga lo siguiente:

    1. Configure los parámetros de Configuración de grabación que utiliza AWS Config. Para obtener más información acerca de estos parámetros, consulte el Manual de configuración de AWS Config en la Guía para desarrolladores AWS Config.

      1. En Admitir todo tipo de recursos, mantenga el valor predeterminado, correcto, para registrar todos los tipos de recursos admitidos.

      2. En Incluir tipos de recursos globales, mantenga el valor predeterminado, incorrecto, para excluir los recursos globales, como los roles de IAM.

      3. Deje Lista de tipos de recursos si no son todos compatibles establecida en <Todos>. Agregue tipos de recursos específicos únicamente si seleccionó incorrecto en Admitir todo tipo de recursos.

      4. En La región que contiene el recurso de rol vinculado al servicio Config, sustituya <DeployToAnyRegion> por us-west-2. Esto significa que el rol vinculado al servicio denominado AWSServiceRoleForConfig solo se creará si se implementa una pila en la región Oeste de EE. UU (Oregón). Elegirá las regiones de implementación más adelante en este procedimiento.

      5. En Frecuencia de grabación del registrador de configuración, elija entre grabación CONTINUA o DIARIA.

    2. (Opcional) En el área Configuración del canal de entrega, puede configurar el canal de entrega para actualizaciones y notificaciones. Para obtener más información sobre el canal de entrega en AWS Config, consulte Administrar el canal de entrega en la Guía para desarrolladores de AWS Config.

    3. (Opcional) Para las notificaciones de entrega, configure las notificaciones de Amazon Simple Notification Service (SNS).

  11. Elija Siguiente para continuar.

  12. En la página Configure StackSet options (Configurar opciones del conjunto de pilas), añada una etiqueta especificando un par de clave y valor. En este tutorial, creamos una etiqueta denominada Stage (Fase), con un valor de Test (Prueba). Las etiquetas que se aplican a los StackSets se aplican a todos los recursos creados por las pilas. Para obtener más información acerca del uso de etiquetas en AWS, consulte Organización y rastreo de costos mediante las etiquetas de asignación de costos de AWS en la Guía del usuario de Administración de facturación y costos de AWS.

  13. Para Execution configuration (Configuración de ejecución), elija Active (Activo) para que StackSets lleve a cabo operaciones sin conflictos simultáneamente y ponga en cola las operaciones en conflicto. Una vez finalizadas las operaciones en conflicto, StackSets inicia las operaciones en cola por orden de solicitud.

    nota

    Cuando las operaciones se están ejecutando o en fila, StackSets pone en cola todas las operaciones entrantes incluso si no están en conflicto. No puede cambiar la configuración de ejecución durante este tiempo.

  14. Si la plantilla contiene recursos de IAM, en Capacidades elija Confirmo que esta plantilla pueda crear recursos de IAM para especificar que desea utilizar recursos de IAM en la plantilla. Para obtener más información, consulte Reconocimiento de recursos de IAM en plantillas de CloudFormation.

  15. Elija Siguiente.

  16. En la página Configurar opciones de implementación, en Agregar pilas al conjunto de pilas, elija Implementar nuevas pilas.

  17. Para Accounts (Cuentas), seleccione Deploy stacks in accounts (Implementar pilas en cuentas). Pegue sus números de Cuenta de AWS de destino en el cuadro de texto, separando los distintos números con comas.

  18. Para Specify regions (Especificar regiones), elija Región EE.UU. Este (Norte de Virginia). Repita el proceso para Región EE.UU. Oeste (Oregón). Seleccione la flecha hacia arriba que aparece junto a Región EE.UU. Oeste (Oregón) para moverla a la primera posición de la lista. El orden de las regiones en Especificar regiones determina su orden de implementación.

    De forma predeterminada, CloudFormation implementará pilas en las cuentas especificadas en la primera región, a continuación pasará a la siguiente y así sucesivamente, mientras los fallos de implementación de una región no superen la tolerancia de fallos especificada.

  19. Para Opciones de implementación, haga lo siguiente:

    • En Maximum concurrent accounts (Máximo de cuentas simultáneas), mantenga los valores predeterminados de Number (Número) y 1.

      Esto significa que CloudFormation implementa la pila en tan solo una cuenta a la vez.

    • Para Tolerancia a errores, mantenga los valores predeterminados de Número y 0.

      Esto significa que puede fallar un máximo de una implementación de pila en una de las regiones especificadas antes de que CloudFormation detenga la implementación en la región actual y cancele la implementación en las regiones restantes.

    • En la Concurrencia regional, seleccione Secuencial (por defecto) o Paralel a fin de determinar el orden de implementación de los conjunto de pilas para las regiones especificadas.

    • Para el Modo de concurrencia, actualice el Modo de concurrencia según sea necesario o vaya al paso siguiente.

  20. Elija Siguiente.

  21. En la página Review (Revisar), revise las opciones seleccionadas. Para realizar cambios, elija Editar en la sección correspondiente.

  22. Cuando lo tenga todo listo para crear su conjunto de pilas, elija Submit (Enviar).

    CloudFormation inicia la creación del conjunto de pilas. Vea el progreso y el estado de la creación de las pilas en la página de detalles del conjunto de pilas que se abre al elegir Submit (Enviar).

Creación de un conjunto de pilas con permisos autoadministrados (AWS CLI)

Al crear StackSets utilizando los comandos de AWS CLI, ejecute dos comandos separados: create-stack-set para cargar su plantilla y crear el contenedor del conjunto de pilas y create-stack-instances para crear las pilas dentro de un conjunto de pilas.

  1. Comience ejecutando el siguiente comando create-stack-set para cargar la plantilla de ejemplo que habilita AWS Config. Para la --template-url opción, proporcione la dirección URL del bucket de Amazon S3 donde se encuentra la plantilla. En este ejemplo, utilizamos my-awsconfig-stackset como valor de la opción --stack-set-name. La opción --parameters se incluye para trabajar con la plantilla EnableAWSConfig.yml que incluimos. Si utiliza su propia plantilla, ajuste el comando a sus necesidades.

    aws cloudformation create-stack-set \ --stack-set-name my-awsconfig-stackset \ --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml \ --parameters ParameterKey=ServiceLinkedRoleRegion,ParameterValue="us-west-2" ParameterKey=RecordingFrequency,ParameterValue="DAILY"
  2. Una vez finalizado el comando create-stack-set, ejecute el comando list-stack-sets para ver el conjunto de pilas que se ha creado. Debería ver el nuevo conjunto de pilas en los resultados.

    aws cloudformation list-stack-sets
  3. Use el comando create-stack-instances para añadir pilas al conjunto de pilas. En este tutorial, usamos us-west-2 y us-east-1 como los valores de la opción --regions.

    Defina el procesamiento simultáneo de cuentas y otras preferencias de implementación con la opción --operation-preferences. Este ejemplo utiliza una configuración basada en el recuento. Considere que MaxConcurrentCount no debe superar FailureToleranceCount + 1. Para ajustes basados en porcentajes, utilice FailureTolerancePercentage o MaxConcurrentPercentage en su lugar.

    aws cloudformation create-stack-instances \ --stack-set-name my-awsconfig-stackset \ --accounts account_ID_1 account_ID_2 \ --regions us-west-2 us-east-1 \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    Para obtener más información, consulte CreateStackInstances en la Referencia de la API de AWS CloudFormation.

  4. Mediante el operation-id que se ha devuelto como parte de la salida de create-stack-instances, use el comando describe-stack-set-operation para comprobar que las pilas se han creado correctamente.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-awsconfig-stackset \ --operation-id operation_ID