Configuração e operação seguras do ADDF - AWS Orientação prescritiva

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

Configuração e operação seguras do ADDF

O Autonomous Driving Data Framework (ADDF) deve ser tratado como um software personalizado que requer manutenção e cuidados contínuos por uma equipe dedicada de DevOps e segurança em sua organização. Esta seção descreve tarefas comuns relacionadas à segurança que ajudam você a configurar e operar o ADDF em todo o seu ciclo de vida.

Esta seção inclui as seguintes tarefas:

Definindo sua arquitetura ADDF

Uma instância ADDF é tão segura quanto o ambiente Conta da AWS em que é implantado. Esse ambiente de Conta da AWS deve ser projetado para atender às necessidades operacionais e de segurança de seu caso de uso específico. Por exemplo, as tarefas e considerações relacionadas à segurança e às operações para configurar uma instância do ADDF em um ambiente de prova de conceito (PoC) são diferentes daquelas para configurar o ADDF em um ambiente de produção.

Executar o ADDF em um ambiente PoC

Se você pretender usar o ADDF em um ambiente de PoC, é recomendável criar uma Conta da AWS dedicada para o ADDF que não contenha nenhuma outra workload. Isso ajuda a manter sua conta segura enquanto você explora o ADDF e seus recursos. Estes são os benefícios desta abordagem: 

  • No caso de uma configuração incorreta grave do ADDF, nenhuma outra workload seria afetada adversamente.

  • Não há risco de qualquer outra configuração incorreta da workload que possa afetar adversamente a configuração do ADDF.

Mesmo para um ambiente de PoC, ainda recomendamos que você siga todas as práticas recomendadas listadas em Executar o ADDF em um ambiente de produção quanto possível.

Executar o ADDF em um ambiente de produção

