Creación de StackSets de AWS CloudFormation con permisos administrados por servicios - AWS CloudFormation

Creación de StackSets de AWS CloudFormation con permisos administrados por servicios

Con los permisos administrados por servicios puede implementar pilas en cuentas administradas por AWS Organizations en regiones específicas. Con este modelo, no es necesario crear los roles de IAM necesarios; CloudFormation crea los roles de IAM en su nombre. Para obtener más información, consulte Activación del acceso de confianza.

Consideraciones

Antes de crear un StackSet con permisos administrados por servicios, tenga en cuenta lo siguiente:

  • Los StackSets con permisos administrados por servicios se crean en la cuenta de administración, incluidos los StackSets creados por administradores delegados.

  • El StackSet puede dirigirse a toda la organización (incluye todas las cuentas) o a unidades organizativas (UO) especificadas. Si el StackSet se dirige a una UO principal, también se dirige a cualquier UO secundaria. Cuando el StackSet se dirige a UO específicas, todas las cuentas de esas UO se incluyen de forma predeterminada. Sin embargo, puede dirigirse a cuentas específicas mediante las opciones de filtros de cuentas.

  • Varios StackSets pueden dirigirse a la misma organización o unidad organizativa.

  • El StackSet no puede dirigirse a cuentas de fuera de la organización.

  • El StackSet no puede implementar pilas anidadas.

  • CloudFormation no implementa pilas en la cuenta de administración de la organización, aunque la cuenta de administración esté en su organización o en una UO de su organización.

  • La implementación automática se establece en el nivel de StackSet. No puede ajustar las implementaciones automáticas selectivamente para unidades organizativas, cuentas o regiones.

  • Los permisos de la entidad principal de IAM (usuario, rol o grupo) que utiliza para iniciar sesión en la cuenta de administración determinan si está autorizado para la implementación con StackSets. Para ver un ejemplo de una política de IAM que concede permiso de implementación en una organización, consulte Restringir las operaciones de conjuntos de pilas según la región y los tipos de recursos.

  • Los administradores delegados tienen permisos completos para implementar en cuentas de la organización. La cuenta de administración no puede limitar los permisos del administrador delegado para la implementación en UO específicas ni para llevar a cabo operaciones específicas con StackSets.

Creación de un StackSet con permisos administrados por servicios (consola)

Creación de un StackSet
  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 StackSet.

  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. En Permisos, seleccione Permisos administrados por servicios.

    nota

    Si el acceso de confianza con AWS Organizations está deshabilitado, aparecerá un banner. Se requiere acceso de confianza para crear o actualizar un StackSet con permisos administrados por servicios. Solo el administrador de la cuenta de administración de la organización tiene permisos para Activación del acceso de confianza para StackSets con AWS Organizations.

  6. En Requisito previo - Preparación de la plantilla, seleccione Template is ready (La plantilla está lista).

  7. En Especificar plantilla, elija especificar la dirección URL del bucket de S3 que contiene la plantilla de pila o cargar un archivo de plantilla de pila. A continuación, elija Siguiente.

  8. En la página Especificar detalles del StackSet, proporcione un nombre para el StackSet, especifique los parámetros y, a continuación, elija Siguiente.

  9. En la página Configurar opciones de StackSet, en Etiquetas, especifique las etiquetas que se aplicarán a los recursos de la pila. 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.

  10. En Configuración de ejecución, elija Activo para habilitar la gestión optimizada de las operaciones de CloudFormation:

    • Las operaciones sin conflictos se ejecutan simultáneamente para acelerar los tiempos de implementación.

    • Las operaciones en conflicto se ponen en cola y se procesan automáticamente en el orden en que se solicitaron.

    Mientras las operaciones se estén ejecutando o estén en cola, CloudFormation 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.

  11. 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.

  12. Seleccione Siguiente para continuar y activar el acceso de confianza si aún no está activado.

  13. En la página Definir opciones de implementación, en Objetivos de implementación, realice una de las siguientes acciones:

    • Para realizar la implementación en todas las cuentas de la organización, elija Implementar en la organización.

    • Para realizar la implementación en todas las cuentas de unidades organizativas específicas, elija Implementar en unidades organizativas (OU). Elija Añadir una unidad organizativa, y, a continuación, pegue el ID de unidad organizativa de destino en el cuadro de texto. Repita para cada nueva unidad organizativa de destino.

    Si selecciona Implementar en unidades organizativas (UO), para Tipo de filtro de cuentas, puede configurar sus objetivos de implementación para que sean cuentas individuales específicas al seleccionar una de las siguientes opciones y proporcionar los números de cuenta.

    • Ninguno (predeterminado): implementa las pilas en todas las cuentas en las UO especificadas.

    • Intersección: implementa las pilas solo en cuentas individuales específicas dentro de las UO seleccionadas.

    • Diferencia: implementa las pilas en todas las cuentas de las UO seleccionadas, excepto en cuentas específicas.

    • Unión: implementa las pilas en las UO especificadas y en cuentas individuales adicionales.

  14. En Implementación automática, elija si llevar a cabo la implementación automáticamente en cuentas que se agregan a la organización o UO de destino en el futuro. Para obtener más información, consulte Habilitar o deshabilitar las implementaciones automáticas para StackSets en AWS Organizations.

  15. Si ha habilitado la implementación automática, en Comportamiento de eliminación de cuentas, elija si los recursos de pila se conservan o eliminan cuando se quita una cuenta de una organización u unidad organizativa de destino.

    nota

    Con la opción Retener pilas seleccionada, las pilas se eliminan del StackSet, pero las pilas y sus recursos asociados se retienen. Los recursos permanecen en su estado actual, pero ya no formarán parte del StackSet.

  16. En Especificar regiones, elija las regiones de las que desea eliminar pilas.

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

    • Para Número máximo de cuentas simultáneas, especifique cuántas cuentas se procesan simultáneamente.

    • En Tolerancia a errores, especifique el número máximo de errores de cuenta permitidos por región. La operación se detendrá y no continuará en otras regiones cuando se alcance este límite.

    • Para Concurrencia de regiones, elija cómo procesar las regiones: Secuencial (una región a la vez) o Paralelo (varias regiones simultáneamente).

    • Para el Modo de concurrencia, elija cómo se comporta la concurrencia durante la ejecución de la operación.

      • Tolerancia a errores estricta: reduce el nivel de simultaneidad de la cuenta cuando se producen errores, manteniéndose dentro de Tolerancia a errores +1.

      • Tolerancia flexible a errores: mantiene el nivel de concurrencia especificado (el valor de Número máximo de cuentas simultáneas) independientemente de los errores.

  18. Elija Siguiente para continuar.

  19. En la página Revisar, compruebe que el StackSet se implemente en las cuentas correctas de las regiones adecuadas y, a continuación, elija Crear StackSet.

    Se abrirá la página Detalles de StackSet details. Puede ver el progreso y el estado de la creación de las pilas de su StackSet.

Creación de un StackSet con permisos administrados por servicios (AWS CLI)

Siga los pasos de esta sección para utilizar la AWS CLI a fin de hacer lo siguiente:

  • Crear el contenedor del StackSet.

  • Implementar las instancias de pila.

nota

Al actuar como administrador delegado, debe incluir --call-as DELEGATED_ADMIN en el comando.

