AWS PrivateLink per DynamoDB - Amazon DynamoDB

AWS PrivateLink per DynamoDB

Con AWS PrivateLink per DynamoDB è possibile eseguire il provisioning di endpoint Amazon VPC di interfaccia (endpoint di interfaccia) nel proprio virtual private cloud (Amazon VPC). È possibile accedere a questi endpoint direttamente da applicazioni on-premises su VPN e Direct Connect, o in un’altra Regione AWS su peering di Amazon VPC. Utilizzando AWS PrivateLink e gli endpoint di interfaccia è possibile semplificare la connettività di rete privata dalle applicazioni a DynamoDB.

Le applicazioni presenti nel VPC non richiedono indirizzi IP pubblici per comunicare con DynamoDB utilizzando gli endpoint di interfaccia VPC per le operazioni DynamoDB. Gli endpoint di interfaccia sono rappresentati da una o più interfacce di rete elastiche (ENI, Elastic Network Interface) a cui vengono assegnati indirizzi IP privati dalle sottoreti nell’Amazon VPC. Le richieste a DynamoDB tramite gli endpoint di interfaccia rimangono nella rete Amazon. È inoltre possibile accedere agli endpoint di interfaccia nel Amazon VPC da applicazioni on-premises tramite AWS Direct Connect o AWS Virtual Private Network (Site-to-Site VPN). Per ulteriori informazioni su come connettere l’Amazon VPC alla rete on-premises, consulta la Guida per l’utente di Direct Connect e la Guida per l’utente di AWS Site-to-Site VPN.

Per informazioni sulla creazione di endpoint di interfaccia, consulta Endpoint di interfaccia di Amazon VPC (AWS PrivateLink) nella Guida ad AWS PrivateLink. AWS PrivateLink è supportato anche per gli endpoint dei flussi Amazon DynamoDB. Per ulteriori informazioni, consulta AWS PrivateLink per i flussi DynamoDB.

Tipi di endpoint Amazon VPC per Amazon DynamoDB

È possibile utilizzare due tipi di endpoint Amazon VPC per accedere ad Amazon DynamoDB: gli endpoint gateway e gli endpoint di interfaccia (mediante AWS PrivateLink). Un endpoint gateway è un gateway specificato nella tabella di routing per accedere ad Amazon DynamoDB dall’Amazon VPC attraverso la rete AWS. Gli endpoint di interfaccia estendono la funzionalità degli endpoint gateway utilizzando indirizzi IP privati per instradare le richieste a DynamoDB dall’interno del VPC, on-premises, o da un Amazon VPC a un’altra Regione AWS utilizzando il peering di Amazon VPC o AWS Transit Gateway. Per ulteriori informazioni, consulta What is Amazon VPC peering? e Transit Gateway vs Amazon VPC peering.

Gli endpoint di interfaccia sono compatibili con gli endpoint gateway. Se si dispone di un endpoint gateway nell’Amazon VPC, è possibile utilizzare entrambi i tipi di endpoint nello stesso Amazon VPC.

Endpoint gateway per DynamoDB

Endpoint di interfaccia per DynamoDB

In entrambi i casi, il traffico di rete rimane sulla rete AWS.

Utilizzo di indirizzi IP pubblici per Amazon DynamoDB

Utilizzo di indirizzi IP privati del proprio Amazon VPC per accedere ad Amazon DynamoDB

Non consente l'accesso da on-premise

Consente l'accesso da On-Premise

Non consente l'accesso da un'altra Regione AWS

Consente l’accesso da un endpoint Amazon VPC in un’altra Regione AWS tramite peering di Amazon VPC o AWS Transit Gateway

Non fatturata

Fatturata

Per ulteriori informazioni sugli endpoint gateway, consulta Gateway Amazon VPC endpoints nella Guida ad AWS PrivateLink.

Le considerazioni relative agli Amazon VPC si applicano ad AWS PrivateLink per Amazon DynamoDB. Per ulteriori informazioni, consulta Considerazioni di un endpoint di interfaccia e Quote di AWS PrivateLink nella Guida di AWS PrivateLink. Inoltre, si applicano le limitazioni seguenti:

AWS PrivateLink per Amazon DynamoDB non supporta quanto segue:

  • Transport Layer Security (TLS) 1.1

  • Servizi del sistema dei nomi di dominio (DNS) privati e ibridi

È possibile inviare fino a 50.000 richieste al secondo per ogni endpoint AWS PrivateLink abilitato.

Nota

