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á.
Anexar automaticamente uma política gerenciada pela AWS para Systems Manager aos perfis de instância do EC2 usando o Cloud Custodian e o AWS CDK
Criado por Ali Asfour (AWS) e Aaron Lennon (AWS)
Ambiente: PoC ou piloto | Tecnologias: DevOps; DevelopmentAndTesting; Gestão e governança; Segurança, identidade, conformidade; Infraestrutura | Workload: código aberto |
Serviços da AWS: Amazon SNS; Amazon SQS; CodeBuild AWS; AWS; CodePipeline AWS Systems Manager; AWS CodeCommit |
Resumo
É possível integrar instâncias do Amazon Elastic Compute Cloud (Amazon EC2) com o AWS Systems Manager para automatizar tarefas operacionais e oferecer mais visibilidade e controle. Para se integrarem ao Systems Manager, as instâncias do EC2 devem ter um AWS Systems Manager Agent (SSM Agent) instalado e uma política AmazonSSMManagedInstanceCore
do AWS Identity and Access Management (IAM) anexada aos perfis de instância deles.
No entanto, se você quiser garantir que todos os perfis de instância do EC2 tenham a política AmazonSSMManagedInstanceCore
anexada, você pode enfrentar desafios ao atualizar novas instâncias do EC2 que não têm perfis de instância ou instâncias do EC2 que têm um perfil de instância, mas não têm a política AmazonSSMManagedInstanceCore
. Também pode ser difícil adicionar essa política em várias contas da Amazon Web Services (AWS) e regiões da AWS.
Esse padrão ajuda a resolver esses desafios implantando três políticas de Cloud Custodian
A primeira política do Cloud Custodian verifica as instâncias do EC2 existentes que têm um perfil de instância, mas não têm a política
AmazonSSMManagedInstanceCore
. A políticaAmazonSSMManagedInstanceCore
é então anexada.A segunda política do Cloud Custodian verifica as instâncias do EC2 existentes sem um perfil de instância e adiciona um perfil de instância padrão que tem a política
AmazonSSMManagedInstanceCore
anexada.A terceira política do Cloud Custodian cria funções do AWS Lambda
em suas contas para monitorar a criação de instâncias e perfis de instância do EC2. Isso garante que a política AmazonSSMManagedInstanceCore
seja anexada automaticamente quando uma instância do EC2 for criada.
Esse padrão usa as DevOps ferramentas da AWS
Pré-requisitos e limitações
Pré-requisitos
Duas ou mais contas ativas da AWS. Uma conta é a conta de segurança e as outras são contas de membros.
Permissões para provisionar recursos na conta de segurança. Esse padrão usa permissões de administrador, mas você deve conceder permissões de acordo com os requisitos e as políticas da sua organização.
Capacidade de assumir um perfil do IAM da conta de segurança até as contas dos membros e criar os perfis do IAM necessários. Para obter mais informações, consulte Delegar acesso entre contas da AWS usando perfis do IAM na documentação do IAM.
AWS Command Line Interface (AWS CLI), instalada e configurada. Para fins de teste, você pode configurar a AWS CLI usando o comando
aws configure
ou definindo variáveis de ambiente. Importante: não é recomendado para ambientes de produção e recomendamos que essa conta somente conceda acesso com privilégio mínimo. Para obter mais informações, consulte Conceder privilégio mínimo na documentação do IAM.O arquivo
devops-cdk-cloudcustodian.zip
(anexado), transferido por download para o computador local.Familiaridade com o Python.
As ferramentas necessárias (Node.js, AWS Cloud Development Kit (AWS CDK) e Git), instaladas e configuradas. Você pode usar o arquivo
install-prerequisites.sh
no arquivodevops-cdk-cloudcustodian.zip
para instalar essas ferramentas. Certifique-se de executar esse arquivo com privilégios de raiz.
Limitações
Embora esse padrão possa ser usado em um ambiente de produção, certifique-se de que todas as políticas e perfis do IAM atendam aos requisitos e políticas da sua organização.
Versões do pacote
Cloud Custodian versão 0.9 ou mais recente
TypeScript versão 3.9.7 ou posterior
Node.js versão 14.15.4 ou superior
npm
versão 7.6.1 ou mais recenteAWS CDK versão 1.96.0 ou superior
Arquitetura
O diagrama mostra o seguinte fluxo de trabalho:
As políticas do Cloud Custodian são enviadas para um CodeCommit repositório da AWS na conta de segurança. Uma regra da Amazon CloudWatch Events inicia automaticamente o CodePipeline pipeline da AWS.
O pipeline busca o código mais recente CodeCommit e o envia para a parte de integração contínua do pipeline de integração contínua e entrega contínua (CI/CD) gerenciado pela AWS. CodeBuild
CodeBuild executa as DevSecOps ações completas, incluindo a validação da sintaxe da política nas políticas do Cloud Custodian, e executa essas políticas no
--dryrun
modo de verificar quais recursos foram identificados.Se não houver erros, a próxima tarefa alertará o administrador para revisar as alterações e aprovar a implantação nas contas dos membros.
Pilha de tecnologia
AWS CDK
CodeBuild
CodeCommit
CodePipeline
IAM
Cloud Custodian
Automação e escala
O módulo de pipelines do AWS CDK provisiona um pipeline de CI/CD que é usado CodePipeline para orquestrar a criação e o teste do código-fonte CodeBuild, além da implantação de recursos da AWS com pilhas da AWS. CloudFormation É possível usar esse padrão para todas as contas-membro e regiões da organização. Você também pode estender a pilha Roles creation
para implantar outros perfis do IAM em suas contas de membros.
Ferramentas
O AWS Cloud Development Kit (AWS CDK) é uma estrutura de desenvolvimento de software para definir a infraestrutura de nuvem em código e provisioná-la por meio da AWS. CloudFormation
O AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
CodeBuildA AWS é um serviço de construção totalmente gerenciado na nuvem.
CodeCommitA AWS é um serviço de controle de versão que você pode usar para armazenar e gerenciar ativos de forma privada.
CodePipelineA AWS é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para lançar seu software.
O AWS Identity and Access Management é um serviço da web que ajuda você a controlar o acesso aos recursos da AWS com segurança.
O Cloud Custodian
é uma ferramenta que unifica dezenas de ferramentas e os scripts que muitas organizações usam para gerenciar suas contas de nuvem pública em uma ferramenta de código aberto. O Node.js
é um JavaScript tempo de execução criado no JavaScript motor V8 do Google Chrome.
Código
Para obter uma lista detalhada dos módulos, perfis da conta, arquivos e comandos de implantação usados nesse padrão, consulte o arquivo README
no arquivo devops-cdk-cloudcustodian.zip
(em anexo).
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Configure o CodeCommit repositório. |
Para obter mais informações sobre isso, consulte Criação de um CodeCommit repositório na CodeCommit documentação da AWS. | Desenvolvedor |
Instale as ferramentas necessárias | Use o arquivo Para obter mais informações, consulte Pré-requisitos na seção de Conceitos básicos do AWS CDK na documentação do AWS CDK. | Desenvolvedor |
Instale os pacotes AWS CDK obrigatórios. |
Os pacotes a seguir são exigidos pelo AWS CDK e estão incluídos no arquivo
| Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Atualize as variáveis necessárias. | Abra o
| Desenvolvedor |
Atualize o arquivo account.yml com as informações da conta do membro. | Para executar a ferramenta c7n-org Cloud Custodian
| Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Inicialize a conta de segurança. | Inicialize
| Desenvolvedor |
Opção 1: inicialize automaticamente as contas dos membros. | Se a variável Se necessário, é possível atualizar Novas contas adicionadas à variável | Desenvolvedor |
Opção 2: inicialize manualmente as contas dos membros. | Embora não seja recomendável usar essa abordagem, você pode definir o valor de
Importante: certifique-se de atualizar os valores Você também pode usar outras abordagens para inicializar as contas dos membros, por exemplo, com a AWS CloudFormation. Para obter mais informações, consulte Inicialização na documentação do AWS CDK. | Desenvolvedor |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie os perfis do IAM nas contas dos membros. | Execute o seguinte comando para implantar a pilha
| Desenvolvedor |
Implante a pilha de pipeline do Cloud Custodian. | Execute o seguinte comando para criar o pipeline
| Desenvolvedor |
Recursos relacionados
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip