Étape 3 : Configurer l'accès

Cette section explique comment accorder l'accès à votre déploiement MDE de différentes manières, 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 d'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 tunneliser le trafic vers mde-proxy et comment créer un tunnel vers celui-ci à partir de votre station 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 latéral.

    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 de consentement 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é.
    2. Sur la page "Présentation", cliquez sur Commencer.
    3. Saisissez le nom de l'application que vous souhaitez afficher, par exemple MDE.
    4. Ajoutez votre adresse e-mail en tant qu'adresse e-mail d'assistance utilisateur , puis cliquez sur Suivant.
    5. Pour l'audience, sélectionnez Externe , puis cliquez sur Suivant.
    6. Ajoutez votre adresse e-mail en tant que coordonnées , puis cliquez sur Suivant.
    7. Lisez et acceptez le Règlement sur les données utilisateur dans les services d'API Google, puis cliquez sur Continuer.
    8. Cliquez sur Créer.

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, lisez et acceptez les exigences de configuration, puis cliquez sur Activer.

  5. Une fois activée, cochez la case à côté du nom de la ressource (mde-ui-ext-service).

  6. Dans le panneau latéral 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 interorganisationnel (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. Accédez à la page IAP.
  2. Pour la ressource mde-ui-ext-service, cliquez sur Plus d'options (trois points) dans la colonne Actions , puis sélectionnez Paramètres.
  3. Sélectionnez OAuth personnalisé.
  4. Cliquez sur Générer automatiquement des identifiants (ou fournissez des identifiants existants si vous les avez créés manuellement dans "API et services").
  5. 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 de consentement 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

Pour savoir comment créer un enregistrement A, consultez votre hôte DNS.