AWS PrivateLink para DynamoDB - Amazon DynamoDB

AWS PrivateLink para DynamoDB

Com o AWS PrivateLink para o DynamoDB, é possível provisionar endpoints da Amazon VPC de interface (endpoints de interface) em sua nuvem privada virtual (Amazon VPC). Esses endpoints podem ser acessados diretamente por meio da VPN e do AWS Direct Connect pelas aplicações que estão no ambiente on-premises ou por emparelhamento da Amazon VPC pelas aplicações que estão em uma Região da AWS diferente. Usando endpoints de interface e o AWS PrivateLink, é possível simplificar a conectividade de rede privada das aplicações com o DynamoDB.

As aplicações na VPC não necessitam que endereços IP públicos se comuniquem com endpoints da VPC de interface do DynamoDB para operações do DynamoDB. Os endpoints de interface são representados por uma ou mais interfaces de rede elástica (ENIs) que recebem endereços IP privados de sub-redes na Amazon VPC. As solicitações para o DynamoDB por meio de endpoints de interface permanecem na rede da Amazon. Também é possível acessar endpoints de interface na Amazon VPC via aplicações on-premises por meio do AWS Direct Connect ou do AWS Virtual Private Network (AWS VPN). Para ter mais informações sobre como conectar a Amazon VPC à rede on-premises, consulte o Guia do usuário do AWS Direct Connect e o Guia do usuário do AWS Site-to-Site VPN.

Para ter informações gerais sobre endpoints de interface, consulte Interface Amazon VPC endpoints (AWS PrivateLink) no Guia do AWS PrivateLink.

Tipos de endpoint da Amazon VPC para o Amazon DynamoDB

É possível usar dois tipos de endpoints da VPC para acessar o Amazon DynamoDB: endpoints de gateway e endpoints de interface (usando o AWS PrivateLink). Endpoint de gateway é um gateway especificado na tabela de rotas para acessar o DynamoDB por meio da Amazon VPC pela rede da AWS. Os endpoints de interface estendem a funcionalidade dos endpoints de gateway usando endereços IP privados para rotear solicitações para o DynamoDB de dentro da Amazon VPC, do ambiente on-premises ou de uma Amazon VPC em outra Região da AWS usando emparelhamento da VPC ou o AWS Transit Gateway. Para ter mais informações, consulte What is Amazon VPC peering? em Transit Gateway vs Amazon VPC peering.

Os endpoints de interface são compatíveis com os endpoints de gateway. Se você tiver um endpoint de gateway na Amazon VPC, poderá usar os dois tipos de endpoint na mesma Amazon VPC.

Endpoints de gateway para o DynamoDB

Endpoints de interface para o DynamoDB

Em ambos os casos, o tráfego de rede permanece na rede AWS.

Usar endereços IP públicos do Amazon DynamoDB

Usar endereços IP privados da Amazon VPC para acessar o Amazon DynamoDB

Não permita o acesso pelo ambiente on-premises

Permitir acesso desde on-premises

Não permita o acesso por outra Região da AWS

Permitir acesso de um endpoint da Amazon VPC em outra Região da AWS usando emparelhamento da Amazon VPC ou o AWS Transit Gateway

Não faturado

Faturado

Para ter mais informações sobre endpoints de gateway, consulte Gateway Amazon VPC endpoints no Guia do AWS PrivateLink.

As considerações sobre a Amazon VPC se aplicam ao AWS PrivateLink para Amazon DynamoDB. Para obter mais informações, consulte Considerações sobre o endpoint de interface e Cotas do AWS PrivateLink no Guia do usuário do AWS PrivateLink. Além disso, aplicam-se as restrições a seguir.

O AWS PrivateLink para Amazon DynamoDB não é compatível com:

No momento, o AWS PrivateLink não comporta endpoints do Amazon DynamoDB Streams.

É possível enviar até 50 mil solicitações por segundo para cada endpoint do AWS PrivateLink habilitado.

nota

Os tempos limite de conectividade de rede com os endpoints do AWS PrivateLink não estão dentro do escopo das respostas de erro do DynamoDB e precisam ser tratados adequadamente pelas aplicações que se conectam aos endpoints do PrivateLink.

Criar um Amazon VPC endpoint

Para criar um endpoint de interface da Amazon VPC, consulte Create an Amazon VPC endpoint no Guia do AWS PrivateLink.

Acessar os endpoints de interface do Amazon DynamoDB

Ao criar um endpoint de interface, o DynamoDB gera dois tipos de nome de DNS do DynamoDB específicos do endpoint: regional e zonal.

  • Os nomes de DNS regionais incluem um ID de endpoint da Amazon VPC exclusivo, um identificador de serviço, a Região da AWS e vpce.amazonaws.com no respectivo nome. Por exemplo, para o ID de endpoint da Amazon VPC vpce-1a2b3c4d, o nome de DNS gerado pode ser semelhante a vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com.

  • Os nomes DNS zonais incluem a zona de disponibilidade. Por exemplo, vpce-1a2b3c4d-5e6f-us-east-1a.dynamodb.us-east-1.vpce.amazonaws.com. Você pode usar essa opção se sua arquitetura isola zonas de disponibilidade. Por exemplo, você pode usar para contenção de falhas ou para reduzir os custos regionais de transferência de dados.

Os nomes de DNS do DynamoDB específicos do endpoint podem ser resolvidos por meio do domínio de DNS público do DynamoDB.

Acessar tabelas do DynamoDB e operações de API de controle por meio dos endpoints da interface do DynamoDB

É possível usar a AWS CLI ou os SDKs da AWS para acessar as tabelas do DynamoDB e controlar as operações da API por meio dos endpoints de interface do DynamoDB.

Para acessar as tabelas do DynamoDB ou as operações da API de controle do DynamoDB por meio dos endpoints de interface do DynamoDB em comandos da AWS CLI, use os parâmetros --region e --endpoint-url.

Exemplo: Criar um endpoint da VPC

aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name dynamodb-service-name \ --vpc-id client-vpc-id \ --subnet-ids client-subnet-id \ --vpc-endpoint-type Interface \ --security-group-ids client-sg-id

Exemplo: Modificar um endpoint da VPC

aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-endpoint-id \ --policy-document policy-document \ #example optional parameter --add-security-group-ids security-group-ids \ #example optional parameter # any additional parameters needed, see Privatelink documentation for more details

Exemplo: Listar tabelas usando um URL de endpoint

No exemplo a seguir, substitua a região us-east-1 e o nome de DNS do ID de endpoint da VPC vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com por suas próprias informações.

aws dynamodb --region us-east-1 —endpoint https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com list-tables

Para acessar tabelas do DynamoDB ou operações de API de controle do DynamoDB por meio de endpoints de interface do DynamoDB ao usar os SDKs da AWS, atualize os SDKs para a versão mais recente. Depois, configure os clientes para usar um URL de endpoint para acessar uma tabela ou uma operação de API de controle do DynamoDB por meio de endpoints de interface do DynamoDB.

SDK for Python (Boto3)
Exemplo: Usar um URL de endpoint para acessar uma tabela do DynamoDB

No exemplo a seguir, substitua a região us-east-1 e o ID de endpoint da VPC https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com por suas próprias informações.

ddb_client = session.client( service_name='dynamodb', region_name='us-east-1', endpoint_url='https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com' )
SDK for Java 1.x
Exemplo: Usar um URL de endpoint para acessar uma tabela do DynamoDB

No exemplo a seguir, substitua a região us-east-1 e o ID de endpoint da VPC https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com por suas próprias informações.

//client build with endpoint config final AmazonDynamoDB dynamodb = AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration( new AwsClientBuilder.EndpointConfiguration( "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com", Regions.DEFAULT_REGION.getName() ) ).build();
SDK for Java 2.x
Exemplo: use um URL de endpoint para acessar um bucket do S3

No exemplo a seguir, substitua a região us-east-1 e o ID de endpoint da VPC https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com por suas próprias informações.

Region region = Region.US_EAST_1; dynamoDbClient = DynamoDbClient.builder().region(region) .endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com")) .build()

Atualizar uma configuração de DNS on-premises

