Comment utiliser un tunnel SSH pour accéder à OpenSearch Dashboards avec l'authentification Amazon Cognito depuis l'extérieur d'un VPC ?

Lecture de 6 minute(s)
0

Mon domaine Amazon OpenSearch Service se trouve dans un cloud privé virtuel (VPC). Je souhaite utiliser un tunnel SSH pour accéder à OpenSearch Dashboards avec l'authentification Amazon Cognito depuis l'extérieur du VPC.

Brève description

Par défaut, Amazon Cognito limite l'accès à OpenSearch Dashboards aux utilisateurs d'AWS Identity and Access Management (IAM) dans le VPC. Pour accéder à un domaine OpenSearch Service depuis un autre VPC, créez un point de terminaison VPC d'interface pour OpenSearch Service. Pour accéder publiquement à l'URL d'un tableau de bord, utilisez un tunnel SSH.

Important : Vérifiez que l'accès à OpenSearch Dashboards depuis l'extérieur du VPC est conforme aux exigences de sécurité de votre organisation.

Pour utiliser un tunnel SSH afin d'accéder à OpenSearch Dashboards depuis l'extérieur du VPC, procédez comme suit :

  1. Créez un groupe d'utilisateurs et un groupe d'identités Amazon Cognito.
  2. Créez une instance Amazon Elastic Compute Cloud (Amazon EC2) dans un sous-réseau public.
  3. Utilisez un module complémentaire de navigateur pour configurer un proxy SOCKS.
  4. Créez un tunnel SSH entre votre machine locale et l'instance EC2.
    Remarque : Vous pouvez également utiliser un proxy NGINX ou un VPN client pour accéder à OpenSearch Dashboards depuis l'extérieur d'un VPC avec l'authentification Amazon Cognito.
  5. (Facultatif) Si vous activez le contrôle d'accès précis, ajoutez un rôle authentifié Amazon Cognito.

Résolution

Créer un groupe d'utilisateurs et d'identités Amazon Cognito

Procédez comme suit :

  1. Créez un groupe d'utilisateurs Amazon Cognito. Configurez les paramètres suivants :
    Pour Type d'application, choisissez Application Web traditionnelle.
    Pour Nommer votre application, entrez un nom d'application personnalisé ou conservez le nom par défaut.
    Pour Options relatives aux identifiants de connexion, choisissez Nom d'utilisateur.
    Pour Attributs obligatoires pour l'inscription, choisissez E-mail.
  2. Ouvrez la console Amazon Cognito.
  3. Dans le volet de navigation, sélectionnez Groupes d'utilisateurs.
  4. Sélectionnez votre groupe d’utilisateurs.
  5. Dans le volet de navigation, sous Marque, choisissez Connexion gérée. Configurez les paramètres suivants :
    Pour Domaines dotés d'une marque de connexion gérée, choisissez Mettre à jour la version.
    Pour Version de la marque, choisissez Interface utilisateur hébergée (classique).
  6. Configurez vos utilisateurs et vos groupes.
  7. Créez un pool d'identités Amazon Cognito. Configurez les paramètres suivants :
    Pour Accès utilisateur, choisissez Accès authentifié.
    Pour Sources d'identité authentifiées, entrez Groupe d'utilisateurs Amazon Cognito.
    Pour Rôle IAM, choisissez Créer un nouveau rôle IAM, puis entrez un nom de rôle.
    Pour Détails du groupe d'utilisateurs, sélectionnez votre groupe d'utilisateurs, puis choisissez ID AppClient.
    Pour Paramètres de rôle, choisissez Utiliser le rôle authentifié par défaut.
    Pour Mappage des demandes, choisissez Inactif.
  8. Configurez votre domaine OpenSearch Service pour utiliser l'authentification Amazon Cognito. Configurez les paramètres suivants :
    Pour Groupe d'utilisateurs Cognito, sélectionnez votre groupe d'utilisateurs.
    Pour Groupes d'identités Cognito, sélectionnez votre groupe d'identités.
  9. Pour Politique d'accès au domaine, entrez la politique d'accès suivante :
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::account-id:role/service-role/identitypool-role"
          },
          "Action": "es:*",
          "Resource": "arn:aws:es:region:account-id:domain/domain-name/*"
        }
      ]
    }
    Remarque : Remplacez account-id par votre compte AWS et identitypool-role par le nom de votre rôle dans le pool d'identités. Remplacez domain-name par votre domaine OpenSearch Service et region par la région AWS de votre domaine.

