Accesso al cluster - Amazon MemoryDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accesso al cluster

Le tue istanze MemoryDB sono progettate per essere accessibili tramite un'istanza Amazon. EC2

Puoi accedere al tuo nodo MemoryDB da EC2 un'istanza Amazon nello stesso Amazon. VPC Oppure, utilizzando il VPC peering, puoi accedere al tuo nodo MemoryDB da un Amazon EC2 in un altro Amazon. VPC

Concedi l'accesso al tuo cluster

Puoi connetterti al tuo cluster MemoryDB solo da EC2 un'istanza Amazon in esecuzione nello stesso Amazon. VPC In questo caso sarà necessario concedere al cluster l'ingresso di rete.

Per concedere l'accesso alla rete da un gruppo VPC di sicurezza Amazon a un cluster
  1. Accedi a AWS Management Console e apri la EC2 console Amazon all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel riquadro di navigazione a sinistra, in Rete e sicurezza, scegli Gruppi di sicurezza.

  3. Dall'elenco dei gruppi di sicurezza, scegli il gruppo di sicurezza per il tuo AmazonVPC. A meno che tu non abbia creato un gruppo di sicurezza per l'uso di MemoryDB, questo gruppo di sicurezza verrà denominato predefinito.

  4. Scegli la scheda In entrata, quindi procedi come segue:

    1. Scegli Modifica.

    2. Scegli Aggiungi regola.

    3. Nella colonna Tipo, scegli Regola personalizzata TCP.

    4. Nella casella Intervallo porta, digita il numero di porta per il nodo del cluster. Questo numero deve essere lo stesso specificato durante l'avvio del cluster. La porta predefinita sia per Valkey che per Redis è OSS. 6379

    5. Nella casella Source, scegli Anywhere con l'intervallo di porte (0.0.0.0/0) in modo che qualsiasi EC2 istanza Amazon che avvii all'interno di Amazon VPC possa connettersi ai tuoi nodi MemoryDB.

      Importante

      L'apertura del cluster MemoryDB a 0.0.0.0/0 non espone il cluster a Internet perché non ha un indirizzo IP pubblico e quindi non è accessibile dall'esterno di. VPC Tuttavia, il gruppo di sicurezza predefinito può essere applicato ad altre EC2 istanze Amazon nell'account del cliente e tali istanze possono avere un indirizzo IP pubblico. Se eseguono qualche attività sulla porta predefinita, il servizio può essere esposto involontariamente. Pertanto, consigliamo di creare un gruppo VPC di sicurezza che verrà utilizzato esclusivamente da MemoryDB. Per ulteriori informazioni, consulta Gruppi di sicurezza personalizzati.

    6. Seleziona Salva.

Quando avvii un'EC2istanza Amazon su AmazonVPC, quell'istanza sarà in grado di connettersi al tuo cluster MemoryDB.

Accesso alle risorse di MemoryDB dall'esterno AWS

MemoryDB è un servizio progettato per essere utilizzato internamente a. VPC L'accesso esterno è sconsigliato a causa della latenza del traffico Internet e dei problemi di sicurezza. Tuttavia, se è richiesto l'accesso esterno a MemoryDB per scopi di test o sviluppo, è possibile farlo tramite un. VPN

Utilizzando il AWS ClientVPN, si consente l'accesso esterno ai nodi MemoryDB con i seguenti vantaggi:

  • Accesso limitato agli utenti approvati o alle chiavi di autenticazione;

  • Traffico crittografato tra il VPN client e l' AWS VPNendpoint;

  • Accesso limitato a sottoreti o nodi specifici;

  • Facile revoca dell'accesso agli utenti o alle chiavi di autenticazione;

  • Audit delle connessioni.

Le seguenti procedure dimostrano come:

Creare un'autorità di certificazione

