Étape 3 : Configurer l'accès

Cette section fournit des conseils sur les différentes manières d'accorder l'accès à votre déploiement MDE, en fonction de vos besoins.

Tunnel SSH via IAP

Pour vous connecter aux adresses IP privées des services MDE, vous pouvez utiliser un tunnel SSH vers une VM proxy. Cette approche vous permet d'utiliser des outils locaux tels que Postman pour interagir avec les API MDE.

Le déploiement MDE standard crée une VM proxy appelée mde-proxy. Cette machine peut proxyfier les requêtes entrantes vers la passerelle API MDE ou l'interface Web MDE. Cette VM ne possède qu'une adresse IP privée, mais IAP vous permet de créer un tunnel SSH sécurisé vers cette machine à l'aide d' Identity-Aware Proxy (IAP) pour le transfert TCP. Le reste de cette section explique comment configurer IAP pour la tunnelisation du trafic vers mde-proxy et comment créer un tunnel vers celui-ci à partir de votre poste de travail :

  1. Dans la Google Cloud console, accédez à IAP et cliquez sur Activer l'API. Cette opération peut prendre plusieurs minutes.

  2. Dans la Google Cloud console, accédez à IAP et cliquez sur RESSOURCES SSH ET TCP.

  3. Accordez l'autorisation aux utilisateurs autorisés à utiliser IAP pour se connecter à mde-proxy via IAP :

    Avant que les utilisateurs puissent utiliser IAP pour se connecter à mde-proxy, accordez leur le roles/iap.tunnelResourceAccessor rôle en suivant les instructions ci-dessous :

    1. Sélectionnez mde-proxy dans la liste.

    2. Cliquez sur Ajouter un compte principal dans le panneau de droite.

    3. Saisissez l'adresse e-mail du compte principal auquel vous souhaitez accorder l'accès.

    4. Sélectionnez le rôle IAP-secured Tunnel User.

  4. Créez un tunnel vers l'API MDE à l'aide de la commande suivante :

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy"  \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8080:api.mde.cloud.google.com:80
    

    Une fois la commande exécutée, les API MDE sont accessibles sous http://localhost:8080.

  5. Créez un tunnel vers l'interface Web MDE.

    Si vous avez créé un tunnel vers l'API MDE à l'étape 3, vous pouvez ouvrir un nouveau terminal pour exécuter les commandes ultérieurement. Les tunnels SSH vers l'API MDE et l'interface Web MDE peuvent s'exécuter en parallèle.

    export MDE_PROXY_ZONE=$(gcloud compute instances list --filter="mde-proxy" \
    --format="value(zone)")
    
    gcloud compute ssh mde-proxy \
    --zone "$MDE_PROXY_ZONE" --tunnel-through-iap  \
    -- -N -L 8081:ui.mde.cloud.google.com:80
    

    Une fois la commande exécutée, l'interface Web MDE est accessible sous http://localhost:8081.

Configurer Identity-Aware Proxy

Identity-Aware Proxy (IAP) vous permet de vous connecter de manière sécurisée aux adresses IP internes de l'API MDE et de l'interface Web, ainsi que de limiter l'accès externe à l'interface Web MDE aux seuls utilisateurs autorisés si vous l'avez déployée avec l'option Équilibreur de charge externe.

