Cette page explique comment activer l'accès basé sur les certificats (CBA) pour vos VM Google Cloud . Vous pouvez utiliser le CBA pour sécuriser l'accès des appareils approuvés aux VM. Google Cloud
Présentation
L'accès contextuel pour les VM utilise la fonctionnalité d' Google Cloud accès contextuel pour sécuriser l'accès à l'aide du protocole TLS mutuel (mTLS). Voici les principaux composants avec lesquels vous travaillez pour activer et utiliser la CBA pour les VM:
- Access Context Manager: vous permet de créer des niveaux d'accès nécessitant des certificats pour déterminer l'accès aux applications Web.
- Identity-Aware Proxy (IAP): le transfert TCP d'IAP vous permet d'établir un tunnel chiffré via lequel vous pouvez transférer le trafic SSH et RDP, ainsi que tout autre trafic destiné aux instances de VM. De plus, une stratégie IAP vous permet de contrôler précisément les utilisateurs autorisés à établir des tunnels vers des instances de VM spécifiques et les conditions d'accès que les utilisateurs doivent remplir pour utiliser ces tunnels.
- Règle Chrome Enterprise: fournit une authentification mutuelle (mTLS) entre les utilisateurs et les VM lors de l'utilisation du navigateur Chrome.
- Google Cloud CLI: fournit une authentification mutuelle (mTLS) entre les utilisateurs et les VM lorsque vous utilisez la gcloud CLI.
Avant de commencer
Assurez-vous d'avoir créé des niveaux d'accès CBA pour votre Google Cloud projet.
Accorder des rôles pour accéder aux VM via le transfert TCP IAP
Vous devez attribuer les rôles IAM (Identity and Access Management) appropriés à un projet pour permettre aux utilisateurs ou aux groupes d'utilisateurs d'utiliser le transfert TCP IAP pour accéder aux VM.
Le tableau suivant présente les rôles prédéfinis que vous devez accorder aux administrateurs de confiance pour le transfert TCP et les tâches associées.
Tâche | Rôles | En savoir plus |
---|---|---|
Transfert TCP |
Utilisateur de tunnels sécurisés par IAP (roles/iap.tunnelResourceAccessor )
|
Accordez l'accès à toutes les instances de VM d'un projet ou accordez l'accès à une VM spécifique. |
Accès SSH |
Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1 )
|
|
OS Login (recommandé) | Divers | Configurer des rôles de connexion au système d'exploitation pour les comptes utilisateur |
Utiliser un compte de service | Utilisateur du compte de service (roles/iam.serviceAccountUser ) |
Rôle serviceAccountUser |
Pour en savoir plus sur l'attribution de rôles pour le transfert TCP d'IAP, consultez la section Attribuer des rôles pour le transfert TCP d'IAP.
Configurer l'accès basé sur un certificat à une VM
Bien que IAP-TCP vous permette d'accorder l'accès à toutes les instances de VM d'un projet, vous devez configurer l'accès basé sur les certificats pour chaque instance de VM.
Pour accorder à un utilisateur ou à un groupe d'utilisateurs un accès basé sur des certificats à une VM, attribuez le rôle roles/iap.tunnelResourceAccessor
à l'instance de VM. Les autres rôles peuvent être attribués au projet.
Console
Ouvrez la page d'administration de l'IAP, puis sélectionnez l'onglet Ressources SSH et TCP.
Sélectionnez les instances de VM que vous souhaitez configurer. Cliquez sur Afficher le panneau d'informations si celui-ci n'est pas visible.
Cliquez sur Ajouter un compte principal et configurez les éléments suivants :
- Nouveaux comptes principaux: spécifiez l'utilisateur ou le groupe d'utilisateurs auquel vous souhaitez accorder l'accès.
- Sélectionner un rôle: sélectionnez Cloud IAP > Utilisateur de tunnels sécurisés par IAP.
Cliquez sur Ajouter une condition IAM et configurez une condition:
- Titre : saisissez un nom pour la condition.
- Générateur de conditions: sélectionnez Niveau d'accès dans la liste déroulante Type de condition, puis sélectionnez le niveau d'accès basé sur les certificats créé auparavant.
Cliquez sur Enregistrer.
API
Pour configurer l'accès basé sur les certificats à une VM, modifiez le fichier policy.json
de votre application.
Consultez la section Gérer l'accès aux ressources sécurisées par IAP pour en savoir plus sur l'utilisation de l'API IAM pour gérer les stratégies d'accès.
Exportez les variables suivantes.
export IAP_BASE_URL=https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_tunnel # Replace POLICY_FILE.JSON with the name of JSON file to use for setIamPolicy export JSON_NEW_POLICY=POLICY_FILE.JSON
Obtenez la stratégie IAM pour l'instance Compute Engine à l'aide de la méthode
getIamPolicy
. Le bit de données vide à la fin transforme la requête curl enPOST
au lieu deGET
.curl -i -H "Authorization: Bearer $(gcloud auth print-access-token)" \ ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:getIamPolicy \ -d ''
Accordez le rôle
iap.tunnelResourceAccessor
et l'accès basé sur les certificats à vos principaux en modifiant le fichier JSON de stratégie IAM.Vous trouverez ci-dessous un exemple de fichier
policy.json
qui accorde le rôleiap.tunnelResourceAccessor
à un groupe d'administrateurs d'instances de VM, en leur donnant un accès basé sur les certificats aux ressources de tunnel sécurisées par IAP.Notez que si un compte principal possède le rôle Propriétaire, il est autorisé à utiliser IAP pour le transfert TCP.
{ "policy": { "bindings": [ { "role": "roles/iap.tunnelResourceAccessor", "members": ["group:instance-admins@example.com"], "condition": { "expression": "\"accessPolicies/POLICY_NAME/accessLevels/CERTIFICATE_BASED_ACCESS_LEVEL_NAME\" in request.auth.access_levels, "title": "CERTIFICATE_BASED_CONDITION_NAME" } } ] } }
Pour trouver un nom de stratégie, appelez la méthode
accessPolicies.list
.GET https://accesscontextmanager.googleapis.com/v1/accessPolicies
Définissez votre nouveau fichier
policy.json
à l'aide de la méthodesetIamPolicy
.curl -i -H "Content-Type:application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ ${IAP_BASE_URL}/zones/ZONE_NAME/instances/INSTANCE_ID or INSTANCE_NAME:setIamPolicy \ -d @${JSON_NEW_POLICY}
Accéder aux VM à l'aide de certificats client
Pour accéder aux VM à l'aide de certificats client, utilisez l'une des méthodes suivantes.
- Utiliser des certificats d'entreprise : utilisez cette méthode si vous disposez d'une infrastructure PKI.
- Utiliser des certificats provisionnés pour la validation des points de terminaison : utilisez cette méthode si vous ne disposez pas d'une infrastructure PKI. Endpoint Verification provisionne et enregistre automatiquement des certificats autosignés auprès deGoogle Cloud pour chaque appareil.
Utiliser des certificats client dans le navigateur Chrome pour accéder aux VM
- Configurez le navigateur Chrome à l'aide de l'une des options suivantes.
- Dans le navigateur Chrome, saisissez le domaine suivant pour accéder à la console Google Cloud:
console-secure.cloud.google.com
. - Accédez aux Google Cloud VM à l'aide de l'acheminement par tunnel IAP.
Utiliser des certificats client dans la gcloud CLI pour accéder aux VM
Configurez la CLI gcloud à l'aide de l'une des méthodes suivantes.
Accédez aux Google Cloud VM à l'aide de l'acheminement par tunnel IAP.