View a markdown version of this page

Pilar Segurança - 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á.

Pilar Segurança

A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de uma arquitetura de data center e rede criada para atender aos requisitos das organizações mais sensíveis à segurança.

A segurança é uma responsabilidade compartilhada entre você AWS e você. O modelo de responsabilidade compartilhada descreve a segurança da nuvem e a segurança na nuvem:

  • Segurança da nuvem — AWS é responsável por proteger a infraestrutura que é executada Serviços da AWS no Nuvem AWS. AWS também fornece serviços que você pode usar com segurança. Auditores terceirizados testam e verificam regularmente a eficácia da AWS segurança como parte dos programas de AWS conformidade. Para saber mais sobre os programas de conformidade que se aplicam ao Amazon Neptune, consulte Serviços da AWS no escopo por programa de conformidade.

  • Segurança na nuvem — Sua responsabilidade é determinada pelo AWS service (Serviço da AWS) que você usa. Você também é responsável por outros fatores, incluindo a confidencialidade dos dados, os requisitos da empresa e as leis e regulamentos aplicáveis. Para obter mais informações sobre a privacidade de dados, consulte as Perguntas frequentes sobre privacidade de dados. Para obter mais informações sobre a proteção de dados na Europa, consulte a publicação do blog AWS Shared Responsibility Model and GDPR.

O pilar de segurança ajuda você a entender como aplicar o modelo de responsabilidade compartilhada ao usar o Neptune. Os tópicos a seguir mostram como configurar o Neptune para atender aos seus objetivos de segurança e conformidade. Você também aprenderá a usar outros Serviços da AWS que o ajudem a monitorar e proteger seus recursos do Neptune.

O pilar de segurança inclui as seguintes áreas principais de foco:

  • Segurança de dados

  • Segurança de rede

  • Autenticação e autorização

Implementar segurança de dados

Violações e contaminações de dados colocam seus clientes em risco e podem causar um impacto negativo substancial em sua empresa. As seguintes práticas recomendadas ajudam a proteger os dados de seus clientes contra exposição inadvertida e maliciosa:

  • Nomes de clusters, tags, grupos de parâmetros, funções AWS Identity and Access Management (IAM) e outros metadados não devem conter informações confidenciais ou sigilosas, pois esses dados podem aparecer em registros de faturamento ou diagnóstico.

  • URIs ou links para servidores externos armazenados como dados no Neptune não devem conter informações de credenciais para validar solicitações.

  • As instâncias criptografadas do Neptune fornecem uma camada adicional de proteção de dados, ajudando a proteger os dados contra acesso não autorizado ao armazenamento subjacente. É possível usar a criptografia do Neptune para aumentar a segurança dos dados das aplicações implantadas na nuvem. Você também pode usar a criptografia do Neptune para cumprir os requisitos de conformidade para dados em repouso.

    Para habilitar a criptografia para uma nova instância de banco de dados Neptune, escolha Sim na seção Habilitar criptografia no console do Neptune (selecionada por padrão) ou defina a propriedade em. AWS::Neptune::DBCluster::StorageEncrypted CloudFormation Se a criptografia estiver habilitada, o Neptune usará a chave gerenciada pela AWS do Amazon Relational Database Service (Amazon RDS) por padrão, ou você poderá criar uma chave gerenciada pelo cliente. Para obter informações sobre como criar uma instância de banco de dados do Neptune, consulte Creating a new Neptune DB cluster. Para obter mais detalhes, consulte Encrypting Neptune Resources at Rest. Seus snapshots automatizados e manuais usam a mesma criptografia que você selecionou para seu cluster do Neptune.

  • Ao usar as linguagens SPARQL e OpenCypher, pratique técnicas adequadas de validação e parametrização de entrada para evitar a injeção de SQL e outras formas de ataques. Evite criar consultas que usem concatenação de strings com entrada fornecida pelo usuário. Use consultas parametrizadas ou instruções preparadas para passar com segurança os parâmetros de entrada para o banco de dados de grafos. Para obter mais informações, consulte Examples of openCypher parameterized queries and SPARQL Injection Defence.

  • Para a linguagem Gremlin, use Gremlin Language Variants em vez de passar scripts Gremlin diretamente como strings, para evitar possíveis problemas de injeção.