I timeout di connettività di rete verso gli endpoint AWS PrivateLink non rientrano nell’ambito delle risposte di errore di DynamoDB e devono essere gestiti in modo appropriato dalle applicazioni che si connettono agli endpoint PrivateLink.

Creazione di un endpoint Amazon VPC

Per creare un endpoint Amazon VPC di interfaccia, consulta Create an Amazon VPC endpoint nella Guida ad AWS PrivateLink.

Accesso agli endpoint di interfaccia Amazon DynamoDB

Quando si crea un endpoint di interfaccia, DynamoDB genera due tipi di nomi DNS DynamoDB specifici dell’endpoint: Regionale e zonale.

  • I nomi DNS Regionali includono un ID dell’endpoint Amazon VPC univoco, un identificatore di servizio, la Regione AWS e il vpce.amazonaws.com con il relativo nome. Ad esempio, per l’ID dell’endpoint Amazon VPC vpce-1a2b3c4d, il nome DNS generato potrebbe essere simile a vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com.

  • I nomi DNS zonali includono la zona di disponibilità, ad esempio vpce-1a2b3c4d-5e6f-us-east-1a.dynamodb.us-east-1.vpce.amazonaws.com. Puoi utilizzare questa opzione se l'architettura isola le zone di disponibilità. Ad esempio, puoi utilizzarla per il contenimento degli errori o per ridurre i costi di trasferimento dei dati a livello regionale.

Nota

Per ottenere un’affidabilità ottimale, si consiglia di implementare il servizio su un minimo di tre zone di disponibilità.

Accesso alle tabelle DynamoDB e alle operazioni API di controllo dagli endpoint di interfaccia DynamoDB

È possibile utilizzare AWS CLI o gli SDK AWS per accedere alle tabelle DynamoDB e alle operazioni API di controllo tramite gli endpoint di interfaccia DynamoDB.

Per accedere alle tabelle o alle operazioni API di controllo DynamoDB tramite gli endpoint di interfaccia DynamoDB nei comandi della AWS CLI, utilizza i parametri --region e --endpoint-url.

Esempio: creazione di un endpoint VPC

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

Esempio: modifica di un endpoint 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

Esempio: creazione di un elenco di tabelle utilizzando un URL dell’endpoint

Nell’esempio seguente, sostituisci la Regione us-east-1 e il nome DNS dell’ID dell’endpoint VPC vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com con le informazioni appropriate.

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

Quando utilizzi gli SDK AWS, aggiornali alla versione più recente per accedere alle tabelle DynamoDB o alle operazioni API di controllo DynamoDB tramite gli endpoint di interfaccia DynamoDB. Quindi configura i client per utilizzare un URL dell’endpoint per accedere a una tabella o a un’operazione API di controllo DynamoDB tramite gli endpoint di interfaccia DynamoDB.

SDK for Python (Boto3)
Esempio: utilizzo di un URL dell’endpoint per accedere a una tabella DynamoDB

Nell'esempio seguente, sostituisci la Regione us-east-1 e l'ID endpoint VPC https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com con le informazioni appropriate.

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
Esempio: utilizzo di un URL dell’endpoint per accedere a una tabella DynamoDB

Nell'esempio seguente, sostituisci la Regione us-east-1 e l'ID endpoint VPC https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com con le informazioni appropriate.

//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
Esempio: utilizzo di un URL dell’endpoint per accedere a una tabella DynamoDB

Nell’esempio seguente, sostituisci la Regione us-east-1 e l’ID dell’endpoint VPC https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com con le informazioni appropriate.

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()

Aggiornamento di una configurazione DNS locale

Quando si utilizzano nomi DNS specifici degli endpoint per accedere agli endpoint di interfaccia per DynamoDB, non è necessario aggiornare il resolver DNS on-premises. È possibile risolvere il nome DNS specifico dell’endpoint con l’indirizzo IP privato dell’endpoint di interfaccia dal dominio DNS pubblico di DynamoDB.

Utilizzo degli endpoint di interfaccia per accedere a DynamoDB senza un endpoint gateway o un gateway Internet nell’Amazon VPC

Gli endpoint di interfaccia nell’Amazon VPC possono instradare sia le applicazioni nell’Amazon VPC che le applicazioni on-premises a DynamoDB sulla rete Amazon, come illustrato nel diagramma seguente.

Diagramma di flusso dei dati che mostra l’accesso dalle app on-premises e nell’Amazon VPC a DynamoDB utilizzando un endpoint di interfaccia e AWS PrivateLink.