Ao usar nomes de DNS específicos do endpoint para acessar os endpoints de interface do DynamoDB, não é necessário atualizar seu resolvedor de DNS on-premises. É possível resolver o nome de DNS específico do endpoint com o endereço IP privado do endpoint de interface pelo domínio de DNS público do DynamoDB.

Usar endpoints de interface para acessar o DynamoDB sem um endpoint de gateway ou um gateway da internet na Amazon VPC

Os endpoints de interface na Amazon VPC podem rotear aplicações na Amazon VPC e aplicações on-premises para o DynamoDB pela rede da Amazon, conforme ilustrado no diagrama a seguir.


          O diagrama de fluxo de dados mostra o acesso de aplicações on-premises e na Amazon VPC para o DynamoDB usando um endpoint de interface e o AWS PrivateLink.

O diagrama ilustra o seguinte:

  • Sua rede on-premises usa o AWS Direct Connect ou o AWS VPN para se conectar à Amazon VPC A.

  • Suas aplicações on-premises e na Amazon VPC A usam nomes de DNS específicos do endpoint para acessar o DynamoDB por meio do endpoint de interface do DynamoDB.

  • As aplicações on-premises enviam dados ao endpoint de interface na Amazon VPC por meio do AWS Direct Connect (ou do AWS VPN). O AWS PrivateLink move os dados do endpoint de interface para o DynamoDB por meio da rede da AWS.

  • As aplicações na Amazon VPC também enviam o tráfego ao endpoint de interface. O AWS PrivateLink move os dados do endpoint de interface para o DynamoDB por meio da rede da AWS.

Usar endpoints de gateway e de interface juntos na mesma Amazon VPC para acessar o DynamoDB

É possível criar endpoints de interface e reter o endpoint de gateway existente na mesma Amazon VPC, como mostra o diagrama a seguir. Ao adotar essa abordagem, você permite que as aplicações na Amazon VPC continuem acessando o DynamoDB por meio do endpoint de gateway, que não é cobrado. Depois, apenas as aplicações on-premises usariam endpoints de interface para acessar o DynamoDB. Para acessar o DynamoDB dessa maneira, é necessário atualizar as aplicações on-premises para usar nomes de DNS específicos do endpoint para DynamoDB.


          Diagrama de fluxo de dados mostrando o acesso ao DynamoDB por meio de endpoints de gateway e de interface juntos.

O diagrama ilustra o seguinte:

  • As aplicações on-premises usam nomes de DNS específicos do endpoint para enviar dados ao endpoint de interface dentro da Amazon VPC por meio do AWS Direct Connect (ou do AWS VPN). O AWS PrivateLink move os dados do endpoint de interface para o DynamoDB por meio da rede da AWS.

  • Usando nomes regionais padrão do DynamoDB, as aplicações na Amazon VPC enviam dados ao endpoint de gateway que se conecta ao DynamoDB pela rede da AWS.

Para ter mais informações sobre endpoints de gateway, consulte Gateway Amazon VPC endpoints no Guia do usuário da Amazon VPC.

Criar uma política de endpoint da Amazon VPC para o DynamoDB

É possível vincular uma política de endpoint ao endpoint da Amazon VPC que controla o acesso ao DynamoDB. Essa política especifica as seguintes informações:

  • A entidade principal do AWS Identity and Access Management (IAM) que pode executar ações

  • As ações que podem ser executadas

  • Os recursos nos quais as ações podem ser executadas

É possível criar uma política de endpoint que restrinja o acesso somente a tabelas específicas do DynamoDB. Esse tipo de política será útil se houver outros Serviços da AWS na Amazon VPC que usem tabelas. A política de tabela a seguir restringe o acesso somente a DOC-EXAMPLE-TABLE. Para usar essa política de endpoint, substitua DOC-EXAMPLE-TABLE pelo nome da tabela.

{ "Version": "2012-10-17", "Id": "Policy1216114807515", "Statement": [ { "Sid": "Access-to-specific-table-only", "Principal": "*", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem" ], "Effect": "Allow", "Resource": ["arn:aws:dynamodb:::DOC-EXAMPLE-TABLE", "arn:aws:dynamodb:::DOC-EXAMPLE-TABLE/*"] } ] }