Avvio dei domini Amazon OpenSearch Service all'interno di un VPC - Amazon OpenSearch Service

Avvio dei domini Amazon OpenSearch Service all'interno di un VPC

È possibile avviare risorse AWS, come i domini Amazon OpenSearch Service, in un virtual private cloud(VPC). Un VPC è una rete virtuale dedicata all'Account AWS. Il VPC è isolato a livello logico dalle altre reti virtuali del cloud AWS. Inserendo un dominio OpenSearch Service all'interno di un VPC si permette la comunicazione sicura tra OpenSearch Service e altri servizi nel VPC senza la necessità di un gateway Internet, un dispositivo NAT o una connessione VPN. Tutto il traffico rimane sicuro all'interno di AWS Cloud.

Nota

Se si inserisce il proprio dominio OpenSearch Service all'interno di un VPC, il computer deve essere in grado di connettersi al VPC. Questa connessione spesso avviene tramite una VPN, un gateway di transito, una rete gestita o un server proxy. Non è possibile accedere direttamente ai domini dall'esterno del VPC.

VPC e domini pubblici

Di seguito sono riportati alcuni dei modi in cui i domini in VPC differiscono dai domini pubblici. Ogni differenza è descritta più avanti in modo più dettagliato.

  • Grazie a loro isolamento logico, i domini che si trovano all'interno di un VPC hanno un ulteriore livello di sicurezza rispetto ai domini che usano gli endpoint pubblici.

  • Mentre i domini pubblici sono accessibili da qualsiasi dispositivo connesso a Internet, i domini in VPC richiedono una qualche forma di VPN o proxy.

  • Rispetto ai domini pubblici, i domini VPC visualizzano meno informazioni nella console . In particolare, la scheda Integrità del cluster non include le informazioni sulle partizioni e la scheda Indici non è presente.

  • Gli endpoint del dominio assumono forme diverse (https://search-domain-name e https://vpc-domain-name).

  • Poiché i gruppi di sicurezza applicano già le policy di accesso basate su IP, non è possibile applicare policy d'accesso basate su IP ai domini che si trovano all'interno di un VPC.

Restrizioni

Attualmente, l'uso di un dominio OpenSearch Service all'interno di un VPC ha le seguenti limitazioni:

  • Se avvii un nuovo dominio all'interno di un VPC, successivamente non puoi passare all'uso di un endpoint pubblico. Lo stesso vale al contrario: se crei un dominio con un endpoint pubblico, successivamente non puoi inserirlo in un VPC. Devi invece creare un nuovo dominio ed eseguire la migrazione dei dati.

  • È possibile avviare il dominio all'interno di un VPC oppure usare un endpoint pubblico, ma non è possibile eseguire entrambe le operazioni. Al momento della creazione di un dominio, devi scegliere una delle due opzioni.

  • Non è possibile avviare il dominio in un VPC che usa l'istanza dedicata a tenant singolo. Devi usare un VPC con tenancy impostata su Default (Predefinita).

  • Dopo aver inserito un dominio all'interno di un VPC, non è possibile spostarlo in un VPC diverso, ma è possibile modificare le sottoreti e le impostazioni del gruppo di sicurezza.

  • Per accedere all'installazione predefinita di OpenSearch Dashboards per un dominio che si trova all'interno di un VPC, gli utenti devono avere accesso al VPC. Questo processo varia in base alla configurazione di rete, ma generalmente prevede la connessione a una VPN o una rete gestita o l'uso di un server proxy o di un gateway di transito. Per ulteriori informazioni, consultare Informazioni sulle policy d'accesso nei domini VPC, la Guida per l'utente di Amazon VPC e Controllo dell'accesso a OpenSearch Dashboards.

Architettura

Per supportare i VPC, OpenSearch Service inserisce un endpoint in una, due o tre sottoreti del VPC. Se si attivano più zone di disponibilità per il dominio, ogni sottorete deve trovarsi in una zona di disponibilità diversa nella stessa area. Se si usa solo una zona di disponibilità, OpenSearch Service inserisce un endpoint in una sola sottorete.

La figura seguente mostra l'architettura del VPC per una zona di disponibilità.

La figura seguente mostra l'architettura del VPC per due zone di disponibilità.

OpenSearch Service inserisce anche un'interfaccia di rete elastica (ENI, Elastic Network Interface) nel VPC per ogni nodo di dati. OpenSearch Service assegna a ogni interfaccia di rete elastica un indirizzo IP privato dall'intervallo di indirizzi IPv4 della sottorete. Il servizio, inoltre, assegna un nome host DNS pubblico (che è l'endpoint del dominio) per gli indirizzi IP. È necessario usare un servizio DNS pubblico per risolvere l'endpoint (che è un nome host DNS) negli indirizzi IP appropriati per i nodi di dati:

  • Se il VPC usa il server DNS fornito da Amazon impostando l'opzione enableDnsSupport su true (valore di default), la risoluzione per l'endpoint OpenSearch Service avrà esito positivo.

  • Se il VPC usa un server DNS privato e il server è in grado di raggiungere i server DNS pubblici autorevoli per risolvere i nomi host DNS, la risoluzione per l'endpoint OpenSearch Service avrà anch'essa esito positivo.

Poiché gli indirizzi IP possono cambiare, è necessario risolvere l'endpoint del dominio periodicamente, in modo che sia sempre possibile accedere ai nodi di dati corretti. È consigliabile impostare l'intervallo di risoluzione DNS su un minuto. Se usi un client, assicurati anche che la cache DNS nel client venga cancellata.

Nota

OpenSearch Service non supporta gli indirizzi IPv6 con un VPC. Puoi usare un VPC per cui è abilitato il protocollo IPv6, ma il dominio userà indirizzi IPv4.

Migrazione dall'accesso pubblico all'accesso VPC

Quando crei un dominio, specifichi se deve avere un endpoint pubblico o trovarsi all'interno di un VPC. Una volta completata la creazione, non è possibile passare da un'opzione all'altra. Devi invece creare un nuovo dominio e reindicizzare manualmente i dati o eseguirne la migrazione. Gli snapshot offrono una semplice modalità di migrazione dei dati. Per informazioni su come acquisire e ripristinare gli snapshot, consulta Creazione di snapshot di indici in Amazon OpenSearch Service.

Informazioni sulle policy d'accesso nei domini VPC

Inserendo un dominio OpenSearch Service in un VPC si ottiene un elevato livello di sicurezza. Quando crei un dominio con accesso pubblico, l'endpoint ha il formato seguente:

https://search-domain-name-identifier.region.es.amazonaws.com

Come suggerisce l'etichetta "pubblico", questo endpoint è accessibile da qualsiasi dispositivo connesso a Internet, anche se è possibile (e necessario) controllare l'accesso. Se accedi all'endpoint in un Web browser, potrebbe venire visualizzato un messaggio Not Authorized, ma la richiesta raggiunge il dominio.

Quando crei un dominio con accesso VPC, l'endpoint sembra simile a un endpoint pubblico:

https://vpc-domain-name-identifier.region.es.amazonaws.com

Se provi ad accedere all'endpoint in un Web browser, tuttavia, si potrebbe verificare il timeout della richiesta. Per eseguire richieste GET anche di base, il computer deve essere in grado di connettersi al VPC. Questa connessione spesso avviene tramite una VPN, un gateway di transito, una rete gestita o un server proxy. Per maggiori dettagli sulle varie forme che può avere, consultare Esempi per VPC nella Guida per l'utente di Amazon VPC. Per un esempio relativo allo sviluppo consulta Test dei domini VPC.

Oltre a questo requisito di connettività, i VPC permettono di gestire l'accesso al dominio tramite gruppi di sicurezza. Per molti casi d'uso, questa combinazione di caratteristiche di sicurezza è sufficiente e può essere appropriato applicare una policy d'accesso aperta al dominio.

L'uso di una policy d'accesso aperta non significa che chiunque sia connesso a Internet può accedere al dominio OpenSearch Service. Significa invece che se una richiesta raggiunge il dominio OpenSearch Service e i gruppi di sicurezza associati lo permettono, il dominio accetta la richiesta. L'unica eccezione è se si utilizza il controllo dettagliato degli accessi o di una policy di accesso che specifichi utenti o ruoli IAM. In questi casi, affinché il dominio accetti la richiesta, i gruppi di sicurezza devono permettere l'operazione e la richiesta deve essere firmata con credenziali valide.

Nota

Poiché i gruppi di sicurezza applicano già le policy d'accesso basate su IP, non è possibile applicare policy d'accesso basate su IP ai domini che si trovano all'interno di un VPC. Se usi l'accesso pubblico, le policy basate su IP sono ancora disponibili.

Prima di iniziare: Prerequisiti per l'accesso al VPC

Prima di abilitare una connessione tra un VPC e il nuovo dominio OpenSearch Service, è necessario completare le seguenti operazioni:

  • Creare un VPC

    Per creare un VPC, è possibile usare la console Amazon VPC, AWS CLI oppure uno degli SDK AWS. Per ulteriori informazioni, consultare Utilizzo dei VPC nella Guida per l'utente di Amazon VPC. Se hai già un VPC, questa fase può essere ignorata.

  • Prenota indirizzi IP

    OpenSearch Service permette la connessione di un VPC a un dominio inserendo interfacce di rete in una sottorete del VPC. Ogni interfaccia di rete è associata a un indirizzo IP. È necessario riservare un numero sufficiente di indirizzi IP nella sottorete per le interfacce di rete. Per ulteriori informazioni, consultare Prenotazione di indirizzi IP in una sottorete VPC.

Test dei domini VPC

La sicurezza avanzata di un VPC può trasformare la connessione al dominio e l'esecuzione di test di base in una vera sfida. Se si dispone già di un dominio OpenSearch Service nel VPC e non si desidera creare un server VPN, provare la seguente procedura:

  1. Per la policy di accesso del dominio, scegli Utilizza solo il controllo granulare degli accessi. È sempre possibile aggiornare questa impostazione dopo aver completato il test.

  2. Creare un'istanza Amazon EC2 per Amazon Linux nello stesso VPC, sottorete e gruppo di sicurezza del dominio OpenSearch Service.

    Poiché questa istanza è a scopo di test e deve fare poco lavoro, scegliere un tipo di istanza poco costoso come t2.micro. Assegnare all'istanza un indirizzo IP pubblico e creare una nuova coppia di chiavi o sceglierne una esistente. Se si crea una nuova chiave, scaricarla nella directory ~/.ssh.

    Per ulteriori informazioni sulla creazione di istanze, consultare Nozioni di base sulle istanze Linux di Amazon EC2.

  3. Aggiungere un gateway internet al VPC.

  4. Nella tabella di routing per il VPC, aggiungere un nuovo routing. Per Destination (Destinazione), specificare un blocco CIDR che contiene l'indirizzo IP pubblico del computer. In Target (Destinazione), specificare il gateway Internet appena creato.

    Ad esempio, è possibile specificare solo 123.123.123.123/32 per un computer o 123.123.123.0/24 per una serie di computer.

  5. Per il gruppo di sicurezza, specificare due regole in entrata:

    Tipo Protocollo Intervallo porte Origine
    SSH (22) TCP (6) 22 your-cidr-block
    HTTPS (443) TCP (6) 443 your-security-group-id

    La prima regola consente l'SSH nell'istanza EC2. La seconda consente all'istanza EC2 di comunicare con il dominio OpenSearch Service tramite HTTPS.

  6. Dal terminale, esegui il comando seguente:

    ssh -i ~/.ssh/your-key.pem ec2-user@your-ec2-instance-public-ip -N -L 9200:vpc-domain-name.region.es.amazonaws.com:443

    Questo comando crea un tunnel SSH che inoltra le richieste a https://localhost:9200 nel dominio OpenSearch Service tramite l'istanza EC2. Se nel comando viene specificata la porta 9200, viene simulata un'installazione locale di OpenSearch utilizzando qualunque porta desiderata. OpenSearch Service accetta connessioni solo tramite la porta 80 (HTTP) o 443 (HTTPS).

    Il comando non fornisce alcun feedback e viene eseguito a tempo indeterminato. Per arrestarlo, premere Ctrl + C.

  7. Passare a https://localhost:9200/_dashboards/ nel browser web. Potrebbe essere necessario riconoscere un'eccezione di sicurezza.

    In alternativa, è possibile inviare le richieste a https://localhost:9200 utilizzando curl, Postman o il linguaggio di programmazione preferito.

    Suggerimento

    Se si verificano errori di curl a causa di una mancata corrispondenza del certificato prova il flag --insecure.

Prenotazione di indirizzi IP in una sottorete VPC

OpenSearch Service connette un dominio a un VPC inserendo le interfacce di rete in una sottorete del VPC (o più sottoreti del VPC se si abilitano più zone di disponibilità). Ogni interfaccia di rete è associata a un indirizzo IP. Prima di creare il dominio OpenSearch Service, è necessario disporre di un numero sufficiente di indirizzi IP in ciascuna sottorete da utilizzare per le interfacce di rete.

La formula di base è la seguente: il numero di indirizzi IP riservati da OpenSearch Service in ciascuna sottorete è tre volte il numero dei nodi di dati diviso per il numero di zone di disponibilità.

Esempi

  • Se un dominio ha nove nodi di dati su tre zone di disponibilità, il numero di indirizzi IP per sottorete è pari a 9*3/3 = 9.

  • Se un dominio ha otto nodi di dati su due zone di disponibilità, il numero di indirizzi IP per sottorete è pari a 8*3/2 = 12.

  • Se un dominio ha sei nodi di dati in una zona di disponibilità, il numero di indirizzi IP per sottorete è pari a 6*3/1 = 18.

Quando si crea il dominio, OpenSearch Service riserva gli indirizzi IP, ne utilizza alcuni per il dominio e riserva il resto per le implementazioni blu/verde. È possibile visualizzare le interfacce di rete e gli indirizzi IP associati nella sezione Interfacce di rete della console Amazon EC2. La colonna Descrizione mostra il dominio OpenSearch Service a cui è associata l'interfaccia di rete.

Suggerimento

È consigliabile creare sottoreti dedicate per gli indirizzi IP riservati di OpenSearch Service. Usando sottoreti dedicate, puoi evitare sovrapposizioni con altri servizi e applicazioni e puoi riservare ulteriori indirizzi IP se è necessario dimensionare il cluster in futuro. Per ulteriori informazioni, consultare Creazione di una sottorete nel VPC.

Ruolo collegato ai servizi per l'accesso VPC

Un ruolo collegato ai servizi è un tipo specifico di ruolo IAM che delega le autorizzazioni a un servizio così che possa creare e gestire le risorse per conto dell'utente. OpenSearch Service richiede un ruolo collegato al servizio per accedere al VPC, creare l'endpoint del dominio e inserire le interfacce di rete in una sottorete del VPC.

OpenSearch Service crea automaticamente il ruolo quando si utilizza la console OpenSearch Service per creare un dominio all'interno di un VPC. Affinché questa operazione di creazione automatica riesca, devi disporre delle autorizzazioni per l'operazione iam:CreateServiceLinkedRole. Per ulteriori informazioni, consultare Autorizzazioni del ruolo collegato ai servizi nella Guida per l'utente di IAM.

Dopo che OpenSearch Service ha creato il ruolo, sarà possibile visualizzarlo (AWSServiceRoleForAmazonOpenSearchService) usando la console IAM.

Per informazioni complete sulle autorizzazioni di questo ruolo e su come eliminarlo, consulta Utilizzo di ruoli collegati ai servizi per consentire ad Amazon OpenSearch Service di accedere alle risorse.