Il diagramma illustra quanto segue:

  • La rete on-premises utilizza Direct Connect o Site-to-Site VPN per connettersi all’Amazon VPC A.

  • Le applicazioni on-premises e nell’Amazon VPC A utilizzano nomi DNS specifici degli endpoint per accedere a DynamoDB tramite l’endpoint di interfaccia DynamoDB.

  • Le applicazioni on-premises inviano dati all’endpoint di interfaccia nell’Amazon VPC tramite Direct Connect (o Site-to-Site VPN). AWS PrivateLink sposta i dati dall’endpoint di interfaccia a DynamoDB sulla rete AWS.

  • Anche le applicazioni nell’Amazon VPC inviano traffico all’endpoint di interfaccia. AWS PrivateLink sposta i dati dall’endpoint di interfaccia a DynamoDB sulla rete AWS.

Utilizzo di endpoint gateway e di endpoint di interfaccia insieme nello stesso Amazon VPC per accedere a DynamoDB

È possibile creare endpoint di interfaccia e mantenere l’endpoint gateway esistente nello stesso Amazon VPC, come illustrato nel diagramma seguente. Con questo approccio si consente alle applicazioni nell’Amazon VPC di continuare ad accedere a DynamoDB tramite l’endpoint gateway senza incorrere nella fatturazione. Pertanto, solo le applicazioni on-premises utilizzerebbero gli endpoint di interfaccia per accedere a DynamoDB. Per accedere a DynamoDB in questo modo, è necessario aggiornare le applicazioni on-premises per utilizzare nomi DNS specifici degli endpoint per DynamoDB.

Diagramma di un flusso di dati che mostra l’accesso a DynamoDB utilizzando gli endpoint gateway e gli endpoint di interfaccia insieme.

Il diagramma illustra quanto segue:

  • Le applicazioni on-premises utilizzano nomi DNS specifici dell’endpoint per inviare dati all’endpoint di interfaccia nell’Amazon VPC tramite Direct Connect (o Site-to-Site VPN). AWS PrivateLink sposta i dati dall’endpoint di interfaccia a DynamoDB sulla rete AWS.

  • Utilizzando i nomi DynamoDB Regionali predefiniti, le applicazioni nell’Amazon VPC inviano dati all’endpoint gateway che si connette a DynamoDB sulla rete AWS.

Per ulteriori informazioni sugli endpoint gateway, consulta Gateway Amazon VPC endpoints nella Guida per l’utente di Amazon VPC.

Creazione di una policy sugli endpoint Amazon VPC per DynamoDB

È possibile collegare una policy sugli endpoint al proprio endpoint Amazon VPC che controlla l’accesso a DynamoDB. Questa policy specifica le informazioni riportate di seguito:

  • Il principale AWS Identity and Access Management (IAM) che può eseguire operazioni

  • Le operazioni che possono essere eseguite

  • Le risorse sui cui si possono eseguire le azioni

È possibile creare una policy sugli endpoint che limita l’accesso solo a una tabella DynamoDB specifica. Questo tipo di policy è utile se ci sono altri Servizi AWS nell’Amazon VPC che utilizzano i bucket. La seguente policy sulle tabella limita l’accesso solo a DOC-EXAMPLE-TABLE. Per utilizzare questa policy sugli endpoint, sostituisci DOC-EXAMPLE-TABLE con il nome della tabella.

JSON
{ "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:us-east-1:111122223333:table/DOC-EXAMPLE-TABLE", "arn:aws:dynamodb:us-east-1:111122223333:table/DOC-EXAMPLE-TABLE/*"] } ] }

Utilizzo degli endpoint DynamoDB con accesso privato a AWS Management Console

È necessario configurare la configurazione DNS per DynamoDB e i flussi DynamoDB quando si utilizzano endpoint VPC con la console DynamoDB nell’Accesso privato alla AWS Management Console.

Per configurare DynamoDB in modo che sia accessibile nell’Accesso privato alla AWS Management Console è necessario creare i due endpoint VPC seguenti:

  • com.amazonaws.<region>.dynamodb

  • com.amazonaws.<region>.dynamodb-streams

Durante la creazione degli endpoint VPC, accedi alla console Route53 e crea una zona ospitata privata per DynamoDB utilizzando l’endpoint Regionale dynamodb.us-east-1.amazonaws.com.

Crea i seguenti due record di alias nella zona ospitata privata:

  • dynamodb.<region>.amazonaws.com che instrada il traffico verso l’endpoint VPC com.amazonaws.<region>.dynamodb.

  • streams.dynamodb.<region>.amazonaws.com che instrada il traffico verso l’endpoint VPC com.amazonaws.<region>.dynamodb-streams.