Comment puis-je accéder à un cluster Amazon Redshift privé depuis ma machine locale ?

Lecture de 6 minute(s)
0

Je souhaite utiliser mon ordinateur local pour accéder à un cluster Amazon Redshift qui se trouve dans un sous-réseau privé Amazon Virtual Private Cloud (Amazon VPC).

Brève description

Utilisez une instance Amazon Elastic Compute Cloud (Amazon EC2) et SQL Workbench/J pour créer un tunnel SSH. Le tunnel achemine tout le trafic entrant depuis la machine locale vers le cluster Amazon Redshift privé.

Résolution

Création du VPC Amazon, de l'instance EC2 et du cluster Amazon Redshift

Pour créer le VPC Amazon, l’instance EC2 et le cluster Amazon Redshift, procédez comme suit :

  1. Créez un VPC Amazon avec des sous-réseaux publics et privés.

  2. Lancez une instance EC2 à partir d’une Amazon Machine Image (AMI) Amazon Linux 2 dans le sous-réseau public du VPC Amazon . Lorsque vous créez l’instance, choisissez les options suivantes :
    Pour Attribution automatique d’une adresse IP publique, choisissez Activer. Vous pouvez également attribuer une adresse IP Elastic à l’instance.
    Créez un nouveau groupe de sécurité avec une règle SSH.
    Pour Source, choisissez Personnalisé, puis saisissez votre bloc CIDR. Ou, Choisissez My IP.

  3. Sur la console Amazon Redshift, créez un sous-réseau de cluster. Saisissez les informations suivantes :
    Pour VPC ID, choisissez l’ID de votre VPC Amazon.
    Pour ID de sous-réseau, choisissez l’ID du sous-réseau privé.

  4. Créez un nouveau groupe de sécurité.

  5. Ajoutez une règle au groupe de sécurité qui autorise le trafic entrant depuis le groupe de sécurité de l’instance. Saisissez les informations suivantes :
    Pour Type, choisissez TCP personnalisé.
    Dans Plage de port, entrez le port par défaut pour Amazon Redshift, 5439.
    Pour Source, choisissez Personnalisé, puis entrez le nom de votre groupe de sécurité.

  6. Lancez un nouveau cluster Amazon Redshift ou restaurez un cluster à partir d’un instantané. Sur la page Configuration supplémentaire, choisissez les options suivantes :
    Pour Choisir un VPC, choisissez votre Amazon VPC.
    Pour Groupe de sous-réseaux cluster, choisissez votre groupe de sous-réseaux.
    Pour Accessible au public, sélectionnez Non.
    Pour les Groupes de sécurité VPC, choisissez votre groupe de sécurité. Attendez que le cluster soit à l’état disponible.

  7. Exécutez la commande suivante pour vous connecter à l’instance EC2 depuis votre machine locale :

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

    Remarque : remplacez your_key.pem et your_EC2_endpoint par vos valeurs. Pour en savoir plus, consultez Connexion à votre instance Linux depuis Linux ou macOS à l’aide de SSH.

  8. Exécutez la commande suivante pour installer telnet :

    sudo yum install telnet
  9. Pour utiliser telnet afin de tester la connexion à votre cluster Amazon Redshift, exécutez la commande suivante :

    telnet cluster-endpoint cluster-port

    Remarque : Remplacez **cluster-endpoint ** et cluster-port par vos valeurs.
    Vous pouvez également exécuter la commande suivante pour utiliser dig afin de confirmer que votre machine locale peut accéder à l’adresse IP privée du cluster Amazon Redshift :

    dig cluster-endpoint

    Remarque : Remplacezcluster-endpoint par le point de terminaison de votre cluster.

Création d’un tunnel

Pour créer un tunnel, procédez comme suit :

  1. Installez SQL Workbench/J sur votre ordinateur local.
  2. Téléchargez le dernier pilote JDBC Amazon Redshift.
  3. Dans SQL Workbench/J, utilisez le pilote JDBC pour créer un profil de connexion.
  4. Pour configurer la connexion SSH dans SQL Workbench/J, choisissez SSH, puis entrez les informations suivantes :
    Pour le nom d’hôte SSH, entrez l’adresse IP publique ou le DNS de l’instance EC2.
    Pour le port SSH, entrez 22.
    Dans le champ Nom d’utilisateur, saisissez ec2-user.
    Dans Fichier de clé privée, entrez le fichier .pem que vous avez téléchargé lors de la création de l’instance EC2.
    Pour Mot de passe, laissez le champ vide.
    Pour Port local, saisissez n’importe quel port local libre. Votre cluster Amazon Redshift utilise le port 5439 par défaut.
    Pour Nom d’hôte de la base de données, entrez le point de terminaison du cluster. Le point de terminaison ne peut pas inclure le numéro de port ou le nom de la base de données.
    Pour Port de base de données, entrez 5439.
    Sélectionnez l’option Réécrire l’URL JDBC.
  5. Cliquez sur OK.
  6. Assurez-vous de saisir correctement l’URL JDBC, le nom du super-utilisateur et le mot de passe.
  7. Pour vérifier que la connexion fonctionne, choisissez Tester. Pour plus d’informations, consultez Connexion via un tunnel SSH sur le site Web SQL Workbench/J.

(Facultatif) Modifier la connexion d’un utilisateur AWS Identity and Access Management (IAM)

Pour vous connecter au cluster Amazon Redshift en tant qu’utilisateur IAM, procédez comme suit pour modifier le profil de connexion :

  1. Vérifiez la politique utilisateur d’IAM. La politique utilisateur d’IAM doit autoriser les actions Amazon Redshift GetClusterCredentials, JoinGroup et CreateClusterUser pour les ressources dbgroup, dbuser et dbname. Voici un exemple de politique utilisateur 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"
                ]
            }
        ]
    }
    Remarque : Remplacez us-west-2 par la région AWS dans laquelle se trouve votre cluster, 012345678912 par votre identifiant de compte AWS et user_name par le nom de l’utilisateur Amazon Redshift. Vous pouvez également utiliser « * » au lieu d’un nom d’utilisateur spécifique.
  2. Dans SQL Workbench/J, remplacez la première partie de l’URL JDBC du profil de connexion par jdbc:redshift:iam. Par exemple, remplacez l’URL JDBC par jdbc:redshift:iam://127.0.0.1:5439/example.
  3. Choisissez Propriétés étendues, puis entrez les informations suivantes :
    Pour AccessKeyID, entrez l’ID de clé d’accès de l’utilisateur IAM.
    Pour SecretAccessKey, entrez la clé d’accès secrète de l’utilisateur IAM.
    (Facultatif) Pour DbGroups, choisissez cette option pour forcer l’utilisateur IAM à rejoindre un groupe existant.
    Pour DbUser, entrez le nom de l’utilisateur IAM.
    Pour AutoCreate, définissez l’option sur true.
    Pour ClusterID, entrez le nom du cluster Amazon Redshift.
    Pour Région, entrez la région dans laquelle se trouve le cluster, par exemple us-east-1.
  4. Sur la page du profil de connexion au cluster, choisissez Tester.

Informations connexes

Pourquoi ne puis-je pas me connecter au cluster Amazon Redshift ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois