Personalización de cuentas con la personalización del generador de cuentas (AFC) - AWS Control Tower

Personalización de cuentas con la personalización del generador de cuentas (AFC)

AWS Control Tower le permite personalizar Cuentas de AWS nuevas y existentes al aprovisionar los recursos desde la consola de AWS Control Tower. Tras configurar la personalización de Account Factory, AWS Control Tower automatiza este proceso para aprovisionamiento futuro, por lo que no tendrá que mantener ninguna canalización. Las cuentas personalizadas están disponibles para su uso justo después de aprovisionar los recursos.

Aprovisionamiento de cuentas nuevas con esquemas

Las cuentas personalizadas se aprovisionan en Account Factory de AWS Control Tower, mediante plantillas de CloudFormation o con Terraform. Definirá una plantilla que servirá como esquema de cuenta personalizada. El esquema describe los recursos y configuraciones específicos que se necesitan cuando se aprovisiona una cuenta. También hay disponibles esquemas predefinidos, que crean y administran los socios de AWS. Para obtener más información sobre los esquemas que administran los socios, consulte AWS Service Catalog Getting Started Library.

Aplicación de esquemas a las cuentas existentes

También puede aplicar esquemas personalizados a las cuentas existentes siguiendo los pasos Actualizar cuenta en la consola de AWS Control Tower. Para obtener más información, consulte Actualización de la cuenta en la consola.

Definición: tu cuenta central

Los esquemas de cuenta se almacenan en una Cuenta de AWS, que para nuestros fines se denomina cuenta central. Los esquemas se almacenan en forma de producto de Service Catalog. A este producto lo denominamos esquema para distinguirlo de cualquier otro producto de Service Catalog. Para obtener más información sobre cómo crear productos de Service Catalog, consulte Creating products en la Guía del administrador de AWS Service Catalog.

nota

AWS Control Tower contiene controles proactivos que supervisan los recursos de CloudFormation en AWS Control Tower. Si lo desea, puede activar estos controles en la zona de aterrizaje. Al aplicar controles proactivos, estos comprueban que los recursos que se van a implementar en las cuentas cumplen las políticas y los procedimientos de su organización. Para obtener más información sobre los controles proactivos, consulte Proactive controls.

Para obtener más información sobre cómo trabajar con AFC, consulte Automate account customization using Account Factory Customization en AWS Control Tower.

Requisitos previos

Antes de empezar a crear cuentas personalizadas con el generador de cuentas de AWS Control Tower, debe tener implementado un entorno de zona de aterrizaje de AWS Control Tower, así como una unidad organizativa (OU) registrada en AWS Control Tower, donde se colocarán las cuentas recién creadas.

Preparación para la personalización
  • Designación de una cuenta central: puede crear una cuenta nueva que sirva como cuenta central o bien utilizar una Cuenta de AWS existente. Le recomendamos encarecidamente que no utilice la cuenta de administración de AWS Control Tower como cuenta central de esquema.

  • Agregar el rol necesario: si tiene previsto inscribir Cuentas de AWS en AWS Control Tower y personalizarlas, primero debe añadir el rol AWSControlTowerExecution a esas cuentas, como haría con cualquier otra cuenta que esté inscribiendo en AWS Control Tower.

  • Configurar esquemas de socios (opcional): si tiene previsto utilizar esquemas de socios con requisitos de suscripción a marketplace, debe configurarlos desde la cuenta de administración de AWS Control Tower antes de implementar los esquemas de socios como esquemas de personalización.

nota

Se puede implementar un esquema por cada cuenta de AWS Control Tower.

Consideraciones para las personalizaciones del generador de cuentas (AFC)

  • AFC solo admite la personalización mediante un único producto de esquema de AWS Service Catalog.

  • Los productos de esquema de AWS Service Catalog deben crearse en la cuenta central y en la misma región que la región de origen de la zona de aterrizaje de AWS Control Tower.

  • El rol de IAM AWSControlTowerBlueprintAccess debe crearse con el nombre, los permisos y la política de confianza adecuados.

  • AWS Control Tower admite dos opciones de implementación para los esquemas: implementarlos solo en la región de origen o implementarlos en todas las regiones gobernadas por AWS Control Tower. La selección de regiones no está disponible.

  • Al actualizar un esquema en una cuenta de miembro, el ID de la cuenta central de esquema y el producto de esquema de AWS Service Catalog no pueden modificarse.

  • AWS Control Tower no admite la eliminación de un esquema existente ni la adición de uno nuevo en una única operación de actualización de esquemas. Puede eliminar un esquema y, a continuación, añadir uno nuevo en dos operaciones distintas.

  • AWS Control Tower cambia el comportamiento en función de si crea o inscribe cuentas personalizadas o no personalizadas. Si no se crean o inscriben cuentas personalizadas con esquemas, AWS Control Tower creará un producto aprovisionado del generador de cuentas (a través de Service Catalog) en la cuenta de administración de AWS Control Tower. Si especifica la personalización al crear o inscribir cuentas con esquemas, AWS Control Tower no creará un producto aprovisionado del generador de cuentas en la cuenta de administración de AWS Control Tower.

En caso de que se produzca un error de esquema

Error en la aplicación de un esquema

Si se produce un error durante el proceso de aplicación de un esquema a una cuenta (ya sea una cuenta nueva o una cuenta existente que se está inscribiendo en AWS Control Tower), el procedimiento de recuperación es el mismo. La cuenta existirá, pero no estará personalizada ni inscrita en AWS Control Tower. Si desea continuar, siga los pasos para inscribir la cuenta en AWS Control Tower y añada el esquema en el momento de la inscripción.

Error en la creación del rol AWSControlTowerBlueprintAccess y soluciones alternativas

Al crear el rol AWSControlTowerBlueprintAccess desde una cuenta de AWS Control Tower, deberá iniciar sesión como entidad principal con el rol AWSControlTowerExecution. Si inicia sesión con cualquier otro usuario, una SCP impedirá la operación CreateRole, como se muestra en el siguiente artefacto:

{ "Condition": { "ArnNotLike": { "aws:PrincipalArn": [ "arn:aws:iam::*:role/AWSControlTowerExecution", "arn:aws:iam::*:role/stacksets-exec-*" ] } }, "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/aws-controltower-*", "arn:aws:iam::*:role/*AWSControlTower*", "arn:aws:iam::*:role/stacksets-exec-*" ], "Effect": "Deny", "Sid": "GRIAMROLEPOLICY" }

Están disponibles las siguientes soluciones alternativas:

  • (La más recomendada) Asuma el rol AWSControlTowerExecution y cree el rol AWSControlTowerBlueprintAccess. Si elige esta solución alternativa, asegúrese de cerrar sesión en el rol AWSControlTowerExecution inmediatamente después para evitar cambios no intencionados en los recursos.

  • Inicie sesión en una cuenta que no esté inscrita en AWS Control Tower y, por lo tanto, no esté sujeta a esta SCP.

  • Edite temporalmente esta SCP para permitir la operación.

  • (No se recomienda en absoluto) Utilice la cuenta de administración de AWS Control Tower como cuenta central, de modo que no esté sujeta a la SCP.

Personalización del documento de política de los esquemas de AFC basados en CloudFormation

Cuando habilita un esquema a través del generador de cuentas, AWS Control Tower indica a CloudFormation que cree un StackSet en su nombre. CloudFormation necesita acceso a la cuenta administrada para crear pilas de CloudFormation en el StackSet. Aunque CloudFormation ya tiene privilegios de administrador en la cuenta administrada a través del rol AWSControlTowerExecution, CloudFormation no puede asumir este rol.

Como parte de la habilitación de un esquema, AWS Control Tower crea un rol en la cuenta de miembro, que CloudFormation puede asumir para completar las tareas de administración de StackSet. La forma más sencilla de habilitar el esquema personalizado a través del generador de cuentas es utilizar una política que lo permita todo, ya que esas políticas son compatibles con cualquier plantilla de esquema.

Sin embargo, las prácticas recomendadas sugieren que debe restringir los permisos de CloudFormation en la cuenta de destino. Puede proporcionar una política personalizada que AWS Control Tower aplicará al rol que cree para que CloudFormation lo utilice. Por ejemplo, si el esquema crea un parámetro SSM denominado algo-importante, puede proporcionar la siguiente política:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCloudFormationActionsOnStacks", "Effect": "Allow", "Action": "cloudformation:*", "Resource": "arn:aws:cloudformation:*:*:stack/*" }, { "Sid": "AllowSsmParameterActions", "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameter", "ssm:GetParameters" ], "Resource": "arn:*:ssm:*:*:parameter/something-important" } ] }

La declaración AllowCloudFormationActionsOnStacks es necesaria para todas las políticas personalizadas de AFC; CloudFormation utiliza este rol para crear instancias de pila, por lo que requiere permiso para realizar acciones de CloudFormation en las pilas. La sección AllowSsmParameterActions es específica de la plantilla que se va a habilitar.

Resolución de problemas de permisos

Al habilitar un esquema con una política restringida, es posible que no haya suficientes permisos para habilitarlo. Para resolver estos problemas, revise el documento de política y actualice las preferencias de esquema de la cuenta de miembro para utilizar la política corregida. Para comprobar que la política es suficiente para habilitar el esquema, asegúrese de que se concedan los permisos de CloudFormation y de que puede crear una pila directamente utilizando ese rol.

Permisos adicionales necesarios para crear un producto de Service Catalog basado en Terraform

Al crear un producto externo de AWS Service Catalog con un archivo de configuración de Terraform para AFC, AWS Service Catalog requiere que se añadan ciertos permisos a la política de IAM personalizada de AFC, además de los permisos necesarios para crear los recursos definidos en la plantilla. Si elige la política de administración completa predeterminada, no es necesario que añada estos permisos adicionales.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "resource-groups:CreateGroup", "resource-groups:ListGroupResources", "resource-groups:DeleteGroup", "resource-groups:Tag" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "tag:GetResources", "tag:GetTagKeys", "tag:GetTagValues", "tag:TagResources", "tag:UntagResources" ], "Resource": "*", "Effect": "Allow" }, { "Action": "s3:GetObject", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/servicecatalog:provisioning": "true" } } } ] }

Para obtener más información sobre la creación de productos de Terraform mediante el tipo de producto externo en AWS Service Catalog, consulte Step 5: Create launch roles en la Guía del administrador de Service Catalog.

Transición al tipo de producto externo de AWS Service Catalog

AWS Service Catalog ha cambiado la compatibilidad con los productos de código abierto de Terraform y los productos aprovisionados a un tipo nuevo de producto, denominado Externo. Para obtener más información sobre esta transición, consulte Updating existing Terraform Open Source products and provisioned products to the External product type en la Guía del administrador de AWS Service Catalog.

Este cambio afecta a las cuentas existentes que haya creado o inscrito con la personalización del generador de cuentas de AWS Control Tower. Para pasar estas cuentas al tipo de producto externo, debe realizar cambios tanto en AWS Service Catalog como en AWS Control Tower.

Transición al tipo de producto externo
  1. Actualice el motor de referencia de Terraform actual para que AWS Service Catalog incluya compatibilidad con los tipos de productos externos y de código abierto de Terraform. Para obtener instrucciones sobre cómo actualizar el motor de referencia de Terraform, consulte el Repositorio de GitHub de AWS Service Catalog.

  2. En AWS Service Catalog, duplique todos los productos de código abierto de Terraform (esquemas) existentes, de forma que los duplicados utilicen el nuevo tipo de producto externo. No finalice los esquemas existentes de código abierto de Terraform.

  3. En AWS Control Tower, actualice cada cuenta con un esquema de código abierto de Terraform para utilizar el nuevo esquema externo.

    1. Para actualizar un esquema, primero debe eliminar por completo el esquema de código abierto de Terraform. Para obtener más información, consulte Remove a blueprint from an account.

    2. Añada el nuevo esquema externo a la misma cuenta. Para obtener más información, consulte Add a blueprint to an AWS Control Tower account.

  4. Una vez que todas las cuentas que utilizan esquemas de código abierto de Terraform se hayan actualizado a esquemas externos, vuelva a AWS Service Catalog y finalice todos los productos que utilicen el código abierto de Terraform como tipo de producto.

  5. De ahora en adelante, todas las cuentas creadas o inscritas mediante la personalización del generador de cuentas de AWS Control Tower deben hacer referencia a esquemas que utilicen el tipo de producto de CloudFormation o externo.

    En el caso de los esquemas creados con el tipo de producto externo, AWS Control Tower solo admite personalizaciones de cuentas que utilicen plantillas de Terraform y el motor de referencia de Terraform. Para obtener más información, consulte Set up for customization.

nota

AWS Control Tower no admite el código abierto de Terraform como tipo de producto al crear cuentas nuevas. Para obtener más información sobre estos cambios, consulte Updating existing Terraform Open Source products and provisioned products to the External product type en la Guía del administrador de AWS Service Catalog. AWS Service Catalog ofrecerá asistencia técnica a los clientes durante esta transición de tipo de producto, según sea necesario. Póngase en contacto con el representante de cuentas para solicitar asistencia.