Práticas recomendadas de segurança preventiva do DynamoDB - Amazon DynamoDB

Práticas recomendadas de segurança preventiva do DynamoDB

As seguintes práticas recomendadas podem ajudar a antecipar e evitar incidentes de segurança no Amazon DynamoDB.

Criptografia inativa

O DynamoDB criptografa em repouso todos os dados de usuário gravados em tabelas, índices, streams e backups, usando chaves de criptografia armazenadas no AWS Key Management Service (AWS KMS). Isso oferece uma camada de proteção de dados adicional ao proteger seus dados contra acesso não autorizado ao armazenamento subjacente.

Você pode especificar se o DynamoDB deve usar um Chave pertencente à AWS (tipo de criptografia padrão), um Chave gerenciada pela AWS ou uma chave gerenciada pelo cliente para criptografar os dados do usuário. Para obter mais informações, consulte Criptografia em repouso do Amazon DynamoDB.

Usar perfis do IAM para autenticar o acesso ao DynamoDB

Para que usuários, aplicações e outros serviços da AWS possam acessar o DynamoDB, eles devem incluir credenciais da AWS válidas em suas solicitações à AWS API. Você não deve armazenar credenciais da AWS diretamente na aplicação ou na instância do EC2. Essas são credenciais de longo prazo que não são automaticamente alternadas e, portanto, podem ter impacto comercial significativo se forem comprometidas. Um perfil do IAM permite obter chaves de acesso temporárias que podem ser usadas para acessar os serviços e recursos da AWS.

Para ter mais informações, consulte Gerenciamento de identidade e acesso no Amazon DynamoDB.

Usar políticas o IAM para autorizações de base do DynamoDB

Ao conceder permissões, você decide quem as recebe, a quais APIs do DynamoDB as permissões se referem e as ações específicas que deseja permitir nesses recursos. A implementação do privilégio mínimo é fundamental para reduzir o risco de segurança e o impacto que pode resultar de erros ou usuários mal-intencionados.

Anexe políticas de permissões para identidades do IAM (ou seja, usuários, grupos e perfis) e, assim, dê permissões para eles executarem operações nos recursos do DynamoDB.

Para isso, você pode usar o seguinte:

Uso de condições de política do IAM para controle de acesso refinado

Ao conceder permissões no DynamoDB, você pode especificar as condições que determinam como uma política de permissões entra em vigor. A implementação do privilégio mínimo é fundamental para reduzir o risco de segurança e o impacto que pode resultar de erros ou usuários mal-intencionados.

É possível especificar as condições ao conceder permissões usando uma política do IAM. Por exemplo, você pode fazer o seguinte:

  • Conceder permissões a fim de permitir acesso somente leitura aos usuários para determinados itens e atributos em uma tabela ou um índice secundário.

  • Conceder permissões para permitir somente acesso de gravação aos usuários para determinados atributos em uma tabela com base na identidade desse usuário.

Para obter mais informações, consulte Como usar condições de política do IAM para um controle de acesso refinado.

Usar um endpoint da VPC e políticas para acessar o DynamoDB

Se você só precisa de acesso ao DynamoDB a partir de uma nuvem privada virtual (VPC), use um endpoint da VPC para limitar o acesso somente a partir da VPC requerida. Fazendo isso, você evita que o tráfego atravesse para a Internet pública e esteja sujeito a esse ambiente.

Com um endpoint da VPC para o DynamoDB, você tem controle e limita o acesso usando o seguinte:

  • Políticas de endpoint da VPC: essas políticas são aplicadas ao endpoint da VPC do DynamoDB. Elas permitem controle e limite de acesso da API à tabela do DynamoDB.

  • Politicas do IAM: ao usar a condição aws:sourceVpce nas políticas associadas a usuários, grupos ou perfis, você pode reforçar que todo o acesso à tabela do DynamoDB é feito por meio do endpoint da VPC especificado.

Para obter mais informações, consulte Endpoints para o Amazon DynamoDB.

Considere utilizar a criptografia do lado do cliente

Recomendamos que você planeje sua estratégia de criptografia antes de implementar sua tabela no DynamoDB. Se você armazenar dados confidenciais no DynamoDB, considere incluir a criptografia do lado do cliente em seu plano. Dessa forma, você poderá criptografar os dados o mais próximo possível de sua origem e garantir sua proteção durante todo o ciclo de vida. A criptografia dos seus dados confidenciais em trânsito e em repouso ajuda você a garantir que os dados em texto simples não estejam disponíveis a terceiros.

SDK de criptografia de banco de dados da AWS para o DynamoDB é uma biblioteca de software que ajuda a proteger os dados de tabela antes que eles sejam enviados ao DynamoDB. Ele criptografa, assina, verifica e descriptografa os itens da tabela do DynamoDB. Você controla quais atributos são criptografados e assinados.

Considerações sobre chave primária

Não use nomes confidenciais nem dados confidenciais em texto simples na chave primária para a tabela e os índices secundários globais. Os nomes das chaves aparecerão na definição da tabela. Por exemplo, os nomes de chave primária podem ser acessados por qualquer pessoa com permissão para chamar DescribeTable. Os valores das chaves podem aparecer no AWS CloudTrail e em outros logs. Além disso, o DynamoDB usa os valores das chaves para distribuir dados e direcionar solicitações, e os administradores da AWS podem observar os valores para manter a integridade do serviço.

Se você precisar usar dados confidenciais na tabela ou valores de chave de GSI, recomendamos usar criptografia de cliente de ponta a ponta. Isso permite que você faça referências de chave-valor aos dados e garanta que eles nunca apareçam sem criptografia nos logs relacionados do DynamoDB. Uma forma de fazer isso é usar o SDK de criptografia de banco de dados da AWS para DynamoDB, mas isso não é obrigatório. Se você usa sua própria solução, sempre é necessário utilizar um algoritmo de criptografia suficientemente seguro. Você não deve usar opções não criptográficas, como um hash, pois, na maioria das situações, elas não são consideradas suficientemente seguras.

Se os nomes de chave primária forem confidenciais, recomendamos usar `pk` e `sk` em vez disso. Essa é uma prática recomendada geral que flexibiliza o design da chave de partição.

Sempre consulte especialistas em segurança ou a equipe de contas da AWS se não souber ao certo qual seria a escolha certa.