Créer une instance EC2 et configurer des règles de groupe de sécurité

Important : Le sous-réseau de l'instance doit se trouver dans le même VPC que votre domaine OpenSearch Service.

Procédez comme suit :

  1. Lancez une instance dans le sous-réseau public du VPC dans lequel se trouve votre domaine OpenSearch Service.
  2. Sur la page Configurer les détails de l'instance, vérifiez que l’option Attribuer automatiquement l’adresse IP publique est définie sur Activer.
  3. Ajoutez des règles entrantes au groupe de sécurité associé à votre instance. Autorisez le trafic vers les ports 8157 et 22 à partir de l'adresse IP de votre machine locale.
  4. Ajoutez une règle entrante au groupe de sécurité associé au domaine OpenSearch Service. Autorisez le trafic provenant de l'adresse IP privée de votre instance.

Configurer le proxy SOCKS

Remarque : Les instructions suivantes utilisent FoxyProxy pour configurer le proxy SOCKS. Pour installer l'extension, consultez FoxyProxy sur Chrome Web Store.

Procédez comme suit :

  1. Ouvrez FoxyProxy, puis choisissez Options.
  2. Sous Proxies, choisissez Ajouter.
  3. Configurez les paramètres suivants :
    Pour Titre, entrez un nom de proxy.
    Dans Nom d'hôte, saisissez localhost.
    Dans Port, saisissez 8157.
    Dans Type, sélectionnez SOCKS5.
  4. Pour ajouter un motif, choisissez le signe plus (+), puis configurez les paramètres suivants :
    Laissez le premier champ vide.
    Pour Titre, entrez un nom pour votre modèle.
    Pour Modèle, entrez le point de terminaison de VPC OpenSearch Dashboards, par exemple : https://vpc-mydomain-rg3abcdefghiflge.us-east-1.es.amazonaws.com/_dashboards.
    Pour Type, choisissez Caractères génériques.
    Pour Inclure, choisissez Inclure.
  5. Sélectionnez Enregistrer.

Créer le tunnel SSH

Procédez comme suit :

  1. Utilisez la machine locale que vous utilisez pour accéder à OpenSearch Dashboards pour exécuter la commande suivante :

    ssh -i "mykeypair.pem"  ec2-user@public_dns_name -ND 8157

    Remarque : Remplacez mykeypair.pem par le nom du fichier .pem pour la paire de clés que vous avez spécifiée lors du lancement de votre instance. Remplacez public_dns_name par le DNS public de votre instance. Pour en savoir plus, consultez la section Attributs DNS de votre VPC.

  2. Entrez le point de terminaison OpenSearch Dashboards dans votre navigateur pour ouvrir la page de connexion Amazon Cognito pour OpenSearch Dashboards.

(Facultatif) Si vous activez des contrôles d'accès précis, ajoutez un rôle dans le pool d'identités Amazon Cognito

Si vous activez le contrôle d'accès affiné pour votre cluster OpenSearch Service, il se peut que vous receviez une erreur de rôle manquant.

Pour résoudre l'erreur de rôle manquant, procédez comme suit :

  1. Ouvrez la console OpenSearch Service.
  2. Dans le volet de navigation, sous Clusters gérés, choisissez Domaines.
  3. Sélectionnez votre domaine, puis choisissez Actions.
  4. Choisissez Modifier les configurations de sécurité.
  5. Choisissez Définir l’ARN IAM comme utilisateur principal.
  6. Pour ARN IAM, entrez l'ARN du rôle du pool d'identités Amazon Cognito.
  7. Sélectionnez Enregistrer.

Pour plus d'informations sur le contrôle d'accès précis, consultez le Didacticiel : Configurer un domaine avec un utilisateur principal IAM et une authentification Amazon Cognito.

Informations connexes

Configuration de l'authentification Amazon Cognito pour OpenSearch Dashboards

Lancer vos domaines Amazon OpenSearch Service dans un VPC

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