

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Automatizar o provisionamento de contas no AWS Control Tower por meio de APIs do Service Catalog
<a name="automated-provisioning-walkthrough"></a>

O AWS Control Tower é integrado a vários outros AWS serviços, como AWS Service Catalog. Você pode usar as APIs para criar e provisionar suas contas de membros no AWS Control Tower ou para inscrever contas de membros existentes.

**nota**  
Se você desativou o IAM Identity Center nas configurações da sua landing zone, os parâmetros de usuário do SSO (`SSOUserEmail`,`SSOUserFirstName`, e`SSOUserLastName`) não serão usados durante o provisionamento da conta. Se desejar, você pode fornecer valores de espaço reservado para esses parâmetros necessários e modificá-los posteriormente seguindo as instruções em[Atualizar o produto provisionado no Service Catalog](update-provisioned-product.md).

O vídeo mostra como provisionar contas de forma automatizada e em lote, chamando as APIs do AWS Service Catalog . Para provisionamento, você chamará a [https://docs.aws.amazon.com//servicecatalog/latest/dg/API_ProvisionProduct.html](https://docs.aws.amazon.com//servicecatalog/latest/dg/API_ProvisionProduct.html)API a partir da interface de linha de AWS comando (CLI) e especificará um arquivo JSON que contém os parâmetros de cada conta que você gostaria de configurar. O vídeo ilustra a instalação e o uso do ambiente de desenvolvimento do [AWS Cloud9](https://docs.aws.amazon.com//cloud9/latest/user-guide/welcome.html) para execução desse trabalho. Os comandos da CLI seriam os mesmos se você usasse o Cloudshell AWS em vez do Cloud9. AWS 

**nota**  
Você também pode adaptar essa abordagem para automatizar as atualizações da conta, chamando a [https://docs.aws.amazon.com//servicecatalog/latest/dg/API_UpdateProvisionedProduct.html](https://docs.aws.amazon.com//servicecatalog/latest/dg/API_UpdateProvisionedProduct.html)API de AWS Service Catalog para cada conta. Você pode escrever um script para atualizar as contas, uma por uma.

Como um método de automação completamente diferente, se tiver familiaridade com o Terraform, você poderá [provisionar contas com o Account Factory for Terraform (AFT) do AWS Control Tower](taf-account-provisioning.md).

**Exemplo de perfil de administração de automação**

Aqui está um exemplo de modelo que você pode usar para ajudar a configurar o perfil de administração de automação na conta de gerenciamento. Esse perfil deveria ser configurado em sua conta de gerenciamento para que ela pudesse realizar a automação com acesso de administrador nas contas 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"
```

**Exemplo de perfil de execução de automação**

Aqui está um modelo de exemplo que você pode usar para ajudar a configurar a função de execução de automação. Esse perfil deveria ser configurado nas contas 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"
```

Depois de configurar essas funções, você chama as AWS Service Catalog APIs para realizar as tarefas automatizadas. Os comandos da CLI são fornecidos no vídeo.

## Exemplo de entrada de provisionamento para a API do Service Catalog
<a name="sample-sc-api-input"></a>

Aqui está um exemplo das informações que você pode fornecer à API do Service Catalog se estiver usando a `ProvisionProduct` API para provisionar novas contas do AWS Control Tower ou para inscrever contas de membros existentes:

**nota**  
Para inscrever uma conta membro existente usando a `ProvisionProduct` API, a função do `AWSControlTowerExecution` IAM deve existir na conta de destino antes de você chamar a API. Você pode usar os mesmos parâmetros de entrada mostrados no exemplo a seguir tanto para o provisionamento de novas contas quanto para o registro de contas existentes.

```
{
  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"
}
```

Consulte mais informações na [Referência de APIs do Service Catalog](https://docs.aws.amazon.com//servicecatalog/latest/dg/API_ProvisionProduct.html).

**nota**  
Observe que o formato da string de entrada para o valor de `ManagedOrganizationalUnit` foi alterado de `OU_NAME` para `OU_NAME (OU_ID)`. O vídeo a seguir não menciona essa mudança.

## Vídeo de demonstração
<a name="automated-provisioning-video"></a>

Este vídeo (6:58) descreve como automatizar implantações de conta no AWS Control Tower. Para uma melhor visualização, selecione o ícone no canto inferior direito do vídeo para ampliá-lo em tela cheia. A legenda está disponível.

[![AWS Videos](http://img.youtube.com/vi/LxxQTPdSFgw/0.jpg)](http://www.youtube.com/watch?v=LxxQTPdSFgw)
