Configurer OS Login


Ce document explique comment configurer OS Login, avec ou sans authentification à deux facteurs (A2F).

OS Login vous permet de contrôler l'accès aux instances de machine virtuelle (VM) en fonction des autorisations IAM. Vous pouvez utiliser OS Login avec ou sans l'authentification A2F, mais vous ne pouvez pas utiliser cette dernière sans OS Login. Pour en savoir plus sur OS Login et l'authentification A2F d'OS Login, y compris sur les types de questions d'authentification compatibles avec OS Login, consultez la section À propos d'OS Login.

Avant de commencer

  • Si vous souhaitez utiliser l'authentification A2F d'OS Login, activez-la sur votre domaine ou votre compte :
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Définissez une région et une zone par défaut.

    Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. Create local authentication credentials for your user account:

      gcloud auth application-default login

    Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.

Limites

OS Login n'est pas compatible avec les VM suivantes :
  • VM Windows Server et SQL Server
  • VM Fedora CoreOS. Pour gérer l'accès aux instances pour des VM créées à l'aide de ces images, utilisez le système Ignition de Fedora CoreOS.

Attribuer des rôles IAM OS Login

Attribuez tous les rôles IAM requis aux utilisateurs qui se connectent aux VM pour lesquelles OS Login est activé.

Rôle Utilisateurs requis Niveau d'attribution
roles/compute.osLogin ou roles/compute.osAdminLogin Tous les utilisateurs

Sur le projet ou l'instance.

Si un utilisateur a besoin d'un accès SSH à partir de la console Google Cloud ou de Google Cloud CLI, vous devez attribuer ces rôles au niveau du projet, ou également attribuer un rôle au niveau du projet contenant l'autorisation compute.projects.get.

roles/iam.serviceAccountUser Tous les utilisateurs, si la VM dispose d'un compte de service Sur le compte de service.
roles/compute.osLoginExternalUser Les utilisateurs d'une organisation différente de la VM à laquelle ils se connectent

Sur l'organisation.

Ce rôle doit être attribué par un administrateur de l'organisation.

Activer OS Login

Vous pouvez activer OS Login ou OS Login avec une authentification à deux facteurs pour une seule VM ou pour toutes les VM d'un projet, en définissant des métadonnées OS Login.

Lorsque vous définissez les métadonnées OS Login, Compute Engine supprime les fichiers authorized_keys de la VM et n'accepte plus les connexions à partir de clés SSH stockées dans les métadonnées du projet ou de l'instance.

Activer OS Login pour toutes les VM d'un projet

Pour activer OS Login pour toutes les VM d'un projet, définissez les valeurs suivantes dans les métadonnées du projet:

  1. Activez OS Login :
    • Clé : enable-oslogin
    • Valeur : TRUE
  2. (Facultatif) Activez l'authentification à deux facteurs :
    • Clé : enable-oslogin-2fa
    • Valeur : TRUE

Activer OS Login pour une seule VM

Pour activer OS Login pour une seule VM, définissez les valeurs suivantes dans les métadonnées d'instance :

  1. Activez OS Login :
    • Clé : enable-oslogin
    • Valeur : TRUE
  2. (Facultatif) Activez l'authentification à deux facteurs :
    • Clé : enable-oslogin-2fa
    • Valeur : TRUE

Activer OS Login lors de la création de la VM

Activez OS Login (avec éventuellement la validation en deux étapes) lors de la création d'une VM à l'aide de la console Google Cloud ou de gcloud CLI.

Console

Créez une VM qui active au démarrage OS Login, avec éventuellement l'authentification A2F, en créant une VM à partir d'une image publique et en spécifiant les configurations suivantes :

  1. Dans la section Mise en réseau, disques, sécurité, gestion, location unique, développez la section Sécurité.
  2. Développez la section Gérer l'accès.
  3. Sélectionnez Contrôler l'accès aux VM à l'aide des autorisations IAM.
  4. Facultatif : si vous souhaitez activer l'authentification A2F d'OS Login, sélectionnez Exiger la validation en deux étapes.
  5. Cliquez sur Créer pour créer et démarrer la VM.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Créez une VM qui active au démarrage OS Login, avec éventuellement l'authentification A2F, en exécutant l'une des commandes gcloud compute instance create suivantes :

    • Pour activer OS Login uniquement, exécutez la commande suivante :

      gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE
      
    • Pour activer OS Login avec l'authentification A2F, exécutez la commande suivante :

      gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE,enable-oslogin-2fa=TRUE
      

    Remplacez les éléments suivants :

    • VM_NAME : nom de la nouvelle VM.
    • IMAGE_FAMILY : famille d'images d'un système d'exploitation Linux. Cette action crée la VM à partir de l'image d'OS la plus récente et non obsolète. Pour toutes les familles d'images publiques, consultez la page Détails des systèmes d'exploitation.
    • IMAGE_PROJECT : projet d'image contenant la famille d''images. Chaque système d'exploitation possède son propre projet d'image. Pour tous les projets d'images publiques, consultez la page Détails des systèmes d'exploitation.

Terraform

Vous pouvez appliquer les valeurs de métadonnées à vos projets ou VM en utilisant l'une des options suivantes :

  • Option 1 : définissez enable-oslogin dans les métadonnées à l'échelle du projet afin d'appliquer ce paramètre à toutes les VM de votre projet.

    Utilisez la ressource Terraform google_compute_project_metadata et définissez une valeur de métadonnées pour laquelle oslogin=TRUE :

    resource "google_compute_project_metadata" "default" {
      metadata = {
        enable-oslogin = "TRUE"
      }
    }

    Vous pouvez également définir enable-oslogin sur FALSE pour désactiver la connexion au système d'exploitation.

  • Option 2: définissez enable-oslogin dans les métadonnées d'une VM nouvelle ou existante.

    Utilisez la ressource Terraform google_compute_instance et définissez oslogin=TRUE. Remplacez oslogin_instance_name par le nom de votre VM.

    resource "google_compute_instance" "oslogin_instance" {
      name         = "oslogin-instance-name"
      machine_type = "f1-micro"
      zone         = "us-central1-c"
      metadata = {
        enable-oslogin : "TRUE"
      }
      boot_disk {
        initialize_params {
          image = "debian-cloud/debian-11"
        }
      }
      network_interface {
        # A default network is created for all GCP projects
        network = "default"
        access_config {
        }
      }
    }

    Vous pouvez également définir enable-oslogin sur FALSE pour empêcher votre VM d'utiliser OS Login.

Se connecter aux VM pour lesquelles OS Login est activé

Connectez-vous à des VM sur lesquelles OS Login est activé à l'aide des méthodes décrites dans la section Se connecter à des VM Linux.

Lorsque vous vous connectez à des VM pour lesquelles OS Login est activé, Compute Engine utilise le nom d'utilisateur que votre administrateur d'organisation a configuré pour vous. Si l'administrateur de votre organisation n'a pas configuré de nom d'utilisateur pour vous, Compute Engine génère un nom d'utilisateur au format USERNAME_DOMAIN_SUFFIX. Pour en savoir plus sur les noms d'utilisateur, consultez la page Fonctionnement d'OS Login.

Lorsque vous vous connectez à des VM sur lesquelles OS Login est activé avec l'authentification A2F, un message basé sur la méthode de validation en deux étapes ou le type de question d'authentification que vous avez sélectionné s'affiche. 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.

Résoudre les problèmes liés à OS Login

Pour connaître les méthodes de diagnostic et de résolution des erreurs liées à OS Login, consultez la section Résoudre les problèmes liés à OS Login.

Étapes suivantes