Configurer OS Login avec une authentification à deux facteurs

Si vous utilisez OS Login pour gérer l'accès à vos instances, vous pouvez ajouter une couche de sécurité supplémentaire en utilisant l'authentification à deux facteurs, également appelée 2FA.

OS Login est compatible avec les méthodes ou types d'authentification 2FA suivants :

Pour utiliser l'authentification 2FA sur vos instances, procédez comme suit :

  1. Activez l'authentification 2FA sur votre compte ou votre domaine Google
  2. Activez l'authentification 2FA sur votre projet ou votre instance
  3. Connectez-vous à vos instances

Après avoir configuré l'authentification OS Login 2FA, vous pouvez utiliser les journaux d'audit pour surveiller vos sessions d'authentification.

Systèmes d'exploitation compatibles

L'authentification à deux facteurs OS Login nécessite des images de système d'exploitation créées après les dates ci-dessous :

Système d'exploitation Dates
CentOS 6 et 7 26 mars 2019
Debian 9 26 mars 2019
RHEL 6 et 7 26 mars 2019
SUSE 12 et 15 Pas encore compatibles
Ubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS et 18.10 Pas encore compatibles

Activer l'authentification 2FA sur votre compte ou votre domaine Google

Avant de pouvoir activer l'authentification à deux facteurs pour votre projet ou instance, vous devez d'abord l'activer sur votre compte ou votre domaine Google. Veillez à activer l'authentification 2FA sur le domaine contenant le projet ou les instances, ou pour l'utilisateur propriétaire du projet ou des instances.

Un administrateur G Suite peut activer l’authentification à deux facteurs pour un domaine. Un utilisateur Google individuel peut activer l’authentification à deux facteurs au niveau du compte utilisateur.

Domaine

L'authentification à deux facteurs pour un domaine doit être activée par un administrateur G Suite.

Pour activer l'authentification 2FA pour un domaine, consultez la page Protéger votre entreprise avec la validation en deux étapes du guide d'administration de G Suite.

Compte utilisateur

Si vos comptes utilisateur ne sont pas gérés par un administrateur G Suite, vous pouvez configurer l'authentification 2FA pour des comptes Google individuels.

Pour configurer l'authentification 2FA pour un compte Google individuel, consultez la page Validation en deux étapes de Google.

Activer l'authentification 2FA sur votre projet ou votre instance

Après avoir activé l'authentification à deux facteurs au niveau du domaine ou du compte utilisateur, vous pouvez configurer des instances individuelles ou des projets pour qu'ils utilisent l'authentification OS Login 2FA.

Pour pouvoir utiliser l'authentification OS Login 2FA, le service OS Login doit être activé sur une instance ou un projet.

Vous pouvez configurer à la fois OS Login et OS Login 2FA pendant la création d'une instance ou la configuration d'un projet. Vous pouvez également configurer OS Login 2FA sur une instance ou un projet existant sur lequel OS Login est déjà activé.

Pour configurer votre projet ou votre instance afin d'utiliser l'authentification à deux facteurs OS Login, définissez enable-oslogin-2fa=TRUE dans les métadonnées du projet ou de l'instance.

Console

Définir enable-oslogin-2fa dans les métadonnées d'instance lorsque vous créez une instance :

  1. Dans la console GCP, accédez à la page "Instances de VM".

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.
  3. Sur la page Créer une instance, spécifiez les propriétés souhaitées pour votre instance.
  4. Dans la section Métadonnées, ajoutez les entrées de métadonnées suivantes :

    • enable-oslogin et la valeur est TRUE.
    • enable-oslogin-2fa et la valeur est TRUE.
  5. Cliquez sur Créer pour créer l'instance.

Définir enable-oslogin-2fa dans les métadonnées à l'échelle du projet afin de l'appliquer à toutes les instances de votre projet :

  1. Accédez à la page "Métadonnées"

    Accéder à la page "Métadonnées"

  2. Cliquez sur Modifier.
  3. Ajoutez une entrée de métadonnées, avec enable-oslogin-2fa comme clé et TRUE comme valeur. Vous pouvez également définir la valeur sur FALSE pour désactiver la fonctionnalité.
  4. Cliquez sur Enregistrer pour appliquer les modifications.

