

# AWS PrivateLink para DynamoDB Streams
<a name="privatelink-streams"></a>

Com o AWS PrivateLink para Amazon DynamoDB Streams, é possível provisionar endpoints de interface da Amazon VPC (endpoints de interface) em sua nuvem privada virtual (Amazon VPC). Esses endpoints podem ser acessados diretamente por meio da VPN e do 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 o AWS PrivateLink e endpoints de interface, é possível simplificar a conectividade de rede privada das aplicações com o DynamoDB Streams.

As aplicações na Amazon VPC não necessitam que endereços IP públicos se comuniquem com o DynamoDB Streams usando endpoints da interface da Amazon VPC para operações do DynamoDB Streams. 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 ao DynamoDB Streams 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 Direct Connect ou do AWS Virtual Private Network (AWS VPN). Para ter mais informações sobre como conectar sua AWS Virtual Private Network à rede on-premises, consulte o [https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) e o [https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html). 

Para ter informações gerais sobre endpoints de interface, consulte [Interface Amazon VPC endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) (AWS PrivateLink).

**nota**  
Somente endpoints de interface são aceitos no DynamoDB Streams. Endpoints de gateway não são aceitos.

**Topics**
+ [Considerações ao usar o AWS PrivateLink para Amazon DynamoDB Streams](#privatelink-streams-considerations)
+ [Criar um Amazon VPC endpoint](#privatelink-streams-vpc-endpoint)
+ [Acessar os endpoints de interface do Amazon DynamoDB Streams](#privatelink-streams-accessing-ddb-interface-endpoints)
+ [Acessar operações de API do DynamoDB Streams por meio de endpoints da interface do DynamoDB Streams](#privatelink-streams-accessing-api-operations-from-interface-endpoints)
+ [AWSExemplos de SDK](#privatelink-streams-aws-sdk-examples)
+ [Criar uma política de endpoint da Amazon VPC para o DynamoDB Streams](#privatelink-streams-creating-vpc-endpoint-policy)
+ [Usar endpoints do DynamoDB com acesso privado ao Console de gerenciamento da AWS](#ddb-streams-endpoints-private-access)

## Considerações ao usar o AWS PrivateLink para Amazon DynamoDB Streams
<a name="privatelink-streams-considerations"></a>

As considerações sobre a Amazon VPC se aplicam ao AWS PrivateLink para Amazon DynamoDB Streams. Para ter mais informações, consulte [Interface endpoint considerations](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) e [AWS PrivateLink quotas](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html). As restrições a seguir são aplicáveis.

O AWS PrivateLink para Amazon DynamoDB Streams não é compatível com o seguinte: 
+ Transport Layer Security (TLS) 1.1
+ Serviços de Sistema de Nomes de Domínio (DNS) privados e híbridos

**Importante**  
Não crie zonas hospedadas privadas para substituir os nomes de DNS dos endpoints do DynamoDB Streams para rotear o tráfego para os endpoints da interface. As configurações de DNS do DynamoDB podem mudar com o tempo, e substituições personalizadas de DNS podem fazer com que as solicitações sejam roteadas inesperadamente por endereços IP públicos em vez de seus endpoints de interface.   
 Para acessar o DynamoDB Streams por meio do AWS PrivateLink, configure seus clientes para usar diretamente a URL do endpoint da VPC da Amazon (por exemplo `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.region.vpce.amazonaws.com`).

**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 AWS PrivateLink.

## Criar um Amazon VPC endpoint
<a name="privatelink-streams-vpc-endpoint"></a>

Para criar um endpoint de interface da Amazon VPC, consulte [Create an Amazon VPC endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) no *Guia do AWS PrivateLink*.

## Acessar os endpoints de interface do Amazon DynamoDB Streams
<a name="privatelink-streams-accessing-ddb-interface-endpoints"></a>

Ao criar um endpoint de interface, o DynamoDB gera dois tipos de nome de DNS do DynamoDB Streams 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.streams.dynamodb.us-east-1.vpce.amazonaws.com`.
+ Os nomes DNS *zonais* incluem a zona de disponibilidade. Por exemplo, `vpce-1a2b3c4d-5e6f-us-east-1a.streams.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.

## Acessar operações de API do DynamoDB Streams por meio de endpoints da interface do DynamoDB Streams
<a name="privatelink-streams-accessing-api-operations-from-interface-endpoints"></a>

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

### Exemplos da AWS CLI
<a name="privatelink-streams-aws-cli-examples"></a>

Para acessar as operações de API ou do DynamoDB Streams por meio dos endpoints de interface do DynamoDB Streams 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 com.amazonaws.us-east-1.dynamodb-streams \
--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.streams.dynamodb.us-east-1.vpce.amazonaws.com` por suas próprias informações.

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

## AWSExemplos de SDK
<a name="privatelink-streams-aws-sdk-examples"></a>

Para acessar operações de API do Amazon DynamoDB Streams por meio de endpoints de interface do DynamoDB Streams 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 uma operação de API do DynamoDB Streams por meio de endpoints de interface do DynamoDB Streams.

------
#### [ SDK for Python (Boto3) ]

**Exemplo: usar um URL de endpoint para acessar um fluxo do DynamoDB**  
No exemplo a seguir, substitua a região `us-east-1` e o ID de endpoint da VPC `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` por suas próprias informações.

```
ddb_streams_client = session.client(
service_name='dynamodbstreams',
region_name='us-east-1',
endpoint_url='https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com'
)
```

------
#### [ SDK for Java 1.x ]

**Exemplo: usar um URL de endpoint para acessar um fluxo do DynamoDB**  
No exemplo a seguir, substitua a região `us-east-1` e o ID de endpoint da VPC `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` por suas próprias informações.

```
//client build with endpoint config  
final AmazonDynamoDBStreams dynamodbstreams = AmazonDynamoDBStreamsClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
```

------
#### [ SDK for Java 2.x ]

**Exemplo: usar um URL de endpoint para acessar um fluxo do DynamoDB**  
No exemplo a seguir, substitua a região `us-east-1` e o ID de endpoint da VPC `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` por suas próprias informações.

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

------

## Criar uma política de endpoint da Amazon VPC para o DynamoDB Streams
<a name="privatelink-streams-creating-vpc-endpoint-policy"></a>

É possível anexar uma política de endpoint ao endpoint da Amazon VPC que controle o acesso ao DynamoDB Streams. 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 

**Topics**
+ [Exemplo: restringir o acesso a um fluxo específico por meio de um endpoint da Amazon VPC](#privatelink-streams-example-restrict-access-to-bucket)

### Exemplo: restringir o acesso a um fluxo específico por meio de um endpoint da Amazon VPC
<a name="privatelink-streams-example-restrict-access-to-bucket"></a>

É possível criar uma política de endpoint que restrinja o acesso somente a tabelas específicas do DynamoDB Streams. Esse tipo de política será útil se houver outros Serviços da AWS na Amazon VPC que usem o DynamoDB Streams. A política de fluxos a seguir restringe o acesso somente ao fluxo `2025-02-20T11:22:33.444` anexado a `DOC-EXAMPLE-TABLE`. Para usar essa política de endpoint, substitua `DOC-EXAMPLE-TABLE` pelo nome da tabela e `2025-02-20T11:22:33.444` pelo rótulo do fluxo.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Id": "Policy1216114807515",
  "Statement": [
    { "Sid": "Access-to-specific-stream-only",
      "Principal": "*",
      "Action": [
        "dynamodb:DescribeStream",
        "dynamodb:GetRecords"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:dynamodb:us-east-1:111122223333:table/table-name/stream/2025-02-20T11:22:33.444"]
    }
  ]
}
```

------

**nota**  
Endpoints de gateway não são aceitos no DynamoDB Streams.

## Usar endpoints do DynamoDB com acesso privado ao Console de gerenciamento da AWS
<a name="ddb-streams-endpoints-private-access"></a>

Você deve definir a configuração do DNS para o DynamoDB e o DynamoDB Streams ao usar endpoints da VPC com o [console do DynamoDB](https://console.aws.amazon.com/dynamodb) no [Acesso privado ao Console de gerenciamento da AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html).

Para configurar o DynamoDB para poder ser acessado no Acesso privado ao Console de gerenciamento da AWS, você deve criar os dois endpoints da VPC abaixo:
+ `com.amazonaws.<region>.dynamodb`
+ `com.amazonaws.<region>.dynamodb-streams`

Ao criar os endpoints da VPC, navegue até o console do Route53 e crie uma zona hospedada privada para o DynamoDB usando o endpoint regional `dynamodb.us-east-1.amazonaws.com`.

Crie os dois registros de alias abaixo na zona hospedada privada:
+ `dynamodb.<region>.amazonaws.com` que direciona o tráfego para o endpoint da VPC `com.amazonaws.<region>.dynamodb`.
+ `streams.dynamodb.<region>.amazonaws.com` que direciona o tráfego para o endpoint da VPC `com.amazonaws.<region>.dynamodb-streams`.