Proteger suas redes

Um cluster de banco de dados do Amazon Neptune só pode ser criado em uma nuvem privada virtual (VPC) na AWS. Até o Neptune 1.4.6.0, os endpoints do cluster de banco de dados Neptune eram acessíveis somente dentro dessa VPC. A partir do Neptune 1.4.6.0 e versões posteriores, as instâncias do Neptune podem ser configuradas para serem acessíveis publicamente pela Internet. É uma prática recomendada usar esse recurso somente em ambientes que não sejam de produção para permitir o acesso simplificado ao Neptune para seus desenvolvedores (embora a autenticação do IAM seja sempre necessária para permitir a acessibilidade pública). Se você tiver a acessibilidade pública ativada, considere definir regras de grupo de segurança de entrada para a porta do seu banco de dados apenas para tráfego de endereço IP conhecido. Em ambientes de produção ou com clusters contendo dados confidenciais, proteja seus dados do Neptune não permitindo a acessibilidade pública e limitando o acesso à VPC em que seu cluster de banco de dados Neptune está localizado. Para obter mais informações, consulte Connecting to your Amazon Neptune graph.

Para proteger seus dados em trânsito, o Neptune impõe conexões SSL por meio de HTTPS a qualquer instância ou endpoint de cluster usando cifras e protocolos seguros. O Neptune fornece automaticamente certificados SSL para instâncias de banco de dados do Neptune. Os certificados SSL do Neptune são compatíveis somente com nomes de host de endpoint de cluster, endpoint de leitor e endpoint de instância.

Se você estiver usando um balanceador de carga ou um servidor proxy (como HAProxy), deverá usar a terminação SSL e ter seu próprio certificado SSL no servidor proxy. A passagem SSL não funciona porque os certificados SSL fornecidos não correspondem ao nome do host do servidor de proxy. Para obter mais informações sobre como se conectar aos endpoints do Neptune com o SSL, consulte Using the HTTP REST endpoint to connect to a Neptune DB instance.

Implementar autorização e autenticação

Para controlar quem pode realizar ações de gerenciamento do Neptune nos clusters e instâncias de banco de dados do Neptune, habilite a autenticação do banco de dados do IAM e use as credenciais do IAM. Ao se conectar à AWS usando as credenciais do IAM, seu perfil do IAM deve ter políticas do IAM que concedam as permissões necessárias para executar operações de gerenciamento do Neptune. Certifique-se de seguir o princípio de privilégio mínimo, concedendo somente as permissões necessárias para concluir uma tarefa. Para obter mais informações, consulte Using different kinds of IAM policies for controlling access to Neptune e IAM Authentication Using Temporary Credentials.

Para controlar quem pode se conectar a um cluster do Neptune e consultar os dados, é possível usar o IAM para autenticação na instância ou no cluster de banco de dados do Neptune. Se você habilitar a autenticação do IAM em um cluster de banco de dados do Neptune, qualquer pessoa que acesse o cluster de banco de dados deverá primeiro ser autenticada. Para obter mais informações, consulte Enabling IAM database authentication in Neptune para ver as etapas para habilitar a autenticação do IAM.

Quando a autenticação de banco de dados do IAM está habilitada, cada solicitação deve ser assinada usando o AWS Signature versão 4. Para entender como enviar solicitações assinadas para todos os endpoints do Neptune com a autenticação do IAM ativada, consulte Connecting and Signing with AWS Signature Version 4. Muitas bibliotecas e ferramentas, como awscurl, já oferecem suporte ao AWS Signature Version 4.

 Para interagir com outras pessoas Serviços da AWS, o Amazon Neptune usa funções vinculadas ao serviço do IAM. A função vinculada ao serviço é um tipo exclusivo de perfil do IAM vinculado diretamente ao Neptune. Os perfis vinculados ao serviço são predefinidos pelo Neptune e incluem todas as permissões que o serviço exige para chamar outros Serviços da AWS em seu nome. Para obter mais informações, consulte Using Service-Linked Roles for Neptune.