Sicurezza dell'infrastruttura in Amazon DynamoDB
In quanto servizio gestito, Amazon DynamoDB è protetto dalle procedure di sicurezza di rete globali AWS descritte in Protezione dell’infrastruttura che si trova nel Framework AWS Well-Architected.
Utilizza le chiamate all'API pubblicate da AWS per accedere a Amazon VPC tramite la rete. I client possono utilizzare la versione 1.2 o 1.3 di TLS (Transport Layer Security). I client devono inoltre supportare le suite di cifratura con PFS (Perfect Forward Secrecy), ad esempio Ephemeral Diffie-Hellman (DHE) o Elliptic Curve Diffie-Hellman Ephemeral (ECDHE). La maggior parte dei sistemi moderni come Java 7 e versioni successive, supporta tali modalità. Inoltre, le richieste devono essere firmate tramite un ID chiave di accesso e una chiave di accesso segreta associata a un principal IAM. In alternativa, è possibile utilizzare AWS Security Token Service (AWS STS) per generare le credenziali di sicurezza temporanee per firmare le richieste.
È inoltre possibile utilizzare un endpoint di Virtual Private Cloud (VPC) per DynamoDB per consentire alle istanze Amazon EC2 nel VPC di utilizzare i loro indirizzi IP privati per accedere a DynamoDB senza alcuna esposizione a Internet. Per ulteriori informazioni, consulta Utilizzo di endpoint Amazon VPC per accedere a DynamoDB.
Utilizzo di endpoint Amazon VPC per accedere a DynamoDB
Per motivi di sicurezza, molti clienti AWS eseguono le proprie applicazioni all'interno di un ambiente Amazon Virtual Private Cloud (Amazon VPC). Con Amazon VPC, è possibile avviare le istanze Amazon EC2 in un Virtual Private Cloud (VPC), che è isolato logicamente da altre reti, inclusa la rete Internet pubblica. Con un Amazon VPC, puoi controllarne l'intervallo di indirizzi IP, le sottoreti, le tabelle di routing e i gateway di rete, nonché le impostazioni di sicurezza.
Nota
Se l’account Account AWS è stato creato dopo il 4 dicembre 2013, allora dovrebbe già essere presente un VPC predefinito in ogni Regione AWS. Un VPC predefinito è pronto per l'uso: può essere utilizzato immediatamente senza dover eseguire ulteriori operazioni di configurazione.
Per ulteriori informazioni, consulta VPC predefinito e sottoreti predefinite nella Guida per l'utente di Amazon VPC.
Per accedere a Internet, il VPC deve disporre di un gateway Internet, ovvero di un router virtuale che connette il VPC a Internet. Ciò consente alle applicazioni in esecuzione su Amazon EC2 nel VPC di accedere alle risorse Internet, come Amazon DynamoDB.
Per impostazione predefinita, le comunicazioni da e verso DynamoDB utilizzano il protocollo HTTPS, che protegge il traffico di rete tramite la crittografia SSL/TLS. Il diagramma seguente mostra un’istanza Amazon EC2 in un VPC che accede a DynamoDB, in cui DynamoDB usa un gateway Internet anziché gli endpoint VPC.
Molti clienti esprimono legittime preoccupazioni in materia di sicurezza e di privacy quando si tratta di inviare e ricevere dati tramite la rete Internet pubblica. I clienti possono risolvere questi problemi usando una rete privata virtuale (VPN) per instradare tutto il traffico di rete di DynamoDB tramite la propria infrastruttura di rete aziendale. Questo approccio tuttavia può introdurre problematiche relative alla larghezza di banda e alla disponibilità.
Gli endpoint VPC per DynamoDB possono mitigare queste difficoltà. Un endpoint VPC per DynamoDB consente alle istanze Amazon EC2 nel VPC di utilizzare i loro indirizzi IP privati per accedere a DynamoDB senza alcuna esposizione a Internet. Le istanze EC2 non richiedono indirizzi IP pubblici e non c'è bisogno di un gateway Internet, di un dispositivo NAT o di un gateway virtuale privato all'interno del VPC. Le policy degli endpoint vengono utilizzate per controllare l'accesso a DynamoDB. Il traffico tra il VPC e il servizio AWS non lascia la rete Amazon.
Nota
Anche quando si utilizzano indirizzi IP pubblici, tutte le comunicazioni VPC tra istanze e servizi ospitati in AWS sono mantenute private all’interno della rete AWS. I pacchetti che provengono dalla rete AWS con una destinazione sulla rete AWS rimangono sulla rete globale AWS, ad eccezione del traffico da o verso le regioni AWS della Cina.
Quando si crea un endpoint VPC per DynamoDB, qualsiasi richiesta a un endpoint DynamoDB all'interno della regione (ad esempio dynamodb.us-west-2.amazonaws.com) viene instradata verso un endpoint DynamoDB privato all'interno della rete Amazon. Non è necessario modificare le applicazioni in esecuzione sulle istanze EC2 nel VPC. Il nome dell'endpoint rimane invariato, ma l'instradamento verso DynamoDB rimane interamente all'interno della rete Amazon e non accede alla rete Internet pubblica.
Il diagramma seguente mostra in che modo un'istanza EC2 in un VPC può usare un endpoint VPC per accedere a DynamoDB.
Per ulteriori informazioni, consulta Tutorial: Utilizzo di un endpoint VPC per DynamoDB.
Condivisione di endpoint Amazon VPC e DynamoDB
Per abilitare l'accesso al servizio DynamoDB tramite l'endpoint gateway di una sottorete VPC, devi disporre delle autorizzazioni dell'account proprietario per tale sottorete VPC.
Dopo che all'endpoint gateway della sottorete VPC è stato concesso l'accesso a DynamoDB, qualsiasi account AWS con accesso a tale sottorete può utilizzare DynamoDB. Ciò significa che tutti gli utenti dell'account all'interno della sottorete VPC possono utilizzare qualsiasi tabella DynamoDB a cui hanno accesso. Ciò include le tabelle DynamoDB associate a un account diverso rispetto alla sottorete VPC. Il proprietario della sottorete VPC può comunque impedire a qualsiasi utente specifico all'interno della sottorete di utilizzare il servizio DynamoDB tramite l'endpoint del gateway, a sua discrezione.
Tutorial: Utilizzo di un endpoint VPC per DynamoDB
Questa sezione guida attraverso la configurazione e l'utilizzo di un endpoint VPC per DynamoDB.
Argomenti
Fase 1: avvio di un'istanza Amazon EC2
In questa fase, viene avviata un'istanza Amazon EC2 nell'Amazon VPC predefinito. È quindi possibile creare e utilizzare un endpoint VPC per DynamoDB.
Aprire la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/
. -
Seleziona Avvia istanza e completa le seguenti operazioni:
Fase 1: scelta di un'Amazon Machine Image (AMI)
-
All'inizio dell'elenco delle AMI, vai a Amazon Linux AMI (AMI Amazon Linux) e scegli Select (Seleziona).
Fase 2: scelta di un tipo di istanza
-
All'inizio dell'elenco dei tipi di istanza, scegli t2.micro.
-
Scegliere Next: Configure Instance Details (Successivo: Configura i dettagli dell'istanza).
Fase 3: configurare i dettagli dell'istanza
-
Vai a Network (Rete) e scegli il VPC predefinito.
Scegli Passaggio successivo: aggiunta dello storage.
Fase 4: aggiungere storage
-
Salta questa fase scegliendo Next: Tag Instance (Successivo: Assegna un tag all'istanza).
Fase 5: assegnazione di un tag all'istanza
-
Ignora questa fase scegliendo Next: Configure Security Group (Successivo: Configura il gruppo di sicurezza).
Fase 6: configura il gruppo di sicurezza
-
Scegli Seleziona un gruppo di sicurezza esistente.
-
Nell'elenco dei gruppi di sicurezza, scegli default (predefinito). Questo è il gruppo di sicurezza di default per il tuo ambiente VPC.
-
Scegli Next: Review and Launch (Successivo: Verifica e avvia).
Fase 7: verifica il lancio dell'istanza
-
Scegli Avvia.
-
-
Nella finestra Select an existing key pair or create a new key pair (Seleziona una coppia di chiavi esistente oppure crea una nuova coppia di chiavi), effettua una delle seguenti operazioni:
-
Se non disponi di una coppia di chiavi Amazon EC2, scegli Crea una nuova coppia di chiavi e segui le istruzioni. Verrà chiesto di scaricare un file di chiave privata (file .pem) che servirà in seguito per l'accesso all'istanza Amazon EC2.
-
Se disponi già di una coppia di chiavi Amazon EC2 esistente, passa a Seleziona una coppia di chiavi e sceglie la coppia nell'elenco. Tenere presente che si dispone già del file di chiave privata (file .pem) per accedere all'istanza Amazon EC2.
-
-
Quando hai configurato la tua coppia di chiavi, scegli Launch Instances (Avvia istanze).
-
Torna alla home page della console Amazon EC2 e scegli l'istanza che è stata avviata. Nel riquadro inferiore, nella scheda Descrizione, individuare il DNS pubblico per l'istanza. Ad esempio:
ec2-00-00-00-00.us-east-1.compute.amazonaws.com.rproxy.goskope.com.Prendere nota di questo nome DNS pubblico, perché sarà necessario nella fase successiva di questa esercitazione (Fase 2: configurazione dell'istanza Amazon EC2).
Nota
L'istanza Amazon EC2 diventerà disponibile nell'arco di alcuni minuti. Prima di continuare, verificare che Stato istanza sia running e che tutti i controlli di verifica stato siano stati superati.
Fase 2: configurazione dell'istanza Amazon EC2
Una volta disponibile l'istanza Amazon EC2, sarà possibile accedervi e prepararla per il primo utilizzo.
Nota
Nelle fasi successive si presuppone che si stia effettuando la connessione all'istanza Amazon EC2 da un computer che esegue Linux. Per altre modalità di connessione, consulta Connessione a un’istanza Linux nella Guida per l’utente di Amazon EC2.
-
Sarà necessario autorizzare il traffico SSH in entrata verso l'istanza Amazon EC2. A tale scopo, verrà creato un nuovo gruppo di sicurezza EC2 che poi sarà assegnato all'istanza EC2.
-
Fai clic su Gruppi di sicurezza nel pannello di navigazione.
-
Scegli Crea gruppo di sicurezza. Nella finestra Crea gruppo di sicurezza effettua le operazioni seguenti:
-
Nome gruppo di sicurezza: immettere un nome per il gruppo di sicurezza. Ad esempio:
my-ssh-access -
Descrizione: specificare una descrizione breve per il gruppo di sicurezza.
-
VPC: scegli il VPC predefinito.
-
Nella sezione Regole del gruppo di sicurezza, seleziona Aggiungi regole e completare le operazioni descritte di seguito.
-
Tipo: seleziona SSH.
-
Origine: scegli Il mio IP.
-
Dopo aver selezionato tutte le impostazioni desiderate, scegli Crea.
-
-
Nel pannello di navigazione, seleziona Instances (Istanze).
-
Scegli l'istanza Amazon EC2 avviata in Fase 1: avvio di un'istanza Amazon EC2.
-
Seleziona Operazioni --> Reti --> Modifica i gruppi di sicurezza.
-
In Modifica gruppi di sicurezza, seleziona il gruppo di sicurezza creato in precedenza in questa procedura (ad esempio,
my-ssh-access). Dovrebbe essere selezionato anche il gruppo di sicurezzadefaultesistente. Dopo aver selezionato le impostazioni desiderate, seleziona Assegna i gruppi di sicurezza.
-
-
Utilizza il comando
sshper accedere all'istanza Amazon EC2, come nell'esempio seguente.ssh -imy-keypair.pemec2-user@public-dns-nameÈ necessario specificare il file di chiave privata (file .pem) e il nome DNS pubblico dell'istanza. Consulta Fase 1: avvio di un'istanza Amazon EC2.
L'ID accesso è
ec2-user. Non è richiesta una password. -
Configura le credenziali AWS come mostrato di seguito. Quando richiesto, immettere l'ID chiave di accesso AWS, la chiave segreta e nome della regione predefinita.
aws configureAWS Access Key ID [None]:AKIAIOSFODNN7EXAMPLEAWS Secret Access Key [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYDefault region name [None]:us-east-1Default output format [None]:
È ora possibile creare un endpoint VPC per DynamoDB.
Fase 3: creazione di un endpoint VPC per DynamoDB
In questa fase, verrà creato un endpoint VPC per DynamoDB e ne sarà eseguito il test per verificare che funzioni.
-
Prima di iniziare, verifica di poter comunicare con DynamoDB utilizzando l'endpoint pubblico.
aws dynamodb list-tablesL'output mostrerà un elenco di tabelle DynamoDB di proprietà. (Se non si disponi di alcuna tabella, l'elenco sarà vuoto).
-
Verificare che DynamoDB sia un servizio disponibile per la creazione di endpoint VPC nella regione AWS corrente. Il comando è mostrato in grassetto, seguito dall'output di esempio.
aws ec2 describe-vpc-endpoint-services{ "ServiceNames": [ "com.amazonaws.us-east-1.s3", "com.amazonaws.us-east-1.dynamodb" ] }Nell'output di esempio, DynamoDB è uno dei servizi disponibili, quindi è possibile procedere con la creazione di un endpoint VPC.
-
Determinare l'identificatore VPC.
aws ec2 describe-vpcs{ "Vpcs": [ { "VpcId": "vpc-0bbc736e", "InstanceTenancy": "default", "State": "available", "DhcpOptionsId": "dopt-8454b7e1", "CidrBlock": "172.31.0.0/16", "IsDefault": true } ] }Nell'output di esempio, l'ID VPC è
vpc-0bbc736e. -
Crea l'endpoint VPC. Per il parametro
--vpc-id, specificare l'ID VPC della fase precedente. Utilizza il parametro--route-table-idsper associare l'endpoint alle tabelle di routing.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" } } -
Verificare di poter accedere a DynamoDB tramite l'endpoint VPC.
aws dynamodb list-tablesSe lo desideri, prova qualche altro comando AWS CLI per DynamoDB. Per ulteriori informazioni, consulta la sezione relativa alle informazioni di riferimento ai comandi di AWS CLI.
Fase 4: pulizia (opzionale)
Se desideri eliminare le risorse create in questo tutorial, seguire queste procedure:
Come rimuovere l'endpoint VPC per DynamoDB
-
Accedi all'istanza Amazon EC2.
-
Determinare l'ID endpoint 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" } }Nell'output di esempio, l'ID endpoint VPC è
vpce-9b15e2f2. -
Eliminare l'endpoint VPC.
aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-9b15e2f2{ "Unsuccessful": [] }L'array vuoto
[]indica la riuscita dell'operazione (non ci sono state richieste non riuscite).
Come terminare l'istanza Amazon EC2
Aprire la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/
. -
Nel pannello di navigazione, seleziona Instances (Istanze).
-
Scegli l'istanza Amazon EC2.
-
Seleziona Actions (Operazioni), Instance State (Stato istanza), Terminate (Termina).
-
Nella finestra di conferma scegli Sì, termina.