Cette page explique comment sécuriser une instance Compute Engine avec Identity-Aware Proxy (IAP).
Pour sécuriser des ressources qui ne sont pas sur Google Cloud, consultez la page Sécuriser les applications et les ressources sur site avec IAP.
Avant de commencer
Pour activer IAP pour Compute Engine, vous devez disposer des éléments suivants :
- Un projet de la console Google Cloud avec la facturation activée
- Un groupe d'une ou plusieurs instances Compute Engine desservies par un équilibreur de charge
- Découvrez comment configurer un équilibreur de charge HTTPS externe.
- Découvrez comment configurer un équilibreur de charge HTTP interne.
- Un nom de domaine enregistré à l'adresse de votre équilibreur de charge
- Un code d'application pour vérifier que toutes les requêtes ont une identité
- Découvrez comment obtenir l'identité de l'utilisateur.
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 à l'application compatible avec les achats intégrés. Si vous souhaitez autoriser l'accès à des utilisateurs externes à votre organisation, consultez la section Activer IAP pour les applications externes.
Vous pouvez activer l'API Access Protocol sur un service backend Compute Engine ou sur une règle de transfert Compute Engine. Lorsque vous activez l'IAP sur un service de backend Compute Engine, seul ce service de backend est protégé par l'IAP. Lorsque vous activez IAP sur une règle de transfert Compute Engine, Les instances Compute Engine derrière la règle de transfert sont protégées par IAP.
Activer l'API Google Play sur une règle de transfert
Vous pouvez activer l'IAP sur une règle de transfert à l'aide du framework de règles d'autorisation de l'équilibreur de charge.
gcloud
- 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
- 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
- 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
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.
Une fois que vous avez activé l'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
-
Accédez à la page Identity-Aware Proxy.
Accéder à la page "Identity-Aware Proxy" - Sélectionnez le projet que vous souhaitez sécuriser avec IAP.
-
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
- Dans le panneau de droite, cliquez sur Ajouter un compte principal.
-
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.
- Sélectionnez Cloud IAP > Utilisateur de l'application Web sécurisée par IAP dans la liste déroulante Rôles.
- Cliquez sur Save.
Activer IAP
-
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
etclientauthconfig.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.
- 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.
-
Pour vous authentifier, utilisez la Google Cloud CLI et exécutez la commande suivante.
gcloud auth login
- Pour vous connecter, suivez l'URL qui s'affiche.
- Une fois la connexion effectuée, copiez le code de validation qui s'affiche et collez-le dans la ligne de commande.
-
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
-
Pour activer IAP, exécutez la commande à l'échelle mondiale ou régionale.
Champ d'application global Champ d'application régionalgcloud compute backend-services update BACKEND_SERVICE_NAME --global --iap=enabled
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
Exécutez la commande suivante pour préparer un fichier
settings.json
.cat << EOF > settings.json { "iap": { "enabled":true } } EOF
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.
Étapes suivantes
- Définissez des règles de contexte plus riches en appliquant des niveaux d'accès.
- Consultez les demandes d'accès en activant les journaux d'audit Cloud.
- Découvrez-en plus sur IAP.