Cette page explique comment activer l'accès basé sur un certificat (CBA) pour vos VM Google Cloud. Vous pouvez utiliser la CBA pour sécuriser l'accès depuis vers des VM Google Cloud.
Présentation
L'AC pour les VM utilise la fonctionnalité d'accès contextuel de Google Cloud pour sécuriser à l'aide de 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 offre un contrôle pour contrôler quels utilisateurs sont autorisés à établir des tunnels vers des VM spécifiques et les conditions d'accès auxquelles les utilisateurs doivent répondre via les tunnels Cloud Storage.
- 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 projet Google Cloud.
Attribuer des rôles permettant d'accéder aux VM via le transfert TCP IAP
Vous devez attribuer les rôles IAM (Identity and Access Management) appropriés sur un projet pour permettent 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 attribuer administrateurs 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 )
|
Accorder l'accès à toutes les instances de VM d'un projet ou accorder 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 IAP, consultez consultez la page Attribuer des rôles pour le transfert TCP IAP.
Configurer un accès basé sur un certificat pour 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 un certificat, accordez le
roles/iap.tunnelResourceAccessor
sur l'instance de VM. Les autres rôles
peut être accordé sur le projet.
Console
Ouvrez la page d'administration d'IAP, puis sélectionnez les colonnes SSH et TCP Ressources.
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 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 Type de condition, puis sélectionnez l'accès basé sur le certificat niveau créé précédemment.
Cliquez sur Enregistrer.
API
Pour configurer un accès basé sur un certificat pour une VM, modifiez le
policy.json
.
Consultez la page 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 ''
Accorder le rôle
iap.tunnelResourceAccessor
et l'accès basé sur les certificats à vos comptes principaux en modifiant 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 dispose du 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. Validation des points de terminaison provisionne et enregistre automatiquement les certificats autosignés Google Cloud pour tous les appareils.
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éder aux VM Google Cloud à l'aide de Tunnelisation 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 VM Google Cloud à l'aide du tunneling IAP.