Tutorial: Automatice el aprovisionamiento de cuentas en AWS Control Tower mediante las API de Service Catalog - AWS Control Tower

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.

Tutorial: Automatice el aprovisionamiento de cuentas en AWS Control Tower mediante las API de Service Catalog

AWS Control Tower está integrada con varios otros AWS servicios, como AWS Service Catalog. Puede usar las API para crear y aprovisionar sus cuentas de miembros en AWS Control Tower.

El vídeo muestra cómo aprovisionar cuentas de forma automática y por lotes, mediante el uso de las AWS Service Catalog API. Para el aprovisionamiento, llamará a la ProvisionProductAPI desde la interfaz de línea de AWS comandos (CLI) y especificará un archivo JSON que contenga los parámetros de cada cuenta que desee configurar. El vídeo ilustra la instalación y el uso del entorno de desarrollo AWS Cloud9 para realizar este trabajo. Los comandos CLI serían los mismos si usas AWS Cloudshell en lugar de AWS Cloud9.

nota

También puedes adaptar este enfoque para automatizar las actualizaciones de las cuentas, llamando a la UpdateProvisionedProductAPI de AWS Service Catalog cada cuenta. Puede escribir un script para actualizar las cuentas, una por una.

Como método de automatización completamente diferente, si está familiarizado con Terraform, puede aprovisionar cuentas con AWS Control Tower Account Factory for Terraform (AFT).

Ejemplo de función de administración de automatización

A continuación, se muestra un ejemplo de plantilla que puede utilizar para configurar su función de administración de automatización en la cuenta de administración. Debería configurar este rol en su cuenta de administración para que pueda realizar la automatización con acceso de administrador en las cuentas de destino.

AWSTemplateFormatVersion: 2010-09-09 Description: Configure the SampleAutoAdminRole Resources: AdministrationRole: Type: AWS::IAM::Role Properties: RoleName: SampleAutoAdminRole AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: cloudformation.amazonaws.com Action: - sts:AssumeRole Path: / Policies: - PolicyName: AssumeSampleAutoAdminRole PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - sts:AssumeRole Resource: - "arn:aws:iam::*:role/SampleAutomationExecutionRole"

Ejemplo de función de ejecución de la automatización

Esta es una plantilla de ejemplo que puede usar para configurar su rol de ejecución de automatización. Debería configurar este rol en las cuentas de destino.

AWSTemplateFormatVersion: "2010-09-09" Description: "Create automation execution role for creating Sample Additional Role." Parameters: AdminAccountId: Type: "String" Description: "Account ID for the administrator account (typically management, security or shared services)." AdminRoleName: Type: "String" Description: "Role name for automation administrator access." Default: "SampleAutomationAdministrationRole" ExecutionRoleName: Type: "String" Description: "Role name for automation execution." Default: "SampleAutomationExecutionRole" SessionDurationInSecs: Type: "Number" Description: "Maximum session duration in seconds." Default: 14400 Resources: # This needs to run after AdminRoleName exists. ExecutionRole: Type: "AWS::IAM::Role" Properties: RoleName: !Ref ExecutionRoleName MaxSessionDuration: !Ref SessionDurationInSecs AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: AWS: - !Sub "arn:aws:iam::${AdminAccountId}:role/${AdminRoleName}" Action: - "sts:AssumeRole" Path: "/" ManagedPolicyArns: - "arn:aws:iam::aws:policy/AdministratorAccess"

Tras configurar estas funciones, debe llamar a las AWS Service Catalog API para que realicen las tareas automatizadas. Los comandos de la CLI se muestran en el vídeo.

Ejemplo de entrada de aprovisionamiento para la API de Service Catalog

A continuación, se muestra un ejemplo de la información que puede proporcionar a la ProvisionProduct API de Service Catalog si la utiliza para aprovisionar cuentas de AWS Control Tower:

{ pathId: "lpv2-7n2o3nudljh4e", productId: "prod-y422ydgjge2rs", provisionedProductName: "Example product 1", provisioningArtifactId: "pa-2mmz36cfpj2p4", provisioningParameters: [ { key: "AccountEmail", value: "abc@amazon.com" }, { key: "AccountName", value: "ABC" }, { key: "ManagedOrganizationalUnit", value: "Custom (ou-xfe5-a8hb8ml8)" }, { key: "SSOUserEmail", value: "abc@amazon.com" }, { key: "SSOUserFirstName", value: "John" }, { key: "SSOUserLastName", value: "Smith" } ], provisionToken: "c3c795a1-9824-4fb2-a4c2-4b1841be4068" }

Para obtener más información, consulte la referencia de API de Service Catalog.

nota

Observe que el formato de la cadena de entrada para el valor de ManagedOrganizationalUnit ha cambiado de OU_NAME aOU_NAME (OU_ID). En el siguiente vídeo no se menciona este cambio.

Tutorial en vídeo

En este vídeo (6:58) se describe cómo automatizar las implementaciones de cuentas en AWS Control Tower. Para una mejor visualización, seleccione el icono situado en la esquina inferior derecha del vídeo para agrandarlo a pantalla completa. Hay subtítulos disponibles.