Pour utiliser IAP, vous devez d'abord activer l'API du service IAP (si ce n'est pas déjà fait) et configurer l'écran OAuth :

  1. Dans la Google Cloud console, accédez à IAP et cliquez sur Activer l'API. Cette opération peut prendre plusieurs minutes.

  2. Configurez l'écran d'autorisation OAuth pour IAP :

    1. Dans la Google Cloud console, accédez à la page Google Auth Platform et sélectionnez le projet de déploiement MDE si vous y êtes invité.

      1. Sur la page "Présentation", cliquez sur Créer un client OAuth.
      2. Sélectionnez Application Web comme type d'application.
      3. Saisissez le nom de l'application que vous souhaitez afficher, par exemple MDE.
      4. Cliquez sur Créer , puis sur OK dans la fenêtre pop-up.
      5. Sur la page Branding, assurez-vous que le nom de l'application, l'adresse e-mail d'assistance utilisateur et les coordonnées du développeur s'affichent.

    Pour modifier ultérieurement les informations affichées sur l'écran d'autorisation OAuth, comme le nom du produit ou l'adresse e-mail, répétez les étapes de configuration précédentes.

Configurer l'accès à l'équilibreur de charge HTTP externe de l'interface Web

Dans cette section, vous allez configurer l'accès à l'équilibreur de charge HTTP externe de l'interface Web MDE à l'aide d'IAP.

Si vous avez activé l'équilibreur de charge HTTP externe pour l'interface Web MDE, vous devez utiliser IAP pour limiter l'accès à l'application aux seuls utilisateurs autorisés.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Vous avez déployé MDE avec l'interface Web MDE.
  • Vous avez déployé l'interface Web MDE avec un équilibreur de charge HTTP externe.
  • Vous avez suivi les étapes de configuration générale d'IAP.

Étapes

  1. Dans la Google Cloud console, accédez à la page IAP.

  2. Recherchez la ressource correspondant au service d'interface utilisateur externe (recherchez mde-ui-ext-service).

  3. Dans la colonne IAP de cette ressource, basculez le bouton sur Activé.

  4. Dans la boîte de dialogue de confirmation, cliquez sur Activer.

  5. Cochez la case à côté du nom de la ressource.

  6. Dans le panneau de droite, cliquez sur Ajouter un compte principal.

  7. Saisissez l'adresse e-mail de l'utilisateur ou du groupe auquel vous souhaitez accorder l'accès.

  8. Dans la liste déroulante Rôle, sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP.

  9. Cliquez sur Enregistrer.

Accès inter-organisations (facultatif)

Par défaut, IAP utilise des clients OAuth gérés par Google, qui limitent strictement l'accès aux utilisateurs de la même Google Cloud organisation que le projet. Si votre déploiement nécessite un accès depuis des utilisateurs externes (partenaires utilisant un domaine différent), vous devez utiliser un client OAuth personnalisé configuré avec un type d'utilisateur Externe.

Pour en savoir plus, consultez la documentation officielle sur l' Google Cloud utilisation de clients OAuth personnalisés avec IAP et l'activation d'IAP pour GKE.

Vous pouvez configurer cela à l'aide de l'une des méthodes suivantes :

Méthode A : Configuration directe dans la console (sans secrets GKE)

Si votre BackendConfig GKE ne gère pas les paramètres IAP (c'est-à-dire qu'il ne comporte pas de bloc iap, ce qui permet à GKE Ingress d'hériter des paramètres existants), vous pouvez configurer le client personnalisé directement dans la console :

  1. Configurez l'écran d'autorisation OAuth de votre projet sur Externe (voir la section Configurer l'écran d'autorisation OAuth ci-dessus). Si l'application reste à l'état "Test", assurez-vous d'ajouter les utilisateurs externes à la liste Utilisateurs test.
  2. Accédez à la page IAP.
  3. Pour la ressource mde-ui-ext-service, cliquez sur Plus d'options (trois points) dans la colonne Actions , puis sélectionnez Paramètres.
  4. Sélectionnez OAuth personnalisé.
  5. Cliquez sur Générer automatiquement des identifiants (ou fournissez des identifiants existants si vous les avez créés manuellement dans "API et services").
  6. Cliquez sur Enregistrer.

Méthode B : Configuration gérée par GKE (à l'aide de secrets Kubernetes)

Si vous préférez gérer la configuration IAP à l'aide de manifestes Kubernetes (GitOps), vous devez stocker les identifiants dans un secret et y faire référence dans votre BackendConfig :

  1. Configurez l'écran d'autorisation OAuth sur Externe et créez manuellement des identifiants de client OAuth sous API et services > Identifiants (type d'application Web).
  2. Créez un secret Kubernetes dans le cluster : sh kubectl create secret generic iap-oauth-secret \ --namespace=mde \ --from-literal=client_id=YOUR_CLIENT_ID \ --from-literal=client_secret=YOUR_CLIENT_SECRET
  3. Mettez à jour le BackendConfig de votre service pour faire référence au secret : yaml spec: iap: enabled: true oauthclientCredentials: secretName: iap-oauth-secret

Configurer le DNS pour l'interface Web MDE

Si vous avez activé l'équilibreur de charge HTTP externe pour l'interface Web MDE, vous devez définir l'enregistrement A du nom de domaine que vous avez attribué à la variable MDE_UI_DOMAIN_NAME dans input.tfvars sur l'adresse IP de l'équilibreur de charge HTTP externe qui a été déployé pour terminer le provisionnement du certificat SSL géré par Google.

Vous pouvez rechercher l'adresse IP de l'équilibreur de charge HTTP externe à l'aide de la commande suivante :

gcloud compute addresses list --filter="name~'.*mde-ui.*'" --format="value(address)" --global

Consultez votre hôte DNS pour savoir comment créer un enregistrement A.