È possibile creare un'autorità di certificazione (CA) utilizzando tecniche o strumenti diversi. Suggeriamo l'utilità easy-rsa, fornita dal progetto Open. VPN Indipendentemente dall'opzione scelta, assicurati di conservare le chiavi al sicuro. La procedura seguente scarica gli script easy-rsa, crea l'Autorità di Certificazione e le chiavi per autenticare il primo client: VPN

  • Per creare i certificati iniziali, apri un terminale e procedi come segue:

    • git clonehttps://github.com/OpenVPN/easy-rsa

    • cd easy-rsa

    • ./easyrsa3/easyrsa init-pki

    • ./easyrsa3/easyrsa build-ca nopass

    • ./easyrsa3/easyrsa build-server-full server nopass

    • ./easyrsa3/easyrsa build-client-full client1.domain.tld nopass

    Una sottodirectory pki contenente i certificati verrà creata sotto easy-rsa.

  • Invia il certificato del server al gestore dei AWS certificati (): ACM

    • Sulla ACM console, seleziona Certificate Manager.

    • Scegli Importa certificato.

    • Immetti il certificato della chiave pubblica disponibile nel file easy-rsa/pki/issued/server.crt nel campo Corpo certificato.

    • Incolla la chiave privata disponibile in easy-rsa/pki/private/server.key nel campo Chiave privata certificato. Assicurarsi di scegliere tutte le righe tra BEGIN AND END PRIVATE KEY (comprese le righe BEGIN ed END).

    • Incolla la chiave pubblica CA disponibile nel file easy-rsa/pki/ca.crt nel campo Catena di certificati.

    • Scegli Verifica e importa.

    • Scegli Importa.

    Per inviare i certificati del server ACM utilizzando il AWS CLI, esegui il seguente comando: aws acm import-certificate --certificate fileb://easy-rsa/pki/issued/server.crt --private-key file://easy-rsa/pki/private/server.key --certificate-chain file://easy-rsa/pki/ca.crt --region region

    Nota il certificato ARN per usi futuri.

Configurazione dei componenti AWS del client VPN

Utilizzo della console AWS

Sulla AWS console, seleziona Servizi e poi VPC.

In Virtual Private Network, seleziona Client VPN Endpoints ed esegui le seguenti operazioni:

Configurazione dei componenti del client AWS VPN

  • Seleziona Crea VPN endpoint client.

  • Puoi specificare le seguenti opzioni:

    • Client IPv4 CIDR: utilizza una rete privata con una netmask di almeno un intervallo di /22. Assicurati che la sottorete selezionata non sia in conflitto con gli indirizzi delle VPC reti. Esempio: 10.0.0.0/22.

    • In Certificato serverARN, seleziona il ARN certificato importato in precedenza.

    • Seleziona Use mutual authentication (Utilizza autenticazione reciproca).

    • In Certificato client ARN, seleziona ARN il certificato precedentemente importato.

    • Seleziona Crea VPN endpoint client.

Utilizzando il AWS CLI

Esegui il comando seguente:

aws ec2 create-client-vpn-endpoint --client-cidr-block "10.0.0.0/22" --server-certificate-arn arn:aws:acm:us-east-1:012345678912:certificate/0123abcd-ab12-01a0-123a-123456abcdef --authentication-options Type=certificate-authentication,,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:012345678912:certificate/123abcd-ab12-01a0-123a-123456abcdef} --connection-log-options Enabled=false

Output di esempio:

"ClientVpnEndpointId": "cvpn-endpoint-0123456789abcdefg", "Status": { "Code": "pending-associate" }, "DnsName": "cvpn-endpoint-0123456789abcdefg.prod.clientvpn.us-east-1.amazonaws.com" }

Associa le reti di destinazione all'VPNendpoint

  • Seleziona il nuovo VPN endpoint, quindi seleziona la scheda Associazioni.

  • Seleziona Associa e specifica le seguenti opzioni.

    • VPC: Seleziona il cluster MemoryDB. VPC

    • Seleziona una delle reti del cluster MemoryDB. In caso di dubbio, esamina le reti nei gruppi di sottorete sulla dashboard di MemoryDB.

    • Seleziona Associa. Se necessario, ripeti le fasi per le reti rimanenti.

Usando il AWS CLI

Esegui il comando seguente:

aws ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --subnet-id subnet-0123456789abdcdef

Output di esempio:

"Status": { "Code": "associating" }, "AssociationId": "cvpn-assoc-0123456789abdcdef" }

Rivedi il gruppo VPN di sicurezza

L'VPNEnpoint adotterà automaticamente il gruppo VPC di sicurezza predefinito. Controlla le regole in entrata e in uscita e conferma se il gruppo di sicurezza consente il traffico dalla VPN rete (definito nelle impostazioni di VPN Endpoint) alle reti MemoryDB sulle porte di servizio (per impostazione predefinita, 6379 per Redis).

Se è necessario modificare il gruppo di sicurezza assegnato all'Endpoint, procedi come segue: VPN

  • Seleziona il gruppo di sicurezza corrente.

  • Seleziona Apply Security Group (Applica gruppo di sicurezza).

  • Scegli il nuovo gruppo di sicurezza.

Usando il AWS CLI

Esegui il comando seguente:

aws ec2 apply-security-groups-to-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefga  --vpc-id vpc-0123456789abdcdef --security-group-ids sg-0123456789abdcdef

Output di esempio:

"SecurityGroupIds": [ "sg-0123456789abdcdef" ] }

Nota

Il gruppo di sicurezza MemoryDB deve inoltre consentire il traffico proveniente dai VPN client. Gli indirizzi dei client verranno mascherati con l'indirizzo dell'VPNendpoint, in base alla rete. VPC Pertanto, considera la VPC rete (non la rete VPN dei client) quando crei la regola in entrata sul gruppo di sicurezza MemoryDB.

Autorizza l'accesso alle reti di destinazione VPN

Nella scheda Authorization (Autorizzazione) seleziona Authorize Ingress (Autorizza ingresso) e specifica quanto segue:

  • Rete di destinazione per consentire l'accesso: utilizzare 0.0.0.0/0 per consentire l'accesso a qualsiasi rete (incluso Internet) o limitare le reti/gli host di MemoryDB.

  • In Grant access to: (Concedi accesso a:), seleziona Allow access to all users (Consenti accesso a tutti gli utenti).

  • Seleziona Add Authorization Rules (Aggiungi regole di autorizzazione).

Usando il AWS CLI

Esegui il comando seguente:

aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --target-network-cidr 0.0.0.0/0 --authorize-all-groups

Output di esempio:

{ "Status": { "Code": "authorizing" } }

Consentire l'accesso a Internet da parte dei VPN client

Se è necessario navigare in Internet tramiteVPN, è necessario creare un percorso aggiuntivo. Seleziona la scheda Route Table (Tabella di routing) e quindi seleziona Create Route (Crea route):

  • Destinazione route: 0.0.0.0/0

  • ID di VPC sottorete di destinazione: selezionare una delle sottoreti associate con accesso a Internet.

  • Seleziona Create Route (Crea route).

Utilizzando il AWS CLI

Esegui il comando seguente:

aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abdcdef

Output di esempio:

{ "Status": { "Code": "creating" } }

Configurare il VPN client

Nella VPN dashboard del AWS client, seleziona l'VPNendpoint creato di recente e seleziona Scarica la configurazione del client. Copia il file di configurazione e i file easy-rsa/pki/issued/client1.domain.tld.crt e easy-rsa/pki/private/client1.domain.tld.key. Modifica il file di configurazione e modifica o aggiungi i seguenti parametri:

  • cert: aggiungi una nuova riga con il parametro cert che punta al file client1.domain.tld.crt. Usa il percorso completo del file. Esempio: cert /home/user/.cert/client1.domain.tld.crt

  • cert: key: aggiungi una nuova riga con la chiave del parametro che punta al file client1.domain.tld.key. Usa il percorso completo del file. Esempio: key /home/user/.cert/client1.domain.tld.key

Stabilisci la VPN connessione con il comando: sudo openvpn --config downloaded-client-config.ovpn

Revoca dell'accesso

Se è necessario invalidare l'accesso a una particolare chiave client, la chiave deve essere revocata nella CA. Quindi invia l'elenco delle revoche al AWS ClienteVPN.

Revoca la chiave con easy-rsa:

  • cd easy-rsa

  • ./easyrsa3/easyrsa revoke client1.domain.tld

  • Inserisci "sì" per continuare o qualsiasi altro input per interrompere.

    Continue with revocation: `yes` ... * `./easyrsa3/easyrsa gen-crl

  • È CRL stato creato un aggiornamento. CRLfile: /home/user/easy-rsa/pki/crl.pem

Importazione dell'elenco di revoca nel AWS Cliente: VPN

  • In AWS Management Console, seleziona Servizi e poi. VPC

  • Seleziona Client VPN Endpoints.

  • Seleziona l'VPNendpoint del client, quindi seleziona Azioni -> Importa certificato client. CRL

  • Incolla il contenuto del file crl.pem:

Utilizzando il AWS CLI

Esegui il comando seguente:

aws ec2 import-client-vpn-client-certificate-revocation-list --certificate-revocation-list file://./easy-rsa/pki/crl.pem --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg

Output di esempio:

Example output: { "Return": true }