Segurança da infraestrutura no Amazon DynamoDB
Como um serviço gerenciado, o Amazon DynamoDB é protegido pelos procedimentos de segurança de redes globais da AWS que são descritos na proteção de segurança localizada no AWS Well-Architected Framework.
Você usa as chamadas de API publicadas da AWS para acessar o DynamoDB via rede. Os clientes podem usar TLS (Transport Layer Security) versão 1.2 ou 1.3. Os clientes também devem ter suporte a pacotes de criptografia com sigilo de encaminhamento perfeito (PFS) como Ephemeral Diffie-Hellman (DHE) ou Elliptic Curve Diffie-Hellman Encaminhamento (ECDHE). A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos. Além disso, as solicitações devem ser assinadas usando um ID da chave de acesso e uma chave de acesso secreta associada a uma entidade principal do IAM. Ou é possível usar o AWS Security Token Service (AWS STS) para gerar credenciais de segurança temporárias para assinar solicitações.
Você também pode usar um endpoint da VPC (nuvem privada virtual) para DynamoDB para permitir que instâncias do Amazon EC2 em sua VPC usem seus endereços IP privados para acessar o DynamoDB sem se expor à Internet pública. Para ter mais informações, consulte Usar endpoints da Amazon VPC para acessar o DynamoDB.
Usar endpoints da Amazon VPC para acessar o DynamoDB
Por motivos de segurança, muitos clientes da AWS executam suas aplicações em um ambiente da Amazon Virtual Private Cloud (Amazon VPC). Com a Amazon VPC, você pode executar instâncias do Amazon EC2 em uma nuvem privada virtual, a qual é isolada logicamente de outras redes, incluindo a Internet pública. Com uma Amazon VPC, você tem controle sobre o intervalo de endereços IP, as sub-redes, as tabelas de roteamento, os gateways de rede e as configurações de segurança.
nota
Se você criou a Conta da AWS após 4 de dezembro de 2013, você já tem uma VPC padrão em cada Região da AWS. Uma VPC padrão é fornecida pronta para ser usada. Você pode começar a usar sua VPC padrão imediatamente, sem precisar executar quaisquer etapas de configuração adicionais.
Para obter mais informações, consulte VPC padrão e sub-redes padrão no Guia do usuário da Amazon VPC.
Para acessar a Internet pública, a VPC deverá ter um gateway da Internet, um roteador virtual que conecta a VPC à Internet. Isso permite que as aplicações em execução no Amazon EC2 em sua VPC acessem recursos da Internet, como o Amazon DynamoDB.
Por padrão, as comunicações de e para o DynamoDB usam o protocolo HTTPS, o qual protege o tráfego de rede usando a criptografia SSL/TLS. O diagrama a seguir mostra uma instância do Amazon EC2 em uma VPC acessando o DynamoDB ao fazer com que o DynamoDB use um gateway da internet em vez de endpoints da VPC.
Muitos clientes têm preocupações legítimas com a segurança e a privacidade sobre o envio e o recebimento de dados pela Internet pública. Você pode abordar essas preocupações usando uma rede privada virtual (VPN) para rotear todo o tráfego de rede do DynamoDB por meio da sua infraestrutura de rede corporativa. No entanto, essa abordagem pode introduzir desafios de largura de banda e disponibilidade.
Os endpoints da VPC para DynamoDB podem minimizar esses desafios. Um endpoint da VPC para DynamoDB permite que instâncias do Amazon EC2 em sua VPC usem seus endereços IP privados para acessar o DynamoDB sem se expor à Internet pública. Suas instâncias do EC2 não precisam de endereços IP públicos, e você não precisa de um gateway da Internet, um dispositivo NAT ou um gateway privado virtual em sua VPC. Use as políticas de endpoint para controlar o acesso ao DynamoDB. O tráfego entre sua VPC e o serviço da AWS não sai da rede da Amazon.
nota
Mesmo ao usar endereços IP públicos, todas as comunicações de VPC entre instâncias e serviços hospedados na AWS são mantidas privadas na rede da AWS. Os pacotes originados da rede da AWS com um destino na rede da AWS permanecem na rede global da AWS, exceto o tráfego de ou para as regiões da AWS da China.
Quando você cria um endpoint da VPC para DynamoDB, quaisquer solicitações para um endpoint do DynamoDB dentro da região (por exemplo, dynamodb.us-west-2.amazonaws.com) são encaminhadas para um endpoint do DynamoDB privado dentro da rede da Amazon. Você não precisa modificar suas aplicações executadas em instâncias do EC2 em sua VPC. O nome do endpoint permanece o mesmo, mas a rota para o DynamoDB permanece inteiramente dentro da rede da Amazon, sem acesso à Internet pública.
O diagrama a seguir mostra como uma instância do EC2 em uma VPC pode usar um endpoint da VPC para acessar o DynamoDB.
Para ter mais informações, consulte Tutorial: usar um endpoint da VPC para o DynamoDB.
Compartilhar endpoints do Amazon VPC e do DynamoDB
Para permitir o acesso ao serviço DynamoDB por meio do endpoint do gateway de uma sub-rede da VPC, você deve ter permissões de conta de proprietário para essa sub-rede da VPC.
Depois que o endpoint do gateway da sub-rede da VPC tiver acesso ao DynamoDB, qualquer conta da AWS conta com acesso a essa sub-rede poderá usar o DynamoDB. Isso significa que todos os usuários da conta na sub-rede da VPC podem usar qualquer tabela do DynamoDB à qual tenham acesso. Isso inclui tabelas do DynamoDB associadas a uma conta diferente da sub-rede da VPC. O proprietário da sub-rede da VPC ainda pode impedir que qualquer usuário específico dentro da sub-rede use o serviço DynamoDB por meio do endpoint do gateway, se assim ele decidir.
Tutorial: usar um endpoint da VPC para o DynamoDB
Esta seção mostra como configurar e usar um endpoint da VPC para DynamoDB.
Tópicos
Etapa 1: iniciar uma instância do Amazon EC2
Nesta etapa, você inicia uma instância do Amazon EC2 em sua Amazon VPC padrão. Você então pode criar e usar um endpoint da VPC para DynamoDB.
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
Escolha Iniciar instância e faça o seguinte:
Etapa 1: escolher uma Imagem de máquina da Amazon (AMI)
-
Na parte superior da lista de AMIs, vá para Amazon Linux AMI (AMI do Amazon Linux) e escolha Select (Selecionar).
Etapa 2: escolher um tipo de instância
-
Na parte superior da lista de tipos de instância, escolha t2.micro.
-
Escolha Next: Configure Instance Details (Próximo: configurar detalhes da instância).
Etapa 3: configurar detalhes da instância
-
Vá para Network (Rede) e escolha sua VPC padrão.
Escolha Next: Add Storage (Próximo: adicionar armazenamento).
Etapa 4: adicionar armazenamento
-
Ignore esta etapa escolhendo Próximo: instância de tag.
Etapa 5: instância de tag
-
Ignore esta etapa escolhendo Próximo: configurar o grupo de segurança.
Etapa 6: configurar o grupo de segurança
-
Escolha Select an existing security group (Selecionar um grupo de segurança existente).
-
Na lista de grupos de segurança, escolha default (padrão). Este é o grupo de segurança padrão para sua VPC.
-
Escolha Próximo: revisar e executar.
Etapa 7: revisar a execução da instância
-
Escolha Launch (Executar).
-
-
Na janela Select an existing key pair or create a new key pair (Selecionar um par de chaves existente ou criar um novo par de chaves), siga um destes procedimentos:
-
Se você não tiver um par de chaves do Amazon EC2, escolha Create a new key pair (Criar um novo par de chaves) e siga as instruções. Você será solicitado a fazer download de um arquivo de chave privada (arquivo .pem), o qual será necessário no momento de fazer login na sua instância do Amazon EC2.
-
Se você já tiver um par de chaves existente do Amazon EC2, vá para Select a key pair (Selecionar um par de chaves) e escolha o seu par de chaves na lista. Você já deverá ter o arquivo de chave privada (arquivo .pem) disponível para fazer login na instância do Amazon EC2.
-
-
Após configurar o par de chaves, escolha Iniciar instâncias.
-
Retorne à página inicial do console do Amazon EC2 e escolha a instância que você iniciou. No painel inferior, na guia Description (Descrição), localize o Public DNS (DNS público) para sua instância. Por exemplo:
ec2-00-00-00-00.us-east-1.compute.amazonaws.com
.Anote esse nome DNS público, pois você precisará dele na próxima etapa deste tutorial (Etapa 2: configurar a instância do Amazon EC2).
nota
Serão necessários alguns minutos para que a sua instância do Amazon EC2 se torne disponível. Antes de ir para a próxima etapa, verifique se o Estado da instância é running
e se todas as suas Verificações de status foram aprovadas.
Etapa 2: configurar a instância do Amazon EC2
Quando sua instância do Amazon EC2 estiver disponível, você poderá fazer login e prepará-la para ser usada pela primeira vez.
nota
As etapas a seguir assumem que você está se conectando à sua instância do Amazon EC2 de um computador que executa o Linux. Para conferir outras maneiras de se conectar, consulte Conecte-se à sua instância do Linux no Guia do usuário do Amazon EC2.
-
É necessário autorizar o tráfego SSH de entrada para a sua instância do Amazon EC2. Para fazer isso, crie um novo security group EC2 e, em seguida, atribua o security group à sua instância do EC2.
-
No painel de navegação, escolha Grupos de segurança.
-
Escolha Create Security Group. Na janela Security group, faça o seguinte:
-
Nome do security group: digite um nome para seu grupo de segurança. Por exemplo:
my-ssh-access
-
Descrição – digite uma breve descrição para o security group.
-
VPC – escolha a VPC padrão.
-
Na seção Regras do security group, escolha Adicionar regra e faça o seguinte:
-
Tipo – escolha SSH.
-
Origem – escolha My IP.
-
Quando estiver satisfeito com as configurações, escolha Create (Criar).
-
-
No painel de navegação, escolha Instances (Instâncias).
-
Escolha a instância do Amazon EC2 que você iniciou em Etapa 1: iniciar uma instância do Amazon EC2.
-
Escolha Ações --> Rede --> Alterar security groups.
-
Em Change Security Groups (Alterar grupos de segurança), selecione o grupo de segurança que você criou anteriormente neste procedimento (por exemplo,
my-ssh-access
). O grupo de segurançadefault
existente também deve ser selecionado. Quando estiver satisfeito com as configurações, escolha Atribuir security group.
-
-
Use o comando
ssh
para fazer login na sua instância do Amazon EC2 conforme o exemplo a seguir.ssh -i
my-keypair.pem
ec2-user@public-dns-name
Você precisará especificar seu arquivo de chave privada (arquivo .pem) e o nome DNS público da sua instância. (Consulte Etapa 1: iniciar uma instância do Amazon EC2.)
O ID de login é
ec2-user
. Nenhuma senha é necessária. -
Configure as credenciais da AWS, conforme mostrado no exemplo a seguir. Insira o ID da chave de acesso da AWS, chave secreta e nome de região padrão quando solicitado.
aws configure
AWS Access Key ID [None]:
AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]:us-east-1
Default output format [None]:
Agora, você está pronto para criar um endpoint da VPC para DynamoDB.
Etapa 3: criar um endpoint da VPC para o DynamoDB
Nesta etapa, você criará um endpoint da VPC para DynamoDB e o testará para garantir que ele funcione.
-
Antes de começar, verifique se você pode se comunicar com o DynamoDB usando seu endpoint público:
aws dynamodb list-tables
A saída mostrará uma lista de tabelas do DynamoDB que você possui no momento. (Se você não tiver tabelas, a lista estará vazia).
-
Verifique se o DynamoDB é um serviço disponível para a criação de endpoints da VPC na região da AWS atual. (O comando é mostrada em negrito, seguido pelo exemplo de saída).
aws ec2 describe-vpc-endpoint-services
{ "ServiceNames": [ "com.amazonaws.us-east-1.s3", "com.amazonaws.us-east-1.dynamodb" ] }
No exemplo de saída, o DynamoDB é um dos serviços disponíveis, portanto, você pode prosseguir com a criação de um endpoint da VPC para ele.
-
Determine o identificador da VPC.
aws ec2 describe-vpcs
{ "Vpcs": [ { "VpcId": "vpc-0bbc736e", "InstanceTenancy": "default", "State": "available", "DhcpOptionsId": "dopt-8454b7e1", "CidrBlock": "172.31.0.0/16", "IsDefault": true } ] }
No exemplo de saída, o ID da VPC é
vpc-0bbc736e
. -
Crie o endpoint da VPC. Para o parâmetro
--vpc-id
, especifique o ID da VPC da etapa anterior. Use o parâmetro--route-table-ids
para associar o endpoint às tabelas de rotas.aws ec2 create-vpc-endpoint --vpc-id vpc-0bbc736e --service-name com.amazonaws.us-east-1.dynamodb --route-table-ids rtb-11aa22bb
{ "VpcEndpoint": { "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", "VpcId": "vpc-0bbc736e", "State": "available", "ServiceName": "com.amazonaws.us-east-1.dynamodb", "RouteTableIds": [ "rtb-11aa22bb" ], "VpcEndpointId": "vpce-9b15e2f2", "CreationTimestamp": "2017-07-26T22:00:14Z" } }
-
Verifique se você consegue acessar o DynamoDB por meio do endpoint da VPC.
aws dynamodb list-tables
Se desejar, experimente alguns outros comandos da AWS CLI para o DynamoDB. Para obter mais informações, consulte Referência de comandos da AWS CLI.
Etapa 4: limpar (opcional)
Para excluir os recursos que você criou neste tutorial, siga estes procedimentos:
Para remover seu endpoint da VPC para DynamoDB
-
Faça login em sua instância do Amazon EC2.
-
Determine o ID do endpoint da VPC.
aws ec2 describe-vpc-endpoints
{ "VpcEndpoint": { "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", "VpcId": "vpc-0bbc736e", "State": "available", "ServiceName": "com.amazonaws.us-east-1.dynamodb", "RouteTableIds": [], "VpcEndpointId": "vpce-9b15e2f2", "CreationTimestamp": "2017-07-26T22:00:14Z" } }
No exemplo de saída, o ID do VPC endpoint é
vpce-9b15e2f2
. -
Exclua o endpoint da VPC.
aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-9b15e2f2
{ "Unsuccessful": [] }
A matriz vazia
[]
indica o sucesso (não há solicitações malsucedidas).
Para terminar sua instância do Amazon EC2
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, escolha Instances (Instâncias).
-
Escolha a instância do Amazon EC2.
-
Escolha Actions (Ações), Instance State (Estado da instância), Terminate (Encerrar).
-
Na janela de confirmação, clique em Sim, encerrar.