Se você pretende usar o ADDF em um ambiente de produção corporativo, é altamente recomendável que você considere as práticas recomendadas de segurança da sua organização e implemente o ADDF adequadamente. Além das práticas recomendadas de segurança da sua organização, recomendamos que você implemente o seguinte:

  • Crie uma equipe de DevOps ADDF comprometida e de longo prazo: o ADDF precisa ser tratado como um software personalizado. Ela exige manutenção e cuidados contínuos de uma equipe dedicada de DevOps. Antes de começar a executar o ADDF em um ambiente de produção, uma equipe de DevOps com tamanho e recursos suficientes deve ser definida com um compromisso total de recursos, até o final da vida útil da implantação do ADDF.

  • Use uma arquitetura de várias contas: cada instância do ADDF deve ser implantada em seu próprio ambiente dedicado de várias contas da AWS, sem nenhuma outra workload não relacionada. Conforme definido no AWSgerenciamento e separação de contas (AWS Well-Architected Framework), a prática recomendada é separar recursos e workloads em várias Contas da AWS com base nos requisitos da sua organização. Isso ocorre porque uma Conta da AWS atua como um limite de isolamento. Uma arquitetura de várias contas da AWS projetada corretamente fornece categorização da workload e reduz o escopo do impacto no caso de uma violação de segurança, em comparação com uma arquitetura de conta única. Usar uma arquitetura de várias contas também ajuda suas contas a permanecerem dentro de suas cotas do Serviço da AWS. Distribua seus módulos do ADDF em tantas Contas da AWS quanto forem necessárias para atender aos requisitos de segurança e separação de funções da sua organização.

  • Implemente várias instâncias do ADDF: configure quantas instâncias separadas do ADDF forem necessárias para desenvolver, testar e implantar adequadamente os módulos do ADDF de acordo com os processos de desenvolvimento de software da sua organização. Ao configurar várias instâncias do ADDF, é possível usar uma das abordagens a seguir:

    • Várias instâncias do ADDF em diferentes ambientes com várias contas da AWS: você pode usar separadamente as Contas da AWS para isolar diferentes instâncias do ADDF. Por exemplo, se sua organização tem estágios dedicados de desenvolvimento, teste e produção, você pode criar instâncias do ADDF separadas e contas dedicadas para cada estágio. Isso oferece muitos benefícios, como reduzir o risco de propagação de qualquer erro entre os estágios, ajudar você a implementar um processo de aprovação e restringir o acesso do usuário somente a determinados ambientes. A imagem a seguir mostra duas instâncias do ADDF implantadas em ambientes separados com várias contas.

      Duas instâncias do ADDF em ambientes separados da AWS que têm arquiteturas de várias contas
    • Várias instâncias do ADDF no mesmo ambiente de várias contas da AWS: você pode criar várias instâncias do ADDF que compartilhem o mesmo ambiente de várias contas da AWS. Isso cria efetivamente ramificações isoladas nas mesmas Contas da AWS. Por exemplo, se diferentes desenvolvedores estiverem trabalhando em paralelo, um desenvolvedor poderá criar uma instância dedicada do ADDF nas mesmas Contas da AWS. Isso ajuda os desenvolvedores a trabalharem em ramificações isoladas para fins de desenvolvimento e teste. Se você usar essa abordagem, para cada instância do ADDF, seus recursos do ADDF deverão ter nomes de recursos exclusivos. Por padrão, isso é compatível com módulos pré-fornecidos pelo ADDF. Você pode usar essa abordagem, desde que não exceda as cotas do Serviço da AWS. A imagem a seguir mostra duas instâncias do ADDF implantadas em ambientes com várias contas compartilhadas.

      Duas instâncias do ADDF implantadas no mesmo ambiente de várias contas da AWS.
    • Várias instâncias do ADDF no mesmo ambiente de conta única da AWS: essa arquitetura é muito semelhante ao exemplo anterior. A diferença é que as várias instâncias do ADDF são implantadas em um ambiente de conta única em vez de em um ambiente de várias contas. Essa arquitetura pode se adequar a casos de uso de ADDF muito simples que têm um escopo muito limitado e vários desenvolvedores trabalhando em diferentes ramificações ao mesmo tempo.

      Duas instâncias do ADDF implantadas no mesmo ambiente de conta única da AWS.

    Como o SeedFarmer é a única ferramenta que controla as implantações de uma instância do ADDF, você pode criar qualquer ambiente e arquitetura de conta que se adapte à estratégia de implantação e aos processos de CI/CD da sua organização.

  • Personalize o processo de bootstrap do AWS Cloud Development Kit (AWS CDK) de acordo com os requisitos de segurança da sua organização: por padrão, o AWS CDK atribui a política gerenciada AdministratorAccess da AWS durante o processo de bootstrapping. Essa política concede privilégios administrativos completos. Se a política for muito permissiva para os requisitos de segurança da organização, você poderá personalizar quais políticas serão aplicadas. Para obter mais informações, consulte Política personalizada de privilégios mínimos para o perfil de implantação do AWS CDK..

  • Siga as práticas recomendadas ao configurar o acesso no IAM: estabeleça uma solução de acesso do AWS Identity and Access Management (IAM) estruturada que permita que seus usuários acessem as Contas da AWS do ADDF. A estrutura do ADDF foi projetada para aderir ao princípio de privilégio mínimo. Seu padrão de acesso do IAM também deve seguir o princípio de privilégio mínimo, deve estar em conformidade com os requisitos da sua organização e deve aderir às práticas recomendadas de segurança no IAM (documentação do IAM).

  • Configure a rede de acordo com as práticas recomendadas da sua organização: o ADDF inclui uma pilha do AWS CloudFormation de rede opcional que cria uma nuvem privada virtual (VPC) pública ou privada básica. Dependendo da configuração da sua organização, essa VPC pode expor recursos diretamente na Internet. Recomendamos que você siga as práticas recomendadas de rede da sua organização e crie um módulo de rede personalizado com segurança reforçada.

  • Implemente medidas de prevenção, detecção e mitigação de segurança no nível da Conta da AWS: a AWS oferece vários serviços de segurança, como o Amazon GuardDuty, o AWS Security Hub, o Amazon Detective e o AWS Config. Habilite esses serviços em sua Conta da AWS do ADDF e integre os processos de prevenção, detecção, mitigação e tratamento de incidentes de segurança de sua organização. Recomendamos que você siga as Práticas recomendadas de segurança, identidade e conformidade (AWS Architecture Center) e quaisquer recomendações específicas do serviço contidas na documentação desse serviço. Para obter mais informações, consulte Documentação de segurança da AWS.

O ADDF não aborda nenhum desses tópicos porque os detalhes de implementação e configuração dependem muito dos requisitos e processos específicos da sua organização. Em vez disso, é uma responsabilidade crucial da sua organização abordar esses tópicos. Normalmente, a equipe que gerencia sua zona de destino da AWSajuda você a planejar e implementar seu ambiente do ADDF.

Configuração inicial

Configure o ADDF de acordo com o Guia de implantação do ADDF (GitHub). O ponto de partida para qualquer implantação é a pasta /manifest no repositório Git Hub autonomous-driving-data-framework. A pasta /manifest/example-dev contém um exemplo de implantação para fins de demonstração. Use esse exemplo como ponto de partida para projetar sua própria implantação. Nesse diretório, há um arquivo de manifesto de implantação do ADDF chamado deployment.yaml. Ele contém todas as informações para o SeedFarmer gerenciar, implantar ou excluir o ADDF e seus recursos na Nuvem AWS. Você pode criar grupos de módulos do ADDF em arquivos dedicados. O core-modules.yaml é um exemplo de grupo de módulos principais e inclui todos os módulos principais fornecidos pelo ADDF. Para resumir, o arquivo deployment.yaml contém todas as referências aos grupos e módulos que serão implantados em suas contas de destino e especifica a ordem de implantação.

