Configurer OS Login

Ce document explique comment configurer OS Login.

OS Login vous permet de contrôler l'accès aux instances de machine virtuelle (VM) en fonction des autorisations IAM. Pour en savoir plus sur OS Login, consultez la section À propos d'OS Login.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux Google Cloud services et aux API. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

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

    Console

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

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • 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 la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.

    1. Installez la Google Cloud CLI.

    2. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    3. Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :

      gcloud auth application-default login

      Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.

      Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.

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

Limites

OS Login n'est pas compatible avec les VM suivantes :

Pour vérifier la compatibilité d'OS Login avec des distributions Linux spécifiques, consultez la page Détails des systèmes d'exploitation.

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 Google Cloud la console 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 pour une seule VM ou pour toutes les VM d'un projet en définissant enable-oslogin sur TRUE dans les métadonnées du projet ou de l'instance.

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 la valeur suivante dans les métadonnées du projet :

  • Clé : enable-oslogin
  • Valeur : TRUE

Activer OS Login pour une seule VM

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

  • Clé : enable-oslogin
  • Valeur : TRUE

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

Activez OS Login lors de la création d'une VM à l'aide de la Google Cloud console ou de la gcloud CLI.

Console

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

  1. Développez la section Options avancées.
  2. Développez la section Sécurité.
  3. Développez la section Gérer l'accès.
  4. Sélectionnez Contrôler l'accès aux VM à l'aide des autorisations IAM.
  5. Cliquez sur Créer pour créer et démarrer la VM.

gcloud

  1. Dans la Google Cloud console, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Google Cloud Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Créez une VM qui active OS Login au démarrage en exécutant la commande gcloud compute instance create suivante :

    gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=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 OS Login.

  • 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 aux VM pour lesquelles OS Login est activé à l'aide des méthodes décrites dans la section Se connecter aux 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.

Activer OS Login avec l'authentification A2F

Pour plus de sécurité, vous pouvez exiger des utilisateurs qu'ils utilisent l'authentification à deux facteurs (A2F) lorsqu'ils se connectent à des VM pour lesquelles OS Login est activé. Si vous prévoyez d'utiliser OS Login avec l'authentification à deux facteurs, les utilisateurs doivent configurer la validation en deux étapes sur leurs comptes. Pour en savoir plus sur les méthodes d'authentification A2F compatibles, consultez la section À propos d'OS Login.

Avant d'activer l'authentification A2F, assurez-vous qu'OS Login est activé, comme décrit dans la section Activer OS Login. Pour activer l'authentification A2F d'OS Login, définissez la valeur de métadonnées suivante dans les métadonnées de l'instance ou du projet :

  • Clé : enable-oslogin-2fa
  • Valeur : TRUE

Pour que l'authentification A2F d'OS Login soit appliquée, les métadonnées d'OS Login (enable-oslogin) et d'authentification A2F d'OS Login (enable-oslogin-2fa) doivent être définies sur TRUE.

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