Dimensionar personalizações da zona de aterragem no AWS
By Masoom Tulsiani, Cloud Solution Architect, Rackspace Technology
Introdução
À medida que as organizações adoptam estratégias de várias contas para suportar cargas de trabalho em nuvem em escala, as equipas de engenharia de plataformas estão sob pressão crescente para automatizar o aprovisionamento de contas e, ao mesmo tempo, satisfazer as necessidades de segurança e conformidade. A AWS Control Tower ajuda, fornecendo uma arquitetura de zona de aterragem consistente com protecções incorporadas - mas para muitas equipas, a necessidade de escalar configurações personalizadas entre contas exige uma abordagem mais flexível de infraestrutura como código.
É aí que entra a AWS Control Tower Account Factory for Terraform (AFT).
O AFT permite às equipas de plataforma gerir o aprovisionamento e a personalização de contas utilizando o Terraform, trazendo a automatização e os fluxos de trabalho GitOps para os ambientes AWS Control Tower. Quer necessite de integrar fornecedores de identidade externos, fornecer VPCs personalizados ou aplicar controlos de segurança em dezenas - ou centenas - de contas AWS, o AFT oferece uma forma estruturada e escalável de satisfazer essas necessidades sem sacrificar a governação.
Este blogue explora a forma como a AFT e o Landing Zone Accelerator (LZA) podem ajudá-lo a dimensionar as personalizações da zona de aterragem do AWS, evitar as armadilhas das abordagens ad hoc e criar uma base compatível e extensível para a arquitetura da nuvem da sua organização.
Compreender o desafio: dimensionar personalizações na AWS Control Tower
Embora a Torre de Controlo AWS forneça uma base sólida para ambientes com várias contas, a expansão para além da configuração pronta a utilizar pode apresentar desafios. Como as equipas individuais necessitam de funcionalidades específicas de rede, segurança ou identidade, os engenheiros de plataformas lutam frequentemente para encontrar um equilíbrio entre flexibilidade e normalização.
Áreas comuns de personalização
As zonas de aterragem de empresas requerem frequentemente alterações numa ou mais das seguintes categorias:
- Gestão de identidade e acesso (IAM): Integração com provedores de identidade externos, conjuntos de permissões personalizados e políticas de função refinadas.
- Segurança e conformidade: Ferramentas de segurança adicionais, normas de encriptação e políticas de controlo de serviços (SCP) personalizadas.
- Redes: Configurações personalizadas de VPC, esquemas de endereçamento IP, uso de Transit Gateway e regras de firewall centralizadas.
- Registo e governação: Regras personalizadas do AWS Config, configurações do CloudTrail, estratégias de marcação de recursos e catálogos de produtos pré-aprovados.
Compromissos entre flexibilidade e controlo
A personalização de uma zona de aterragem para satisfazer os requisitos da empresa significa, muitas vezes, divergir dos esquemas e das barreiras fornecidos pela AWS. Embora necessário, este facto introduz vários riscos:
- Implementações fragmentadas: As configurações personalizadas aumentam a complexidade e dificultam as futuras actualizações ou auditorias.
- Políticas inconsistentes entre contas: Sem uma aplicação centralizada, as políticas de segurança e de governação podem divergir.
- Custos operacionais: A implementação ou gestão manual de personalizações em todas as contas é propensa a erros e consome muito tempo.
As organizações em sectores regulamentados enfrentam uma pressão adicional para alinhar as configurações personalizadas com estruturas de conformidade como HIPAA, PCI-DSS ou GDPR. Isto torna a automatização, a repetição e a visibilidade essenciais em qualquer estratégia de personalização da zona de aterragem.
Visão geral da solução: Automatizando o provisionamento de contas com o AFT
O AWS Control Tower Account Factory for Terraform (AFT) ajuda as equipas de plataforma a automatizar o aprovisionamento de contas e os fluxos de trabalho de personalização utilizando o Terraform. O AFT funciona a partir de uma conta de gestão dedicada e segue um modelo baseado no GitOps - permitindo a criação de contas, a marcação e a personalização com base nas alterações de código no controlo de versões.
Eis como funciona a conduta AFT:
- Envio de pedidos de conta - Os pedidos são enviados para um repositório com controlo de versão e ingeridos pelo pipeline de acordo com o princípio "primeiro a entrar, primeiro a sair".
- Provisionamento de contas - A AFT provisiona cada conta dentro da conta de gestão da AWS Control Tower, incluindo os metadados necessários e as funções de IAM.
- Personalizações globais - Um pipeline de personalização aplica configurações padrão do Terraform a todas as contas provisionadas.
- Personalizações direcionadas - Para contas com necessidades de configuração específicas, o AFT pode aplicar alterações com âmbito de aplicação com base nos parâmetros do pedido. (Nota: para contas existentes, a personalização deve ser iniciada manualmente)
Principais caraterísticas do AFT
- Aprovisionamento de contas AWS em infraestrutura como código
- Fluxos de trabalho orientados para o GitOps integrados com o AWS CodePipeline
- Marcação automatizada e armazenamento de metadados
- Suporte para personalizações globais e específicas da conta
- Auditoria e rastreio integrados através do DynamoDB e do AWS Step Functions
- Suporte parcial para a importação de contas existentes da Torre de Controlo
Esta automatização não só acelera a integração de novas contas, como também reforça a consistência, a rastreabilidade e a conformidade com as políticas em todo o seu ambiente de nuvem.
Escolher a estrutura de personalização da zona de aterragem correta
Para além do AFT, a AWS oferece outras ferramentas para alargar e personalizar os ambientes da Torre de Controlo, nomeadamente o Landing Zone Accelerator (LZA) e Customizations for AWS Control Tower (CfCT). Cada solução tem diferentes pontos fortes, dependendo da escala da sua organização, dos requisitos de conformidade e das ferramentas preferidas.
Eis uma comparação de alto nível:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Limitações da AFT a ter em conta
Embora o AFT ofereça grandes vantagens em termos de automatização e personalização, também tem algumas limitações:
- O desprovisionamento não é suportado nativamente - a remoção de uma conta do pipeline não limpa totalmente os recursos.
- A atribuição de utilizadores SSO é obrigatória durante o aprovisionamento.
- A integração de IdP externo requer um esforço adicional de personalização.
- A criação de contas é assíncrona - os fluxos de trabalho são interrompidos até o aprovisionamento estar concluído.
- As condutas existentes ou as ferramentas da zona de aterragem devem ser retiradas antes de mudar para o AFT.
- Os conjuntos de permissões SSO para novas contas requerem automação personalizada (ainda não há suporte integrado).
Um olhar mais atento à arquitetura AFT
Para suportar o provisionamento e a personalização automatizados de contas, o AWS Control Tower Account Factory for Terraform (AFT) implementa vários serviços nativos do AWS como parte da sua arquitetura. Estes recursos são geridos a partir de uma conta de gestão AFT dedicada e seguem um design modular e orientado para eventos que se integra perfeitamente com o AWS CodePipeline, DynamoDB, Step Functions e IAM.
No centro da solução está um pipeline GitOps baseado no Terraform que detecta alterações no controlo de versões, desencadeia fluxos de trabalho de aprovisionamento e aplica personalizações com base na estrutura do repositório e nos parâmetros de entrada.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Funções e contas principais
O AFT depende de várias funções de IAM entre contas para orquestrar com segurança o provisionamento e a personalização:
- AWSAFTAdmin: Implantada na conta de gerenciamento do AFT, essa função permite que o pipeline assuma outras funções do AFT e coordene operações entre contas.
- Serviço AWSAFTS: Trata de acções relacionadas com o aprovisionamento de novas contas AWS.
- AWSAFTExecução: Criado em cada conta provisionada. Esta função concede ao AFT permissão para aplicar personalizações baseadas no Terraform e aceder ao portfólio do Account Factory.
A função AWSAFTAdmin é fundamental para a orquestração entre contas. Assume a função AWSAFTExecution nas contas de destino - incluindo as contas de auditoria, arquivo de registo e membro - para executar acções de personalização e aplicar linhas de base de configuração.
O diagrama abaixo ilustra como estas funções interagem entre contas de gestão, auditoria, arquivo de registos e membros num ambiente AWS Control Tower:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Como o CodePipeline se integra com o Terraform e o DynamoDB
O AWS CodePipeline criado pelo AFT monitora repositórios controlados por versão para alterações nas configurações de solicitação de conta e personalização. Quando uma alteração é detectada, como a criação de uma nova solicitação de conta, o pipeline inicia um trabalho do CodeBuild que aplica a configuração correspondente do Terraform.
Como parte deste processo, o AFT gera um item DynamoDB que contém a especificação da conta e os metadados. Isto permite à AFT controlar e auditar a atividade de aprovisionamento e aplicar configurações consistentes em todos os ambientes.
Um exemplo é o projeto aft-global-customizations-terraform, que inclui um arquivo backend.tf para configurar o gerenciamento de estado remoto para o Terraform usando S3 e DynamoDB. Isto garante um bloqueio de estado fiável e um armazenamento seguro das definições de infraestrutura durante as implementações de personalização global.
Exemplo: configuração backend.tf utilizada pelo CodeBuild no projeto de personalizações globais do AFT:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Personalização AFT através de repositórios modulares
A AFT utiliza uma abordagem modular à automatização, baseando-se num conjunto de repositórios apoiados em Git que correspondem a diferentes fases do ciclo de vida da conta. Esses repositórios são monitorados pelo AWS CodePipeline e usados para automatizar os fluxos de trabalho de provisionamento e personalização.
Principais repositórios de módulos AFT
- aft-account-request: Este repositório é o ponto de entrada para o aprovisionamento. Contém os ficheiros de configuração que definem os novos pedidos de conta AWS, incluindo metadados como a colocação de OU, etiquetas e parâmetros de personalização.
- aft-global-customizations: Usado para definir recursos baseados em Terraform ou Python que devem ser implantados em todas as contas provisionadas por meio do AFT. Isto garante uma configuração de base consistente para ferramentas de segurança, rede ou conformidade.
- aft-account-customizations: Este repositório permite personalizações direcionadas para contas individuais. O comportamento personalizado é acionado com base no parâmetro account_customizations_name especificado na solicitação de conta, permitindo variações por conta (por exemplo, sandbox vs. produção).
- aft-account-provisioning-customizations: Focado na personalização do pipeline de provisionamento em si, este repositório define a lógica executada pelo AWS Step Functions durante a criação da conta. Suporta a integração com sistemas externos através do AWS Lambda, ECS ou Fargate, e pode comunicar com outros sistemas através do Amazon SNS ou SQS para uma orquestração mais avançada.
Em conjunto, estes módulos proporcionam às equipas da plataforma um controlo refinado sobre a forma como as contas AWS são criadas, configuradas e geridas - tudo num ambiente totalmente automatizado e com controlo de versões.
Oleoduto AFT
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Automação de contas passo a passo dentro do pipeline AFT
Quando um novo pedido de conta é enviado através do repositório aft-account-request, o pipeline AFT automatiza todos os passos do processo de aprovisionamento e personalização. Isto garante que cada conta é entregue num estado consistente, seguro e totalmente compatível - pronta para suportar as cargas de trabalho AWS da sua organização.
Fases da conduta AFT
- Validar o pedido de conta O pipeline verifica se os parâmetros de entrada cumprem as políticas de formatação e governação necessárias antes de iniciar o aprovisionamento.
- Recuperar metadados da conta Assim que a conta é criada, o AFT captura os principais detalhes - como o ID da conta AWS - para uso na automação downstream.
- Armazenar metadados no DynamoDB Os dados da conta são gravados em uma tabela do DynamoDB na conta de gerenciamento do AFT, oferecendo suporte à rastreabilidade e à auditabilidade.
- Criar a função IAM AWSAFTExecution Esta função é implementada na nova conta, dando à AFT as permissões necessárias para efetuar personalizações e aceder ao portfólio do Account Factory.
- Aplicar etiquetas de conta As etiquetas definidas no pedido - tais como ambiente, proprietário ou centro de custos - são aplicadas para apoiar a governação e a visibilidade da faturação.
- Aplicar opções de recursos do AFT As opções de configuração padrão definidas durante a implantação do AFT (por exemplo, excluir VPCs padrão, habilitar eventos de dados do CloudTrail) são aplicadas à nova conta.
- Executar personalizações de aprovisionamento Uma máquina de estado Step Functions acciona um fluxo de trabalho Terraform a partir do repositório aft-account-provisioning-customizations. Estas definições de infra-estruturas são aplicadas durante o aprovisionamento para cumprir requisitos de configuração específicos.
- Criar um pipeline de personalização ao nível da conta É gerado um AWS CodePipeline dedicado para cada nova conta para suportar outras personalizações globais ou direcionadas.
- Invocar o pipeline de personalizações de conta Configurações adicionais - como políticas de IAM, VPCs, ferramentas de segurança ou SCPs - são aplicadas por meio do pipeline definido em after-account-customizations.
- Enviar notificações de sucesso ou insucesso É publicada uma notificação num tópico do Amazon SNS, indicando se o processo de aprovisionamento e personalização da conta foi concluído com êxito ou se encontrou problemas.
Ao automatizar estas dez etapas, a AFT fornece um pipeline de ponta a ponta que agiliza a criação de contas AWS, mantendo a conformidade com as normas organizacionais e de segurança da Torre de Controlo.
Funções de etapa para orquestrar o fluxo de trabalho de aprovisionamento
Como parte do pipeline AFT, o AWS Step Functions desempenha um papel fundamental na coordenação do processo de provisionamento de contas. A máquina de estados actua como o motor de orquestração para tarefas sequenciais como a criação de funções, marcação, personalização e configuração de pipelines.
Cada etapa da máquina de estados corresponde a uma operação distinta no ciclo de vida de uma conta AWS recém-provisionada. Este fluxo estruturado torna o quadro AFT mais resistente, auditável e modular.
A imagem abaixo ilustra a arquitetura da máquina de estados utilizada pelo pipeline de aprovisionamento de contas a posteriori:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Visão geral do fluxo de trabalho da máquina de estados
- Validar a entrada de pedidos de conta Assegura que todos os parâmetros necessários estão presentes e em conformidade com a política.
- Recuperar detalhes da conta Captura os metadados da nova conta, incluindo o ID da conta.
- Armazenar metadados no DynamoDB Grava informações da conta na tabela DynamoDB da conta de gerenciamento do AFT.
- Criar função IAM AWSAFTExecution Implementa a função na nova conta, permitindo que o AFT execute personalizações.
- Aplicar etiquetas de conta Adiciona etiquetas de metadados para identificação, faturação e automatização.
- Aplicar opções de recursos Ativa todos os sinalizadores de recursos definidos durante a configuração do AFT (por exemplo, remoção de VPC, eventos de dados do CloudTrail).
- Executar personalizações de provisionamento Executa a lógica de personalização definida no repositório da estrutura de provisionamento.
- Criar CodePipeline para personalizações Cria um pipeline dedicado para configurações de pós-provisionamento.
- Invocar o pipeline de personalização Acciona tarefas específicas de infraestrutura, segurança ou governação.
- Enviar notificação SNS Publica uma mensagem de sucesso ou fracasso num tópico SNS para monitorização do estado.
Este modelo orientado para a máquina de estado faz do AFT uma solução robusta e escalável para gerir o aprovisionamento de contas à escala empresarial.
Tabelas DynamoDB usadas pelo AFT
Como parte da implantação do AFT, cinco tabelas do DynamoDB são criadas na conta de gerenciamento do AFT. Estas tabelas armazenam metadados, acompanham os pedidos de aprovisionamento de contas e apoiam a automatização e a auditabilidade dos fluxos de trabalho AFT.
Abaixo estão as principais tabelas do DynamoDB associadas ao AFT:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
==> Tradução: Equipa PT-Subs Sincronia: Ir para a tabela de pedidos de assistência -> Clicar em Exportar e fluxos
Contém as funções lambda que são acionadas quando a atualização chega às tabelas do DynamoDB.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Os accionadores são utilizados para invocar a função Lambda sempre que um item DD é alterado.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Os accionadores são:
aft-account-request-action-trigger - implementação efectiva de novas contas
aft-account-request-audit-trigger - prepara a auditoria
SQS
As filas SQS abaixo (Tipo: FIFO) são criadas como parte de aft-account-request:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Abaixo mostra-se a máquina de estados da estrutura de aprovisionamento de contas.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Personalizações AFT
O AWS Control Tower Account Factory for Terraform (AFT) suporta nativamente personalizações globais e específicas da conta, facilitando a criação e gestão automatizadas de recursos AWS de base para contas provisionadas ou importadas para o AFT. Durante o processo de execução do pipeline, os fornecedores Terraform são instanciados dinamicamente para cada conta através de um modelo Jinja, assegurando a aplicação de configurações globais e específicas da conta de uma forma simplificada e consistente.
Personalização da conta AWS criada por meio do AFT Depois de implantar uma nova conta usando o AFT, é possível implementar personalizações para atender aos requisitos específicos da sua organização. O AFT suporta as seguintes capacidades de personalização:
- Configurações personalizadas.
- Defina modelos personalizados que aplicam funções IAM específicas, políticas de controlo de serviços (SCPs) ou configurações de segurança às contas recém-criadas.
- Módulos do Terraform para recursos personalizados:
- Crie módulos adicionais do Terraform para provisionar recursos como VPCs, instâncias do EC2 e buckets do S3 na conta recém-criada.
- Políticas automatizadas de conformidade e governação:
- Aproveite a integração do AFT com a AWS Control Tower para impor as melhores práticas de segurança, aplicando controlos preventivos ou de deteção através de guardrails e SCPs.
- Automatização pós-provisionamento:
Personalize o processo pós-provisionamento para incluir tarefas operacionais, como marcação de conta, configurações de registo ou implementações de pilha CloudFormation. Estas tarefas podem ser automatizadas utilizando scripts Terraform como parte do seu pipeline AFT.
Personalização do AFT: Função e políticas do IAM
É possível incluir funções e políticas personalizadas do IAM no repositório aft-account-customizations
.
Exemplo: Para incluir uma política de IAM personalizada, coloque-a no seguinte caminho relativo: aft-account-customizations//terraform/iam.tf
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Personalização do AFT - VPC
O módulo AFT inclui um parâmetro aft_enable_vpc
que determina se a AWS Control Tower provisiona recursos de conta dentro de um VPC na conta de gerenciamento do AFT. Por defeito, este parâmetro é definido como true
.
Se definido como false
, o AFT é implantado sem criar recursos de rede privada, como gateways NAT ou pontos de extremidade VPC.
É possível criar um VPC personalizado como parte das personalizações específicas da conta, colocando a configuração do Terraform no seguinte caminho relativo: aft-account-customizations/SANDBOX/terraform/vpc.tf
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Funções IAM AFT para SSO
AWSAFTAdmin
- Criado durante a implementação do AFT na conta de gestão do AFT.- O pipeline
aft-account-provisioning
usa essa função para assumir a funçãoAWSAFTExecution
na conta de gerenciamento e anexar um conjunto de permissões a um grupo SSO do AWS existente.
Um ficheiro iam.tf
suporta este comportamento utilizando os seguintes recursos do Terraform:
aws_ssoadmin_account_assignment
aws_ssoadmin_permission_set_inline_policy
Estes recursos fazem referência ao ARN do grupo SSO de destino.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Exemplo: Configuração do AWS IAM Identity Center com o Terraform
O exemplo abaixo mostra como configurar o AWS IAM Identity Center usando o Terraform, incluindo a criação de conjuntos de permissões e a anexação de políticas em linha.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Alguns clientes exigem a capacidade de anexar conjuntos de permissões a contas AWS recém-atendidas como parte do processo de provisionamento de contas.
O diagrama abaixo ilustra um caso de utilização de um cliente que mostra como um conjunto de permissões personalizado é anexado a um grupo SSO existente durante a criação de uma conta através do fluxo de trabalho AFT aft-account-provisioning
.
- Esta solução gere a ligação de conjuntos de permissões a um grupo SSO como parte das fases de aprovisionamento e personalização do AFT.
- Utiliza os seguintes recursos do Terraform:
aws_ssoadmin_account_assignment
aws_ssoadmin_permission_set_inline_policy
Para mais informações, consulte a documentação do Registo do Terraform.
Funções IAM AFT para integração de SSO
AWSAFTAdmin
- Criado durante a implementação do AFT na conta de gestão do AFT.- O pipeline
aft-account-provisioning
usa essa função para assumir a funçãoAWSAFTExecution
na conta de gerenciamento e anexar um conjunto de permissões a um grupo SSO do AWS existente.
Esta configuração é definida num ficheiro iam.tf
utilizando os seguintes recursos do Terraform:
aws_ssoadmin_account_assignment
aws_ssoadmin_permission_set_inline_policy
Estes recursos fazem referência ao ARN do grupo SSO para completar a atribuição.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Sequência de fluxo de trabalho para anexação de conjunto de permissões SSO
- O pipeline
aft-account-request
é acionado quando é apresentado um novo pedido de conta. - Em seguida, o pipeline
aft-account-provisioning
é executado, usando uma máquina de estado do AWS Step Functions para gerenciar o fluxo de trabalho de provisionamento. - Durante o provisionamento, o pipeline usa a função
AWSAFTAdmin
para assumir a funçãoAWSAFTExecution
na conta de gerenciamento e anexar um conjunto de permissões ao grupo SSO do AWS existente.
Este processo é definido no ficheiro iam.tf
utilizando os seguintes recursos do Terraform:
aws_ssoadmin_account_assignment
aws_ssoadmin_permission_set_inline_policy
Fazem referência ao ARN do grupo SSO de destino.
Integração com o Microsoft Entra ID
O AFT também suporta configurações de SSO que se integram com fornecedores de identidade externos, como o Microsoft Entra ID (anteriormente Azure AD).
5. Estratégia de aplicação
Configurar a fábrica de contas da Torre de Controlo AWS para o Terraform (AFT)
Para configurar o AFT no seu ambiente AWS, comece por criar um ficheiro main.tf que chama o módulo AFT. Este módulo simplifica o aprovisionamento e a personalização de contas AWS na Control Tower, garantindo um processo consistente e automatizado de infraestrutura como código.
É necessário fornecer seis parâmetros essenciais aquando da configuração do módulo:
- ct_management_account_id: O ID da sua conta de gestão da AWS Control Tower.
- log_archive_account_id: O ID da sua conta do Arquivo de registos.
- audit_account_id: O ID da sua conta de Auditoria.
- aft_management_account_id: O ID da sua conta de gestão AFT.
- ct_home_region: A região da AWS onde a Torre de Controle da AWS está implantada.
- tf_backend_secondary_region: A região secundária para replicação de back-end.
Os parâmetros opcionais incluem:
- terraform_distribution (predefinição: Terraform de código aberto)
- vcs_provider (predefinição: AWS CodeCommit)
Estas opções podem ser personalizadas para corresponder aos requisitos do seu ambiente.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Modelo CloudFormation para a função AWSControlTowerExecution
O exemplo abaixo mostra um modelo do CloudFormation usado para configurar a função IAM AWSControlTowerExecution em uma conta de destino. Isso permite que a conta de gerenciamento assuma a função por meio do AWS STS durante as operações de conjunto de pilha:
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Pré-requisitos para registar contas existentes na AWS Control Tower
Antes de registar contas AWS existentes (como contas de Auditoria ou de Arquivo de registos) na Torre de Controlo, tem de garantir que o AWS Config está totalmente limpo. Deste modo, evitam-se conflitos durante a instalação de trilhos e barreiras de proteção geridos pela Torre de Controlo.
Visão geral do AWS Config
O AWS Config usa um gravador de configuração para rastrear alterações nas configurações de recursos. Um gravador de configuração deve estar ativo antes que o AWS Config possa registrar as alterações de recursos. Cada região AWS de uma conta suporta um único gravador e canal de entrega.
Passos para preparar as contas existentes:
- Desativar o AWS Config Se a conta tiver recursos do AWS Config existentes, estes devem ser totalmente removidos antes do registo.
- Eliminar o gravador de configuração existente e o canal de entrega Este passo assegura que a Torre de Controlo pode criar e gerir os seus próprios trilhos sem interferências.
Use a CLI do AWS para excluir o gravador de configuração padrão:
bash
CopiarEditar
aws configservice delete-configuration-recorder --configuration-recorder-name default
Em cada região (por exemplo, eu-central-1
), suprimir o seguinte:
- Gravador de configuração predefinida (a Torre de Controlo criará um novo gravador)
- Canal de entrega predefinido
Por exemplo, os utilizadores do PowerShell podem utilizar Remove-CFGConfigurationRecorder
para eliminar o gravador. Após a eliminação, o AWS deixa de seguir as alterações de configuração, mas os dados registados anteriormente ainda podem ser acedidos utilizando Get-ResourceConfigHistory
. Tenha em atenção que os dados históricos deixarão de estar visíveis na consola AWS Config.
Para mais informações, consultar o guia de resolução de problemas da Torre de Controlo .
Recursos adicionais
Para obter instruções mais detalhadas sobre como interromper o AWS Config e limpar os recursos existentes, consulte a documentação oficial do AWS:
- Parar e iniciar um gravador de configuração (AWS Config)
- Registo de contas com recursos existentes do AWS Config
- Exclusão de um canal de entrega usando a CLI do AWS
Notas importantes:
- Depois de excluir o gravador de configuração, o AWS pára de gravar as alterações de configuração - mas os dados gravados anteriormente são mantidos. Ainda é possível recuperar esses dados históricos usando o cmdlet
Get-ResourceConfigHistory
, embora eles não estejam mais disponíveis no console do AWS Config. - Para eliminar um canal de entrega utilizando o PowerShell, deve primeiro parar o gravador de configuração. Utilize
Stop-CFGConfigurationRecorder
antes de executarRemove-CFGDeliveryChannel
.
Exemplo: Verificar e eliminar canais de distribuição existentes
Utilize o AWS CLI ou o PowerShell para listar e remover quaisquer canais de entrega existentes antes do registo na Torre de Controlo. Desta forma, garante-se que não existem conflitos quando a Torre de Controlo disponibiliza o seu próprio gravador de configuração e canal de entrega.
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Verificar se o canal de distribuição foi eliminado
< entidade drupal data-align="left" data-embed-button="media_entity_embed" data-entity-embed-display="view_mode:media.full" data-entity-type="media" data-entity-uuid="ffc70d81-8bc0-42e9-b646-2faec089e354" data-langcode="en"> < /drupal-entity>
Função IAM necessária e relação de confiança
Para inscrever uma conta AWS existente na Control Tower, a conta já deve conter a função IAM AWSControlTowerExecution
.
Antes de tentar efetuar o registo, certifique-se de que a seguinte função e relação de confiança estão configuradas na conta de destino:
- Designação da função:
AWSControlTowerExecution
- Permissões: Anexar a política gerida pelo AWS
AdministratorAccess
- Relação.
json
CopiarEditar
{
}
]
}
Esta relação de confiança permite à conta de gestão da Torre de Controlo assumir a função e gerir recursos na conta registada.
Para obter mais informações, consulte a documentação oficial da AWS .
Política necessária: AWSServiceCatalogEndUserFullAccess
Para registar contas utilizando a consola AWS Control Tower, tem de iniciar sessão como utilizador (não como conta raiz) com as seguintes permissões:
AWSServiceCatalogEndUserFullAccess
policy- Acesso de administrador para utilizar a consola da Torre de Controlo AWS
As credenciais de utilizador raiz não são suportadas para esta operação.
Universidade Tecnológica de Munster
A Universidade Tecnológica de Munster (MTU) é uma das universidades técnicas mais prestigiadas da Irlanda. Está a liderar a inovação na computação quântica através do lançamento do QCloud - o primeiro ambiente de computação quântica em nuvem da Irlanda. Este projeto dá aos investigadores acesso a recursos de computação quântica e ajuda a acelerar a investigação científica na Irlanda e não só.
A MTU estabeleceu uma parceria com a Rackspace Technology para conceber e implementar uma infraestrutura AWS segura e escalável que suporta a iniciativa QCloud.
Desafio
A MTU precisava de uma AWS Landing Zone segura e com custos controlados para integrar várias universidades e suportar uma vasta gama de cargas de trabalho quânticas. Os principais desafios incluíam:
- Conceber uma AWS Landing Zone escalável com permissões IAM granulares
- Suporte de cargas de trabalho quânticas baseadas no EC2 e no AWS Braket
- Aplicação de controlos orçamentais a nível do projeto e isolamento a nível da conta
O que a Rackspace forneceu
A Rackspace concebeu e implementou uma zona de aterragem multi-OU utilizando a AWS Control Tower Account Factory for Terraform (AFT). O ambiente incluía fluxos de trabalho de personalização de contas, controlo de custos centralizado e um livro de execução para gerir o aprovisionamento de universidades adicionais.
Os componentes fornecidos incluem:
- Zona de aterragem da torre de controlo AWS e pipeline de personalização AFT
- Livro de execução do Terraform para configuração do AFT e integração de contas
- Provisionamento de contas com consciência orçamental e controlo centralizado de custos
- Arquitetura escalável e com várias contas que suporta cargas de trabalho EC2 e AWS Braket
Resultado
- Permitiu a integração de universidades externas no âmbito do quadro GÉANT EU OCRE
- Gestão centralizada de utilizadores, custos e infra-estruturas para todas as instituições participantes
- Promoveu a colaboração nacional e internacional entre equipas de investigação
______________________________________________________________________________
Melhores práticas para implementações AFT
As práticas recomendadas a seguir podem ajudá-lo a implantar, gerenciar e dimensionar zonas de aterrissagem baseadas em AFT com mais eficiência:
- Modularize as configurações do Terraform Divida os módulos para criação de contas, personalização e governação.
- Utilize o controlo de versões para todo o código Armazene as configurações do Terraform no Git para permitir a colaboração e a auditabilidade.
- Adotar um fluxo de trabalho GitOps Utilizar o Git como a fonte da verdade e acionar condutas a partir de alterações no repositório.
- Definir configurações de base Utilizar a AFT para aplicar normas de IAM, segurança e redes.
- Implementar o acesso com privilégios mínimos Limitar as funções e políticas de administração apenas ao necessário.
- Monitorar e auditar contas Habilitar o AWS Config, CloudTrail e GuardDuty para visibilidade e conformidade.
- Utilize o processo de venda automática de contas AFT Automatize o aprovisionamento de novas contas com a aplicação de políticas incorporadas.
- Aplicar uma estratégia de etiquetagem Aplicar etiquetas consistentes de recursos e contas para atribuição de custos e automatização.
- Gestão de estado seguro Armazene o estado do Terraform no S3 com encriptação e utilize o DynamoDB para bloqueio.
- Automatize as personalizações de conta Use pipelines AFT para aplicar SCPs, StackSets e configurações específicas do ambiente.
- Implementar CI/CD para Terraform Validar e implementar alterações automaticamente utilizando pipelines CI/CD.
- Gerir o ciclo de vida da conta Automatizar a desativação e a limpeza da conta para minimizar o risco.
- Utilize a segmentação do ambiente Crie contas separadas para desenvolvimento, teste e produção para isolar as cargas de trabalho.
- Desativar os pontos finais da VPC quando não forem necessários Reduza os custos desnecessários desactivando os pontos finais da VPC não utilizados.
- Eliminar os recursos existentes do AWS Config antes do registo
Remover os registadores de configuração e os canais de entrega através do CLI para evitar conflitos.
Considerações sobre preços
Abaixo está uma amostra dos custos de linha de base relacionados à Torre de Controle da AWS para um ambiente de cliente usando o AFT na região eu-central-1
. Os custos reais variam consoante a dimensão da carga de trabalho, a atividade da API e a estrutura da conta.
Exemplo de custos mensais e utilização de recursos
- Amazon CloudWatch
- ~$0.03 total
- $0,0094 por 1.000 métricas solicitadas (
GetMetricData
API)
- Catálogo de serviços AWS
- ~$0,09 (as primeiras 1.000 chamadas à API estão incluídas no nível gratuito)
- Exemplo: 1.200 chamadas API = $0,14
- Configuração AWS
- 4.010 itens de configuração registados = ~$9,84
- Taxa: $0,00282 por item (região da Irlanda)
- AWS CloudTrail
- ~$34 por mês (com todas as regiões activadas)
- $0,00002 por evento pago
- Sugestão: Ativar o CloudTrail apenas em regiões selecionadas para reduzir os custos
- Exemplo: 8.000 eventos = ~$0,16
- Gateways NAT
- 2 Gateways NAT públicos na VPC de gestão do AFT = ~$60/mês
- O AFT cria duas VPCs predefinidas com ligação NAT Gateway
- Pontos de extremidade VPC
- 24 pontos de extremidade do PrivateLink criados como parte da VPC de gerenciamento do AFT
- Custo estimado: $175-$200/mês
- 23 destes são pontos finais do tipo interface
- Amazon S3 (estado do Terraform e instantâneos)
- Exemplo de utilização: 119.2 MB (abaixo do nível gratuito de 1 GB)
- Custo atual: ~$0,02
- AFT CodePipelines
- 3-4 pipelines (por exemplo,
ct-aft-account-request
,ct-aft-customization
,ct-aft-account-provisioning-customizations
) - Custo total: ~$6/mês
- 3-4 pipelines (por exemplo,
- AWS KMS (encriptação)
- 2 chaves KMS utilizadas pela AFT = ~$5/mês
- Amazon DynamoDB
- 5 quadros na conta de gestão AFT/conta de fábrica
- Custo estimado: <$3 atualmente; até ~$29/mês se for aumentado para 1 GB
Utilização atual: <50 KB no total, ~120 bytes por item em média
Simplificar a gestão do ciclo de vida das contas com o AFT
A AWS Control Tower Account Factory for Terraform (AFT) oferece uma estrutura poderosa para as organizações que adoptam a Infraestrutura como Código para gerir contas AWS em escala. Não só simplifica o aprovisionamento de contas, como também suporta a personalização avançada, a automatização e a aplicação de políticas - tudo dentro dos limites da AWS Control Tower.
Neste guia, explorou a forma de criar novas contas utilizando o AFT e de aplicar personalizações globais e ao nível da conta. Ao integrar o Terraform no ciclo de vida da conta, as organizações podem criar uma base de nuvem mais eficiente, repetível e segura que suporte o crescimento sem sacrificar a governança.
Fontes e referências citadas nesta publicação do blogue:
https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html
https://medium.com/cloud-native-daily/automate-aws-sso-using-terraform-2f219a45c16f
https://docs.aws.amazon.com/controltower/latest/userguide/existing-config-resources.html
https://medium.com/cloud-native-daily/automate-aws-sso-using-terraform-2f219a45c16f

Recent Posts
Dimensionar personalizações da zona de aterragem no AWS
Maio 1st, 2025
Relatório sobre o estado da nuvem em 2025
Janeiro 10th, 2025
Padrões de rede híbrida do Google Cloud - Parte 2
Outubro 16th, 2024
Padrões de rede híbrida do Google Cloud - Parte 2
Outubro 15th, 2024