Pour les VM qui n'exécutent pas CoreOS, cette modification est appliquée instantanément. Vous n'avez pas besoin de redémarrer votre instance. Pour les distributions CoreOS, redémarrez ou réexécutez l'instance pour que la modification soit prise en compte. Pour redémarrer, procédez à l'arrêt, puis au démarrage de vos instances.

Définir enable-oslogin-2fa dans les métadonnées d'une instance existante :

  1. Accédez à la page "Instances de VM".

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de l'instance sur laquelle vous souhaitez définir la valeur de métadonnées.
  3. En haut de la page des détails de l'instance, cliquez sur Modifier pour modifier les paramètres de l'instance.
  4. Sous Métadonnées personnalisées, ajoutez une entrée de métadonnées avec enable-oslogin-2fa comme clé et TRUE comme valeur. Vous pouvez également définir la valeur sur FALSE pour exclure l'instance de la fonctionnalité. Vous devez également vérifier que enable-oslogin est défini sur True.
  5. En bas de la page des détails de l'instance, cliquez sur Enregistrer pour appliquer vos modifications à l'instance.

Pour tous les systèmes d'exploitation, à l'exception de CoreOS, cette modification est appliquée instantanément. Vous n'avez pas besoin de redémarrer votre instance. Pour les distributions CoreOS, redémarrez ou réexécutez l'instance pour que la modification soit prise en compte. Pour redémarrer, procédez à l'arrêt, puis au démarrage de vos instances.

gcloud

Définir enable-oslogin-2fa dans les métadonnées d'instance lorsque vous créez une instance :

gcloud compute instances create [INSTANCE_NAME] \
  --metadata enable-oslogin=True,enable-oslogin-2fa=True

Définir enable-oslogin-2fa dans les métadonnées à l'échelle du projet afin de l'appliquer à toutes les instances de votre projet :

gcloud compute project-info add-metadata \
  --metadata enable-oslogin=True,enable-oslogin-2fa=True

Définir enable-oslogin-2fa dans les métadonnées d'une instance existante :

gcloud compute instances add-metadata \
  --metadata enable-oslogin=True,enable-oslogin-2fa=True [INSTANCE_NAME]

[INSTANCE_NAME] est le nom de l'instance.

Se connecter à des instances

Après avoir configuré les rôles nécessaires, connectez-vous à une instance à l'aide des outils Compute Engine. Compute Engine génère automatiquement des clés SSH et les associe à votre compte utilisateur. Si vous créez vos propres clés SSH et ajoutez les clés publiques à votre compte utilisateur, vous pouvez également vous connecter aux instances à l'aide d'outils tiers. L'instance obtient votre clé publique à partir de votre compte utilisateur. Vous pourrez vous connecter à l'instance en fournissant le nom d'utilisateur correct et la clé SSH privée correspondante.

Lorsque vous vous connectez à votre instance, vous recevez un message en fonction de la méthode 2FA ou du type d'authentification que vous avez sélectionné.

  • Pour Google Authenticator, le message suivant s'affiche :

    "Enter your one-time password:"

  • Pour le code de validation par SMS ou par appel téléphonique, vous recevez le message suivant :

    "A security code has been sent to your phone. Enter code to continue:"

  • Pour l'invite téléphonique, vous recevez le message suivant :

    A login prompt has been sent to your enrolled device:"

    Pour la méthode par invite téléphonique, acceptez les invites sur votre téléphone ou tablette pour continuer. Pour les autres méthodes, entrez votre code de sécurité ou votre mot de passe à usage unique.

Une fois connecté à votre instance, vérifiez les comportements de connexion attendus.

Afficher les journaux d'audit OS Login 2FA

Compute Engine fournit des journaux d'audit permettant de suivre les requêtes d'authentification à deux facteurs. Ces requêtes sont de deux types :

  • StartSession : démarre une nouvelle session d'authentification. Dans un appel StartSession, un client déclare ses capacités au serveur et obtient des informations sur la première question d'authentification. Un appel à StartSession renvoie les éléments ci-dessous :

    • un identifiant de session qui est transmis à tous les appels ContinueSession suivants ;
    • des informations sur l'authentification ou la méthode 2FA utilisée dans cette nouvelle session d'authentification.
  • ContinueSession : continue une session d'authentification existante. En utilisant l'ID de session fourni, l'API ContinueSession peut effectuer l'une des deux actions suivantes :

    • accepter la réponse à une question ou à une méthode d'authentification, puis authentifier l'utilisateur, rejeter sa demande ou lui poser des questions d'authentification supplémentaires ;
    • basculer sur un type d'authentification différent de celui initialement proposé par le serveur lors de la précédente série d'appels d'API. Si un client choisit d'utiliser un autre type d'authentification (par exemple, Google Authenticator au lieu d'une invite téléphonique), il peut le demander lors d'un appel au serveur en utilisant un identifiant request.challengeId du type souhaité.