Deploy to your organization
Creación de un StackSet
  1. Utilice el comando create-stack-set para crear un nuevo StackSet llamado my-stackset. En el siguiente ejemplo se utiliza una plantilla almacenada en un bucket de S3, se habilitan las implementaciones automáticas y se conservan las pilas cuando se eliminan las cuentas. Para obtener más información, consulte Habilitar o deshabilitar las implementaciones automáticas para StackSets en AWS Organizations.

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true
  2. Use el comando list-stack-sets para confirmar que se creó el StackSet. El nuevo StackSet aparece en los resultados.

    aws cloudformation list-stack-sets
    • Si establece la opción --call-as a DELEGATED_ADMIN mientras ha iniciado sesión en su cuenta de miembro, list-stack-sets devuelve todos los StackSets con permisos administrados por servicios en la organización cuenta de administración.

    • Si establece la opción --call-as a SELF mientras mantiene una sesión iniciada en Cuenta de AWS, list-stack-sets devuelve todos los StackSets autoadministrados de su Cuenta de AWS.

    • Si establece la opción --call-as a SELF mientras ha iniciado sesión en la organización cuenta de administración, list-stack-sets devuelve todos los StackSets de la organización cuenta de administración.

  3. Use el comando create-stack-instances para agregar pilas al StackSet. Para la opción --deployment-targets, especifique el ID raíz de la organización que se va a implementar en todas las cuentas de la organización.

    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-stackset \ --deployment-targets OrganizationalUnitIds=r-a1b2c3d4e5 \ --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-stackset \ --operation-id operation_ID
Deploy to organizational units (OUs)
Creación de un StackSet
  1. Utilice el comando create-stack-set para crear un nuevo StackSet llamado my-stackset. En el siguiente ejemplo se utiliza una plantilla almacenada en un bucket de S3 e incluye un parámetro que establece un KeyPairName con el valor TestKey.

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \ --permission-model SERVICE_MANAGED \ --parameters ParameterKey=KeyPairName,ParameterValue=TestKey
  2. Use el comando list-stack-sets para confirmar que se creó el StackSet. El nuevo StackSet aparece en los resultados.

    aws cloudformation list-stack-sets
    • Si establece la opción --call-as a DELEGATED_ADMIN mientras ha iniciado sesión en su cuenta de miembro, list-stack-sets devuelve todos los StackSets con permisos administrados por servicios en la organización cuenta de administración.

    • Si establece la opción --call-as a SELF mientras mantiene una sesión iniciada en Cuenta de AWS, list-stack-sets devuelve todos los StackSets autoadministrados de su Cuenta de AWS.

    • Si establece la opción --call-as a SELF mientras ha iniciado sesión en la organización cuenta de administración, list-stack-sets devuelve todos los StackSets de la organización cuenta de administración.

  3. Use el comando create-stack-instances para agregar pilas al StackSet. Para la opción --deployment-targets, especifique los ID de las UO en los que se va a llevar a cabo la implementación.

    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-stackset \ --deployment-targets OrganizationalUnitIds=ou-rcuk-1x5j1lwo,ou-rcuk-slr5lh0a \ --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-stackset \ --operation-id operation_ID
Deploy to specific accounts in OUs

Puede dirigirse a unidades organizativas (UO) específicas y utilizar el filtrado de cuentas para controlar con precisión qué cuentas reciben implementaciones de pila. De forma predeterminada, las pilas se implementan en todas las cuentas de las UO especificadas si no se especifica ningún filtrado de cuentas.

En la AWS CLI, especifique el filtrado de cuentas con la opción --deployment-targets. Para obtener más información, consulte DeploymentTargets.

Después de crear el contenedor del StackSet con el comando create-stack-set, use uno de los siguientes ejemplos para implementar pilas en cuentas específicas.

Cómo dirigirse a cuentas específicas de una UO

En el siguiente ejemplo se implementan pilas solo en las cuentas A1 y A2 de OU1.

aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=OU1,Accounts=A1,A2,AccountFilterType=INTERSECTION \ --regions us-west-2 us-east-1
Exclusión de cuentas de una UO

En el siguiente ejemplo se implementan pilas en todas las cuentas de OU1, excepto en las cuentas A1 y A2.

aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=OU1,Accounts=A1,A2,AccountFilterType=DIFFERENCE \ --regions us-west-2 us-east-1
Inclusión de cuentas adicionales

En el siguiente ejemplo se implementan pilas en todas las cuentas de OU1 más una cuenta adicional (A4) de otra UO.

aws cloudformation create-stack-instances --stack-set-name my-stackset \ --deployment-targets OrganizationalUnitIds=OU1,Accounts=A4,AccountFilterType=UNION \ --regions us-west-2 us-east-1