Activer IAP pour Compute Engine

Cette page explique comment sécuriser une instance Compute Engine avec Identity-Aware Proxy (IAP).

Avant de commencer

Pour activer IAP pour Compute Engine, vous devez disposer des éléments suivants :

Si votre instance Compute Engine n'est pas déjà configurée, consultez la page Configurer IAP pour Compute Engine pour obtenir une présentation complète.

IAP authentifie les utilisateurs à l'aide d'un client OAuth géré par Google. Seuls les utilisateurs de l'organisation peuvent accéder application. Si vous souhaitez autoriser l'accès à des utilisateurs externes à votre organisation, consultez la section Activer IAP pour les applications externes.

Vous pouvez activer IAP sur une Compute Engine service de backend ou sur un Règle de transfert Compute Engine. Lorsque vous activez IAP sur un service de backend Compute Engine, seul ce service de backend est protégé par IAP. Lorsque vous activez IAP sur une règle de transfert Compute Engine, toutes les instances Compute Engine derrière la règle de transfert sont protégées par IAP.

Activer IAP sur une règle de transfert

Vous pouvez activer IAP sur une règle de transfert à l'aide de Règles d'autorisation de l'équilibreur de charge d'infrastructure.

gcloud

  1. Exécutez la commande suivante pour préparer un fichier policy.yaml.
$ cat << EOF > policy.yaml
action: CUSTOM
description: authz policy with Cloud IAP
name: AUTHZ_POLICY_NAME
customProvider:
  cloudIap: {}
target:
  loadBalancingScheme: EXTERNAL_MANAGED
  resources:
  - https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID
EOF
  1. Exécutez la commande suivante pour activer l'API IAP sur une règle de transfert.
gcloud beta network-security authz-policies import AUTHZ_POLICY_NAME \
--source=policy.yaml \
--location=LOCATION \
--project=PROJECT_ID

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet Google Cloud.
  • LOCATION : région dans laquelle se trouve la ressource.
  • FORWARDING_RULE_ID: ID de la ressource de règle de transfert.
  • AUTHZ_POLICY_NAME: nom de la règle d'autorisation.

API

  1. Exécutez la commande suivante pour préparer un fichier policy.json.
    cat << EOF > policy.json
    {
    "name": "AUTHZ_POLICY_NAME",
    "target": {
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "resources": [
    "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/LOCATION/forwardingRules/FORWARDING_RULE_ID"
    ],
    },
    "action": "CUSTOM",
    "httpRules": [],
    "customProvider": {
    "cloudIap": {}
    }
    }
    EOF
    
  2. Exécutez la commande suivante pour activer l'API IAP sur une règle de transfert.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://networksecurity.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/authzPolicies"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de projet Google Cloud.
    • LOCATION : région dans laquelle se trouve la ressource.
    • FORWARDING_RULE_ID: ID de la ressource de règle de transfert.
    • AUTHZ_POLICY_NAME : nom de la stratégie d'autorisation.

Après avoir activé IAP sur une règle de transfert, vous pouvez appliquer des autorisations aux ressources.

Activer IAP sur un service de backend Compute Engine

Vous pouvez activer l'IAP sur un service de backend Compute Engine via ce service de backend.

Console

Le client OAuth géré par Google n'est pas disponible lorsque vous activez IAP à l'aide de la console Google Cloud.

Si vous n'avez pas configuré l'écran d'autorisation OAuth de votre projet, vous êtes invité à le faire. Pour configurer votre écran d'autorisation OAuth, consultez la section Configurer l'écran de consentement OAuth.

Configurer l'accès à IAP

  1. Accédez à la page Identity-Aware Proxy.
    Accéder à la page "Identity-Aware Proxy"
  2. Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
  3. Cochez la case à côté de la ressource à laquelle vous souhaitez accorder l'accès.

    Si vous ne voyez aucune ressource, assurez-vous qu'elle a été créée et que le contrôleur d'entrée Compute Engine BackendConfig est synchronisé.

    Pour vérifier que le service de backend est disponible, exécutez la commande gcloud suivante :

    gcloud compute backend-services list
  4. Dans le panneau de droite, cliquez sur Ajouter un compte principal.
  5. Dans la boîte de dialogue Ajouter des comptes principaux qui s'affiche, ajoutez les adresses e-mail des groupes ou des personnes auxquels vous souhaitez accorder le rôle Utilisateur de l'application Web sécurisée par IAP dans le cadre du projet.

    Les types de comptes principaux suivants peuvent avoir ce rôle:

    • Compte Google : user@gmail.com
    • Groupe Google : admins@googlegroups.com
    • Compte de service: server@example.gserviceaccount.com
    • Domaine Google Workspace : example.com

    Veillez à ajouter un compte Google auquel vous avez accès.

  6. Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
  7. Cliquez sur Save.

Activer IAP

  1. Sur la page Identity-Aware Proxy, sous APPLICATIONS (APPLICATIONS), recherchez l'équilibreur de charge qui diffuse l'élément instance group auquel vous souhaitez restreindre l'accès. Pour activer IAP pour une ressource,
    Pour activer IAP, procédez comme suit :
    • Au moins un protocole de la configuration de l'interface d'équilibrage de charge doit correspondre à HTTPS. En savoir plus sur la configuration d'un équilibreur de charge
    • Vous avez besoin des autorisations compute.backendServices.update, clientauthconfig.clients.create et clientauthconfig.clients.getWithSecret. Ces autorisations sont accordées par des rôles (par exemple, Éditeur de projet). Pour en savoir plus, consultez la page Gérer les accès aux ressources sécurisées par IAP.
  2. Dans la fenêtre Activer IAP qui s'affiche, cliquez sur Activer pour confirmer que vous souhaitez qu'IAP sécurise votre ressource. Une fois IAP activé, des identifiants de connexion sont requis pour toutes les connexions à votre équilibreur de charge. Seuls les comptes disposant du rôle Utilisateur de l'application Web sécurisée par IAP sur le projet y ont accès.

gcloud

Avant de configurer votre projet et IAP, vous devez disposer d'une version à jour gcloud CLI. Pour savoir comment installer la gcloud CLI, consultez la page Installer la gcloud CLI.

  1. Pour vous authentifier, utilisez la Google Cloud CLI et exécutez la commande suivante.
    gcloud auth login
  2. Pour vous connecter, suivez l'URL qui s'affiche.
  3. Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.
  4. Exécutez la commande suivante pour spécifier le projet qui contient la ressource que vous souhaitez protéger avec IAP.
    gcloud config set project PROJECT_ID
  5. Pour activer IAP, exécutez la commande à l'échelle mondiale ou régionale.

    Champ d'application global
    gcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
    Champ d'application régional
    gcloud compute backend-services update BACKEND_SERVICE_NAME --region REGION_NAME --iap=enabled

Après avoir activé IAP, vous pouvez utiliser la gcloud CLI pour modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor Découvrez comment gérer les rôles et les autorisations.

API

  1. Exécutez la commande suivante pour préparer un fichier settings.json.

    cat << EOF > settings.json
    {
    "iap":
      {
        "enabled":true
      }
    }
    EOF
    

  2. Exécutez la commande suivante pour activer les achats intégrés.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d @settings.json \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/REGION/backendServices/BACKEND_SERVICE_NAME"
    

Une fois que vous avez activé IAP, vous pouvez modifier la stratégie d'accès IAP à l'aide du rôle IAM roles/iap.httpsResourceAccessor via la Google Cloud CLI. Découvrez comment gérer les rôles et les autorisations.