Pour afficher les journaux, vous devez disposer des autorisations d'accès à la visionneuse de journaux ou du rôle de lecteur ou d'éditeur de projet.

  1. Accédez à la page "Journaux" de la console GCP.

    Accéder à la page "Journaux"

  2. Développez le menu déroulant et sélectionnez Audited Resource.
  3. Dans la barre de recherche, saisissez oslogin.googleapis.com et appuyez sur Entrée.
  4. La liste des journaux d'audit décrivant les requêtes d'authentification à deux facteurs s'affiche. Cliquez sur l'une des entrées pour plus de détails :

    Capture d'écran des journaux d'audit pour l'authentification à deux facteurs

Quel que soit le journal d'audit, il est possible de :

  1. Développer la propriété protoPayload.

    Capture d'écran des métriques des journaux d'audit pour l'authentification à deux facteurs

  2. Lancer une recherche methodName pour consulter l'activité correspondant à ce journal (requête StartSession ou ContinueSession). Par exemple, si ce journal suit une requête StartSession, le nom de la méthode indiquera "google.cloud.oslogin.OsLoginService.v1.StartSession". De même, un journal ContinueSession indiquera "google.cloud.oslogin.OsLoginService.v1.ContinueSession". Une entrée du journal d'audit est enregistrée pour chaque requête de session de démarrage et de continuation.

Les propriétés de journal d'audit varient selon les différents types de journaux. Par exemple, les journaux d'audit relatifs à StartSession ont des propriétés spécifiques au démarrage de sessions, tandis que les journaux d'audit concernant ContinueSession possèdent leur propre ensemble de propriétés. Certaines propriétés de journal d'audit sont également partagées entre les deux types de journaux.

Journaux d'audit d'authentification à deux facteurs

Propriété Valeur
serviceName oslogin.googleapis.com
resourceName Chaîne contenant le numéro de projet. Celui-ci indique à quelle requête de connexion le journal d'audit est rattaché. Par exemple, projects/myproject12345.
severity Niveau de gravité du message du journal. Par exemple, INFO ou WARNING.
request.email Adresse e-mail de l'utilisateur que l'appel d'API est en train d'authentifier.
request.numericProjectId Numéro du projet Google Cloud Platform.
response.@type type.googleapis.com/google.cloud.oslogin.OsLoginService.v1.StartOrContinueSessionResponse
response.sessionId Chaîne d'ID identifiant la session de manière unique. Cet ID de session est transmis à l'appel d'API suivant dans la séquence.
response.authenticationStatus État de la session. Par exemple, Authenticated, Challenge required ou Challenge pending.
response.challenges Ensemble des questions d'authentification que vous pouvez essayer de transmettre pour cette séquence d'authentification. Une seule de ces questions est lancée et dispose de l'état READY. Les autres sont fournies sous forme d'options que l'utilisateur peut spécifier comme alternative à la principale question d'authentification proposée.

Journaux d'audit StartSession

Propriété Valeur
methodName google.cloud.oslogin.OsLoginService.v1.StartSession
request.@type type.googleapis.com/google.cloud.oslogin.OsLoginService.v1.StartSessionRequest
request.supportedChallengeTypes Liste des types d'authentification ou des méthodes 2FA que vous pouvez choisir.

Journaux d'audit ContinueSession

Propriété Valeur
methodName google.cloud.oslogin.OsLoginService.v1.ContinueSession
request.sessionId Chaîne d'ID identifiant de manière unique la session précédente. Cet ID de session est transmis depuis l'appel API précédent dans la séquence.
request.@type type.googleapis.com/google.cloud.oslogin.OsLoginService.v1.ContinueSessionRequest
request.challengeId Chaîne d'ID identifiant l'authentification à lancer ou à exécuter. Cet ID doit appartenir à un type d'authentification renvoyé par l'appel response.challenges dans une réponse d'API précédente.
request.action Action à effectuer.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine