Configuración para la personalización - AWS Control Tower

Configuración para la personalización

En las secciones siguientes se indican los pasos para configurar el generador de cuentas para el proceso de personalización. Le recomendamos que configure un administrador delegado para la cuenta central antes de comenzar con estos pasos.

Resumen
  • Paso 1. Creación del rol necesario. Cree un rol de IAM que conceda permiso para que AWS Control Tower tenga acceso a la cuenta (central), donde se almacenan los productos de Service Catalog, también denominados esquemas.

  • Paso 2. Creación del producto de AWS Service Catalog. Cree el producto de AWS Service Catalog (también denominado “producto de esquema”) que necesitará para crear la cuenta personalizada.

  • Paso 3. Revisión del esquema personalizado. Inspeccione el producto de AWS Service Catalog (esquema) que ha creado.

  • Paso 4. Llamada al esquema para crear una cuenta personalizada. Introduzca la información del producto de esquema y la información del rol en los campos adecuados del generador de cuentas, en la consola de AWS Control Tower, mientras crea la cuenta.

Paso 1. Creación del rol necesario

Antes de empezar a personalizar las cuentas, debe configurar un rol que contenga una relación de confianza entre AWS Control Tower y la cuenta central. Cuando se asume, el rol otorga acceso a AWS Control Tower para administrar la cuenta central. El rol debe denominarse AWSControlTowerBlueprintAccess.

AWS Control Tower asume este rol para crear un recurso de cartera en su nombre en AWS Service Catalog, añadir su esquema como producto de Service Catalog a esta cartera y compartir esta cartera y el esquema con su cuenta de miembro durante el aprovisionamiento de la cuenta.

Deberá crear el rol AWSControlTowerBlueprintAccess, como se explica en las siguientes secciones.

Vaya a la consola de IAM para configurar el rol necesario.

Configuración del rol en una cuenta de AWS Control Tower inscrita
  1. Federe o inicie sesión como entidad principal en la cuenta de administración de AWS Control Tower.

  2. Desde la entidad principal federada de la cuenta de administración, asuma o cambie los roles al rol AWSControlTowerExecution de la cuenta inscrita de AWS Control Tower que seleccione para que sirva como cuenta central de esquema.

  3. Desde el rol AWSControlTowerExecution de la cuenta inscrita de AWS Control Tower, cree el rol AWSControlTowerBlueprintAccess con los permisos y las relaciones de confianza adecuados.

nota

Para cumplir con la guía de prácticas recomendadas de AWS, es importante que cierre sesión en el rol AWSControlTowerExecution inmediatamente después de crear el rol AWSControlTowerBlueprintAccess.

Para evitar cambios involuntarios en los recursos, el rol AWSControlTowerExecution es para uso exclusivo de AWS Control Tower.

Si la cuenta central de esquema no está inscrita en AWS Control Tower, el rol AWSControlTowerExecution no existirá en la cuenta y no será necesario asumirlo antes de continuar con la configuración del rol AWSControlTowerBlueprintAccess.

Configuración del rol en una cuenta de miembro no inscrita
  1. Federe o inicie sesión como entidad principal en la cuenta que desee designar como cuenta central mediante el método que prefiera.

  2. Cuando haya iniciado sesión como entidad principal en la cuenta, cree el rol AWSControlTowerBlueprintAccess con los permisos y las relaciones de confianza adecuados.

El rol AWSControlTowerBlueprintAccess debe configurarse para otorgar confianza a dos entidades principales:

  • La entidad principal (usuario) que ejecuta AWS Control Tower en la cuenta de administración de AWS Control Tower.

  • El rol denominado AWSControlTowerAdmin de la cuenta de administración de AWS Control Tower.

A continuación, se muestra un ejemplo de política de confianza, similar a la que tendrá que incluir para su rol. Esta política constituye una práctica recomendada para otorgar el acceso a los privilegios mínimos. Cuando cree su propia política, sustituya el término YourManagementAccountId por el ID real de la cuenta de administración de AWS Control Tower y sustituya el término YourControlTowerUserRole por el identificador del rol de IAM de la cuenta de administración.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::YourManagementAccountId:role/service-role/AWSControlTowerAdmin", "arn:aws:iam::YourManagementAccountId:role/YourControlTowerUserRole" ] }, "Action": "sts:AssumeRole" } ] }

Política de permisos necesaria

AWS Control Tower requiere que la política administrada denominada AWSServiceCatalogAdminFullAccess esté asociada al rol AWSControlTowerBlueprintAccess. Esta política proporciona los permisos que AWS Service Catalog busca cuando permite a AWS Control Tower administrar la cartera y los recursos de productos de AWS Service Catalog. Puede asociar esta política al crear el rol en la consola de IAM.

Pueden ser necesarios permisos adicionales
  • Si almacena los esquemas en Amazon S3, AWS Control Tower también requiere la política de permisos AmazonS3ReadOnlyAccess para el rol AWSControlTowerBlueprintAccess.

  • El tipo de producto Terraform de AWS Service Catalog requiere que añada algunos permisos adicionales a la política de IAM personalizada de AFC si no utiliza la política de administración predeterminada. Requiere estos permisos además de los necesarios para crear los recursos que defina en la plantilla de Terraform.

Paso 2. Creación del producto de AWS Service Catalog

Para crear un producto de AWS Service Catalog, siga los pasos que se indican en la sección Creating products de la Guía del administrador de AWS Service Catalog. Añadirá su esquema de cuenta como plantilla cuando cree el producto de AWS Service Catalog.

importante

Como resultado de la actualización de las licencias de Terraform de HashiCorp, AWS Service Catalog cambió la compatibilidad con los productos de código abierto de Terraform y los productos aprovisionados a un nuevo tipo de producto, denominado externo. Para obtener más información sobre cómo afecta este cambio a AFC, incluida la forma de actualizar los esquemas de cuentas actuales al tipo de producto externo, consulte Transition to External product type.

Resumen de los pasos para la creación de un esquema
  • Cree o descargue una plantilla de AWS CloudFormation o un archivo de configuración tar.gz de Terraform que se convertirá en el esquema de cuenta. Algunos ejemplos de plantillas se proporcionan más adelante en esta sección.

  • Inicie sesión en la Cuenta de AWS en la que almacena los esquemas del generador de cuentas (a veces denominada cuenta central).

  • Vaya a la consola de AWS Service Catalog. Seleccione Lista de productos y, a continuación, Cargar nuevo producto.

  • En el panel Detalles del producto, introduzca los detalles del producto de esquema, como el nombre y la descripción.

  • Seleccione Usar un archivo de plantilla y, a continuación, Elegir archivo. Seleccione o pegue la plantilla o el archivo de configuración que ha desarrollado o descargado para utilizarlo como esquema.

  • Seleccione Crear producto en la parte inferior de la página de la consola.

Puede descargar una plantilla de AWS CloudFormation del repositorio de arquitectura de referencia de AWS Service Catalog. Un ejemplo de ese repositorio ayuda a configurar un plan de copia de seguridad para los recursos.

A continuación, se muestra un ejemplo de plantilla para una empresa ficticia llamada Best Pets. Ayuda a establecer una conexión con su base de datos de mascotas.

Resources: ConnectionStringGeneratorLambdaRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: - lambda.amazonaws.com Action: - "sts:AssumeRole" ConnectionStringGeneratorLambda: Type: AWS::Lambda::Function Properties: FunctionName: !Join ['-', ['ConnectionStringGenerator', !Select [4, !Split ['-', !Select [2, !Split ['/', !Ref AWS::StackId]]]]]] Description: Retrieves the connection string for this account to access the Pet Database Role: !GetAtt ConnectionStringGeneratorLambdaRole.Arn Runtime: nodejs16.x Handler: index.handler Timeout: 5 Code: ZipFile: > const response = require("cfn-response"); exports.handler = function (event, context) { const awsAccountId = context.invokedFunctionArn.split(":")[4] const connectionString= "fake connection string that's specific to account " + awsAccountId; const responseData = { Value: connectionString, } response.send(event, context, response.SUCCESS, responseData); return connectionString; }; ConnectionString: Type: Custom::ConnectionStringGenerator Properties: ServiceToken: !GetAtt ConnectionStringGeneratorLambda.Arn PetDatabaseConnectionString: DependsOn: ConnectionString # For example purposes we're using SSM parameter store. # In your template, use secure alternatives to store # sensitive values such as connection strings. Type: AWS::SSM::Parameter Properties: Name: pet-database-connection-string Description: Connection information for the BestPets pet database Type: String Value: !GetAtt ConnectionString.Value

Paso 3. Revisión del esquema personalizado

Puede ver su esquema en la consola de AWS Service Catalog. Para obtener más información, consulte Managing products en la Guía del administrador de Service Catalog.

Paso 4. Llamada al esquema para crear una cuenta personalizada

Cuando siga el flujo de trabajo Crear cuenta en la consola de AWS Control Tower, verá una sección opcional en la que puede introducir información sobre el esquema que desea utilizar para personalizar las cuentas.

nota

Debe configurar la cuenta central de personalización y añadir al menos un esquema (producto de Service Catalog) antes de poder introducir esa información en la consola de AWS Control Tower y comenzar a aprovisionar cuentas personalizadas.

Cree o actualice una cuenta personalizada en la consola de AWS Control Tower.
  1. Introduzca el ID de la cuenta que contiene los esquemas.

  2. Desde esa cuenta, seleccione un producto existente de Service Catalog (esquema existente).

  3. Seleccione la versión adecuada del esquema (producto de Service Catalog), si tiene más de una versión.

  4. (Opcional) En este punto del proceso, puede añadir o cambiar la política de aprovisionamiento de esquemas. La política de aprovisionamiento de esquemas se escribe en JSON y se asocia a un rol de IAM para que pueda aprovisionar los recursos que se especifican en la plantilla de esquemas. AWS Control Tower crea este rol en la cuenta de miembro para que Service Catalog pueda implementar recursos mediante conjuntos de pilas de AWS CloudFormation. El rol se denomina AWSControlTower-BlueprintExecution-bp-xxxx. La política AdministratorAccess se aplica aquí de forma predeterminada.

  5. Elija la Región de AWS o las regiones en las que desea implementar cuentas basadas en este esquema.

  6. Si el esquema contiene parámetros, puede introducir los valores de los parámetros en campos adicionales del flujo de trabajo de AWS Control Tower. Los valores adicionales pueden incluir: un nombre de repositorio de GitHub, una sucursal de GitHub, un nombre de clúster de Amazon ECS y una identidad de GitHub para el propietario del repositorio.

  7. Puede personalizar las cuentas más adelante siguiendo el proceso de actualización de cuentas, si la cuenta central o los esquemas aún no están listos.

Para obtener más información, consulte Creación de una cuenta personalizada a partir de un esquema.