Para uma configuração segura e compatível, especialmente em um ambiente que não serve para prova de conceito, recomendamos que você revise o código-fonte de cada módulo que você pretende implantar. De acordo com as práticas recomendadas de fortalecimento de segurança, você deve implantar somente os módulos necessários para o caso de uso pretendido.

nota

Os módulos do ADDF na pasta modules/demo-only/ não têm segurança reforçada e não devem ser implantados em ambientes de produção ou em qualquer ambiente com dados confidenciais ou protegidos. Esses módulos estão incluídos para mostrar os recursos do sistema, e você pode usá-los como base para criar seus próprios módulos personalizados e com segurança reforçada.

Personalizar o código da estrutura de implantação do ADDF

A estrutura de implantação do ADDF e sua lógica de orquestração e implantação podem ser totalmente personalizadas para atender a quaisquer requisitos. No entanto, sugerimos que você evite personalizar ou minimizar suas alterações pelos seguintes motivos:

  • Mantenha compatibilidade upstream: a compatibilidade upstream facilita atualizar o ADDF com os recursos e atualizações de segurança mais recentes. A alteração da estrutura rompe a compatibilidade nativa com versões anteriores do SeedFarmer, do CodeSeeder e de qualquer módulo principal do ADDF.

  • Consequências de segurança: alterar a estrutura de implantação do ADDF pode ser uma tarefa complexa que pode ter consequências de segurança não intencionais. No pior cenário, mudanças na estrutura podem criar vulnerabilidades de segurança.

Quando possível, crie e personalize seu próprio código de módulo em vez de modificar a estrutura de implantação do ADDF e o código do módulo principal do ADDF.

nota

Se você acha que partes específicas da estrutura de implantação do ADDF precisam ter a segurança aprimorada ou reforçada, contribua com suas alterações para o repositório do ADDF por meio de uma pull request. Para obter mais informações, consulte Revisões e contribuições de segurança de código aberto.

Escrever módulos personalizados no ADDF

Criar um novo módulo do ADDF ou estender um módulo existente é um conceito central do ADDF. Ao criar ou personalizar módulos, sugerimos que você siga as práticas recomendadas de segurança gerais da AWS e as práticas recomendadas de codificação segura da sua organização. Além disso, recomendamos que você realize revisões técnicas de segurança internas ou externas iniciais e periódicas, com base nos requisitos de segurança da sua organização, para reduzir ainda mais o risco de problemas de segurança.

Implantações do ADDF recorrentes

Implante o ADDF e seus módulos conforme descrito no Guia de implantação do ADDF (GitHub). Para oferecer suporte a implantações recorrentes do ADDF que adicionam, atualizam ou removem recursos em suas contas de destino, o SeedFarmer usa hashes MD5, armazenados no Parameter Store de sua cadeia de ferramentas e contas de destino, para comparar a infraestrutura atualmente implantada com a infraestrutura definida nos arquivos de manifesto em sua base de código local.

Essa abordagem segue o paradigma do GitOps, em que seu repositório de origem (a base de código local em que você opera o SeedFarmer) é a fonte da verdade e a infraestrutura declarada explicitamente nele é o resultado desejado de sua implantação. Para obter mais informações sobre o GitOps, consulte O que é o GitOps (site do GitLab).

Auditorias de segurança recorrentes

Assim como qualquer outro software em sua organização, integre o ADDF e seu código do módulo ADDF personalizado em seu ciclo de gerenciamento de riscos de segurança, análise de segurança e auditoria de segurança.

Atualizações do ADDF

O ADDF recebe atualizações regulares como parte de seu esforço contínuo de desenvolvimento. Isso inclui atualizações de recursos e melhorias e correções relacionadas à segurança. Recomendamos que você verifique regularmente as novas versões da estrutura e aplique as atualizações em tempo hábil. Para obter mais informações, consulte Etapas para atualizar o ADDF (documentação do ADDF).

Descomissionamento

Se o ADDF não for mais necessário, exclua o ADDF e todos os recursos relacionados de suas Contas da AWS. Qualquer infraestrutura autônoma e não utilizada incorre em custos desnecessários e representa um possível risco de segurança. Para obter mais informações, consulte Etapas para destruir o ADDF (documentação do ADDF).