Come posso accedere a un cluster Amazon Redshift privato dal mio computer locale?

5 minuti di lettura
0

Desidero utilizzare il mio computer locale per accedere a un cluster Amazon Redshift che si trova in una sottorete privata Amazon Virtual Private Cloud (Amazon VPC).

Breve descrizione

Usa un'istanza Amazon Elastic Compute Cloud (Amazon EC2) e SQL Workbench/J per creare un tunnel SSH. Il tunnel indirizza tutto il traffico in entrata dalla macchina locale al cluster privato Amazon Redshift.

Soluzione

Crea Amazon VPC, l’istanza EC2 e il cluster Amazon Redshift

Per creare Amazon VPC, l’istanza EC2 e il cluster Amazon Redshift, completa i seguenti passaggi:

  1. Crea un Amazon VPC con sottoreti pubbliche e private.

  2. Avvia un'istanza EC2 da un’Amazon Machine Image (AMI) di Amazon Linux 2 nella sottorete pubblica di Amazon VPC. Quando crei l'istanza, scegli le seguenti opzioni:
    Per Assegna automaticamente IP pubblico, scegli Abilita. In alternativa, assegna un indirizzo IP elastico all'istanza.
    Crea un nuovo gruppo di sicurezza con una regola SSH.
    Per Origine, scegli Personalizza, quindi inserisci il tuo blocco CIDR. In alternativa, scegli Il mio IP.

  3. Sulla console Amazon Redshift, crea una sottorete del cluster. Inserisci le seguenti informazioni:
    Per ID VPC, scegli l'ID del tuo Amazon VPC.
    Per ID sottorete, scegli l'ID della sottorete privata.

  4. Crea un nuovo gruppo di sicurezza.

  5. Aggiungi una regola al gruppo di sicurezza che consenta il traffico in entrata dal gruppo di sicurezza dell'istanza. Inserisci le seguenti informazioni:
    Per Tipo, scegli TCP personalizzato.
    Per Intervallo di porte, inserisci la porta predefinita di Amazon Redshift, 5439.
    Per Origine, scegli Personalizza, quindi inserisci il nome del tuo gruppo di sicurezza.

  6. Avvia un nuovo cluster Amazon Redshift oppure ripristina un cluster da uno snapshot. Nella pagina Configurazione aggiuntiva, scegli le seguenti opzioni:
    Per Scegli un VPC, seleziona il tuo Amazon VPC.
    Per Gruppo di sottoreti del cluster, scegli il tuo gruppo di sottoreti.
    Per Accessibile pubblicamente, scegli No.
    Per Gruppi di sicurezza VPC, scegli il tuo gruppo di sicurezza. Attendi che il cluster sia nello stato Disponibile.

  7. Esegui il comando di seguito riportato per connetterti all'istanza EC2 dal tuo computer locale:

    ssh -i "your_key.pem" ec2-user@your_EC2_endpoint

    Nota: sostituisci your_key.pem e your_EC2_endpoint con i tuoi valori. Per ulteriori informazioni, consulta la sezione Connect to your Linux instance from Linux or macOS using SSH.

  8. Esegui il comando riportato di seguito per installare telnet:

    sudo yum install telnet
  9. Per utilizzare telnet per testare la connessione al cluster Amazon Redshift, esegui il comando riportato di seguito:

    telnet cluster-endpoint cluster-port

    Nota: sostituisci cluster-endpoint e cluster-port con i tuoi valori.
    In alternativa, esegui il comando riportato di seguito per usare dig per verificare che il computer locale possa raggiungere l'indirizzo IP privato del cluster Amazon Redshift:

    dig cluster-endpoint

    Nota: sostituisci cluster-endpoint con il tuo endpoint del cluster.

Crea il tunnel

Per creare un tunnel, completa i seguenti passaggi:

  1. Installa SQL Workbench/J sul computer locale.
  2. Scarica il driver JDBC di Amazon Redshift più recente.
  3. In SQL Workbench/J, utilizza il driver JDBC per creare un profilo di connessione.
  4. Per configurare la connessione SSH in SQL Workbench/J, scegli SSH, quindi inserisci le seguenti informazioni:
    Per Nome host SSH, inserisci l'indirizzo IP pubblico o il DNS dell'istanza EC2.
    Per Porta SSH, inserisci 22.
    Per Nome utente, inserisci ec2-user.
    Per File della chiave privata, inserisci il file .pem che hai scaricato quando hai creato l'istanza EC2.
    Per Password, mantieni il campo vuoto.
    Per Porta locale, inserisci una porta locale libera. Il cluster Amazon Redshift utilizza la porta 5439 per impostazione predefinita.
    Per Nome host del database, inserisci l'endpoint del cluster. L'endpoint non può includere il numero di porta o il nome del database.
    Per Porta del database, inserisci 5439.
    Seleziona l'opzione Riscrivi URL JDBC.
  5. Scegli OK.
  6. Assicurati di inserire correttamente l'URL JDBC, il nome del superutente e la password.
  7. Per verificare che la connessione funzioni, scegli Test. Per ulteriori informazioni, consulta la sezione Connecting through an SSH tunnel nel sito Web SQL Workbench/J.

(Facoltativo) Modifica la connessione per un utente AWS Identity and Access Management (IAM)

Per connetterti al cluster Amazon Redshift come utente IAM, completa i seguenti passaggi per modificare il profilo di connessione:

  1. Verifica la policy utente IAM. La policy utente IAM deve consentire le azioni di Amazon Redshift GetClusterCredentials, JoinGroup e CreateClusterUser per le risorse dbgroup, dbuser e dbname. Di seguito è riportato un esempio di policy utente IAM:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "redshift:GetClusterCredentials",
                    "redshift:CreateClusterUser",
                    "redshift:JoinGroup"
                ],
                "Resource": [
                    "arn:aws:redshift:eu-west-2:012345678912:dbgroup:clustername/group_name",
                    "arn:aws:redshift:eu-west-2:012345678912:dbuser:clustername/user_name or * ",
                    "arn:aws:redshift:eu-west-2:012345678912:dbname:clustername/database_name"
                ]
            }
        ]
    }
    Nota: sostituisci us-west-2 con la Regione AWS in cui si trova il cluster, 012345678912 ** con l'ID del tuo account AWS e user\ _name con il nome dell'utente Amazon Redshift. In alternativa, puoi usare "\ ***" invece di un nome utente specifico.
  2. In SQL Workbench/J, modifica la prima parte dell'URL JDBC del profilo di connessione in jdbc:redshift:iam. Ad esempio, modifica l'URL JDBC in jdbc:redshift:iam://127.0.0.1:5439/example.
  3. Scegli Proprietà estese, quindi inserisci le seguenti informazioni:
    Per AccessKeyID, inserisci l'ID della chiave di accesso dell'utente IAM.
    Per SecretAccessKey, inserisci la chiave di accesso segreta dell'utente IAM.
    (Facoltativo) Per DbGroups, scegli questa opzione per forzare l'utente IAM a unirsi a un gruppo esistente.
    Per DbUser, inserisci il nome dell'utente IAM.
    Per AutoCreate, imposta l'opzione su true.
    Per ClusterID, inserisci il nome del cluster Amazon Redshift.
    Per Regione, inserisci la regione in cui si trova il cluster, ad esempio us-east-1.
  4. Nella pagina del profilo di connessione al cluster, scegli Test.

Informazioni correlate

Non riesco a connettermi al mio cluster Amazon Redshift

AWS UFFICIALE
AWS UFFICIALEAggiornata 4 mesi fa