Configurar para personalização - AWS Control Tower

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

Configurar para personalização

As próximas seções fornecem etapas para configurar o Account Factory para o processo de personalização. Recomendamos que você configure o administrador delegado para a conta do hub antes de iniciar essas etapas.

Resumo
  • Etapa 1. Crie a função necessária. Crie uma função do IAM que conceda permissão para que o AWS Control Tower tenha acesso à conta (hub), onde os produtos do Service Catalog, também chamados de blueprints, são armazenados.

  • Etapa 2. Crie o AWS Service Catalog produto. Crie o AWS Service Catalog produto (também chamado de “produto modelo”) que você precisará para definir a base da conta personalizada.

  • Etapa 3. Revise seu plano personalizado. Inspecione o AWS Service Catalog produto (blueprint) que você criou.

  • Etapa 4. Ligue para seu blueprint para criar uma conta personalizada. Insira as informações do modelo do produto e as informações da função nos campos apropriados no Account Factory, no console do AWS Control Tower, ao criar a conta.

Etapa 1. Crie a função necessária

Antes de começar a personalizar contas, você deve configurar uma função que contenha uma relação de confiança entre o AWS Control Tower e sua conta do hub. Quando assumida, a função concede à AWS Control Tower acesso para administrar a conta do hub. A função deve ser nomeada AWSControlTowerBlueprintAccess.

O AWS Control Tower assume essa função para criar um recurso de portfólio em seu nome e AWS Service Catalog, em seguida, adicionar seu plano como um produto do Service Catalog a esse portfólio e, em seguida, compartilhar esse portfólio e seu plano com sua conta membro durante o provisionamento da conta.

Você criará a AWSControlTowerBlueprintAccess função, conforme explicado nas seções a seguir.

Navegue até o console do IAM para configurar a função necessária.

Para configurar a função em uma conta cadastrada do AWS Control Tower
  1. Federe ou faça login como principal na conta de gerenciamento do AWS Control Tower.

  2. Do diretor federado na conta de gerenciamento, assuma ou troque as funções para a AWSControlTowerExecution função na conta inscrita do AWS Control Tower que você selecionou para servir como a conta do hub do blueprint.

  3. A partir da AWSControlTowerExecution função na conta cadastrada do AWS Control Tower, crie a AWSControlTowerBlueprintAccess função com permissões e relações de confiança adequadas.

nota

Para cumprir as diretrizes de AWS melhores práticas, é importante que você saia da AWSControlTowerExecution função imediatamente após criá-la. AWSControlTowerBlueprintAccess

Para evitar alterações não intencionais nos recursos, a AWSControlTowerExecution função deve ser usada somente pelo AWS Control Tower.

Se sua conta do Blueprint Hub não estiver inscrita no AWS Control Tower, a AWSControlTowerExecution função não existirá na conta e não há necessidade de assumi-la antes de continuar com a configuração da AWSControlTowerBlueprintAccess função.

Para configurar a função em uma conta de membro não inscrito
  1. Federe ou faça login como principal na conta que você deseja designar como conta central, por meio de seu método preferido.

  2. Quando estiver conectado como principal na conta, crie a AWSControlTowerBlueprintAccess função com as permissões e relações de confiança adequadas.

A AWSControlTowerBlueprintAccessfunção deve ser configurada para conceder confiança a dois diretores:

  • O principal (usuário) que executa o AWS Control Tower na conta de gerenciamento do AWS Control Tower.

  • A função nomeada AWSControlTowerAdmin na conta de gerenciamento do AWS Control Tower.

Aqui está um exemplo de política de confiança, semelhante à que você precisará incluir para sua função. Essa política demonstra a melhor prática de conceder acesso com privilégios mínimos. Ao criar sua própria política, substitua o termo YourManagementAccountIdpelo ID real da conta de gerenciamento da sua conta de gerenciamento do AWS Control Tower e substitua o termo YourControlTowerUserRolepelo identificador da função do IAM para sua conta de gerenciamento.

{ "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 permissões necessárias

O AWS Control Tower exige que a política gerenciada nomeada AWSServiceCatalogAdminFullAccess seja anexada à AWSControlTowerBlueprintAccess função. Essa política fornece permissões que você AWS Service Catalog verifica quando permite que o AWS Control Tower administre seu portfólio e os recursos AWS Service Catalog do produto. Você pode anexar essa política ao criar a função no console do IAM.

Permissões adicionais podem ser necessárias
  • Se você armazena seus blueprints no Amazon S3, o AWS Control Tower também exige AmazonS3ReadOnlyAccess a política de permissão para AWSControlTowerBlueprintAccess a função.

  • O tipo de produto AWS Service Catalog Terraform exige que você adicione algumas permissões adicionais à política de IAM personalizada do AFC, caso não utilize a política de administração padrão. Isso é necessário, além das permissões necessárias para criar os recursos que você define em seu modelo de terraform.

Etapa 2. Crie o AWS Service Catalog produto

Para criar um AWS Service Catalog produto, siga as etapas em Criação de produtos no Guia AWS Service Catalog do administrador. Você adicionará o modelo da sua conta como modelo ao criar o AWS Service Catalog produto.

Importante

Como resultado do licenciamento atualizado HashiCorp do Terraform, AWS Service Catalog alterei o suporte aos produtos Terraform Open Source e provisionei os produtos para um novo tipo de produto, chamado Externo. Para saber mais sobre como essa alteração afeta o AFC, incluindo como atualizar seus esquemas de conta existentes para o tipo de produto externo, consulte Transição para o tipo de produto externo.

Resumo das etapas para criar um plano
  • Crie ou baixe um AWS CloudFormation modelo ou arquivo de configuração tar.gz do Terraform que se tornará o modelo da sua conta. Alguns exemplos de modelos são fornecidos posteriormente nesta seção.

  • Faça login no Conta da AWS local em que você armazena seus blueprints do Account Factory (às vezes chamados de conta central).

  • Navegue até o AWS Service Catalog console. Escolha Lista de produtos e, em seguida, escolha Carregar novo produto.

  • No painel Detalhes do produto, insira os detalhes do seu produto blueprint, como nome e descrição.

  • Selecione Usar um arquivo de modelo e, em seguida, selecione Escolher arquivo. Selecione ou cole o modelo ou arquivo de configuração que você desenvolveu ou baixou para usar como seu blueprint.

  • Escolha Criar produto na parte inferior da página do console.

Você pode baixar um AWS CloudFormation modelo do repositório de arquitetura de AWS Service Catalog referência. Um exemplo desse repositório ajuda a configurar um plano de backup para seus recursos.

Aqui está um exemplo de modelo para uma empresa fictícia chamada Best Pets. Isso ajuda a configurar uma conexão com o banco de dados de animais de estimação.

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

Etapa 3. Revise seu plano personalizado

Você pode ver seu blueprint no AWS Service Catalog console. Para obter mais informações, consulte Gerenciando produtos no Service Catalog Adminstrator Guide.

Etapa 4. Ligue para seu blueprint para criar uma conta personalizada

Ao seguir o fluxo de trabalho Criar conta no console do AWS Control Tower, você verá uma seção opcional na qual poderá inserir informações sobre o plano que gostaria de usar para personalizar contas.

nota

Você deve configurar sua conta do hub de personalização e adicionar pelo menos um blueprint (produto Service Catalog) antes de poder inserir essas informações no console do AWS Control Tower e começar a provisionar contas personalizadas.

Crie ou atualize uma conta personalizada no console do AWS Control Tower.
  1. Insira o ID da conta que contém seus blueprints.

  2. Nessa conta, selecione um produto existente do Service Catalog (blueprint existente).

  3. Selecione a versão adequada do blueprint (produto Service Catalog), se você tiver mais de uma versão.

  4. (Opcional) Você pode adicionar ou alterar uma política de provisionamento de blueprint nesse momento do processo. A política de provisionamento do blueprint é escrita em JSON e anexada a uma função do IAM, para que possa provisionar os recursos especificados no modelo do blueprint. O AWS Control Tower cria essa função na conta do membro para que o Service Catalog possa implantar recursos usando conjuntos de AWS CloudFormation pilhas. A função é chamada AWSControlTower-BlueprintExecution-bp-xxxx. A AdministratorAccess política é aplicada aqui por padrão.

  5. Escolha as regiões Região da AWS ou regiões nas quais você deseja implantar contas com base nesse blueprint.

  6. Se o seu blueprint contiver parâmetros, você poderá inserir os valores dos parâmetros em campos adicionais no fluxo de trabalho do AWS Control Tower. Os valores adicionais podem incluir: um nome de GitHub repositório, uma GitHub filial, um nome de cluster do Amazon ECS e uma GitHub identidade para o proprietário do repositório.

  7. Você pode personalizar as contas posteriormente seguindo o processo de atualização da conta, se sua conta central ou seus planos ainda não estiverem prontos.

Para obter mais detalhes, consulte Crie uma conta personalizada a partir de um plano.