Gérer la connexion au système d'exploitation dans une organisation

Si vous utilisez OS Login pour gérer l'accès à vos instances, vous pouvez définir des configurations au niveau de l'organisation pour votre compte Cloud Identity. Par exemple, vous pouvez contrôler qui peut utiliser directement l'API OS Login, activer OS Login pour toutes les instances de VM d'une organisation et accorder l'accès aux utilisateurs externes.

Ce sujet couvre les tâches suivantes :

Avant de commencer

Activer OS Login à l'aide d'une règle d'administration

Vous pouvez configurer une contrainte OS Login au sein de votre organisation afin que tous les nouveaux projets et les instances de VM créées dans ces nouveaux projets soient activés.

Lorsque cette contrainte est configurée, les conditions suivantes sont appliquées :

  • enable-oslogin est défini sur true dans les métadonnées du projet pour tous les nouveaux projets.
  • Les demandes de mise à jour pour définir enable-oslogin sur false dans les métadonnées d'instance ou de projet sont rejetées.

Limites

  • Vous ne pouvez pas appliquer cette contrainte de manière rétroactive. OS Login n'est pas activée automatiquement pour les instances et les projets créés avant la contrainte.
  • Les instances exécutées dans Google Kubernetes Engine ne sont pas compatibles avec OS Login. L'activation de la contrainte OS Login empêche les clusters Google Kubernetes Engine de créer des instances dans les projets où la contrainte s'applique.

    Pour contourner ce problème, vous pouvez activer cette contrainte au niveau de l'organisation, puis la désactiver de manière sélective dans les projets avec clusters Google Kubernetes Engine. Vous pouvez également choisir d'activer OS Login au niveau du projet ou du dossier. Pour plus d'informations sur la gestion des règles d'administration, consultez la section sur la création et la gestion des règles d'administration.

Pour activer la règle OS Login, vous pouvez définir la contrainte OS Login sur des projets et dossiers spécifiques à l'aide de l'outil de ligne de commande gcloud. Vous pouvez également définir la contrainte OS Login sur l'ensemble de l'organisation à l'aide de Google Cloud Console ou de l'outil de ligne de commande gcloud.

Console

Pour définir les règles d'administration OS Login depuis la console, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Règles d'administration.

    Accéder à la page "Règles d'administration"

  2. Dans la liste des règles, cliquez sur Exiger OS Login pour afficher les contraintes OS Login.
  3. Cliquez sur Modifier pour modifier vos contraintes OS Login existantes.
  4. Sur la page Modifier, sélectionnez Personnaliser.
  5. Pour activer l'application de cette contrainte, sélectionnez Activer.
  6. Cliquez sur Enregistrer pour appliquer les paramètres relatifs aux contraintes.

gcloud

Pour définir la règle d'administration d'OS Login, exécutez la commande gcloud beta resource-manager org-policies enable-enforce.

  1. Trouvez l'ID de votre organisation.

    gcloud organizations list
  2. Définissez la contrainte dans votre organisation. Remplacez organization-id par l'ID de votre organisation.

    gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
        --organization=organization-id
    

Vous pouvez également appliquer les règles d'administration d'OS Login à un dossier ou à un projet avec respectivement les options --folder ou --project, ainsi que l'ID de dossier et de projet.

Pour les dossiers, exécutez la commande suivante :

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --folder=folder-id

Pour les projets, exécutez la commande suivante :

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --project=project-id

Remplacez les éléments suivants :

Accorder un accès aux instances à des utilisateurs extérieurs à l'organisation

Par défaut, les utilisateurs n'appartenant pas à votre organisation ne peuvent pas accéder aux instances de votre organisation ni leur définir de clés SSH. Dans certains cas, vous devrez peut-être accorder un accès en instance aux utilisateurs appartenant à une autre organisation ou disposant d'un compte gmail.com Google.

Le rôle IAM roles/compute.osLoginExternalUser permet aux comptes Google externes d'interagir avec les autres rôles OS Login en leur permettant de configurer des informations de compte POSIX.

Pour accorder roles/compute.osLoginExternalUser et d'autres rôles d'accès aux instances d'OS Login nécessaires à des utilisateurs extérieurs à votre organisation, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page de sélection du projet et de l'organisation.

    Accéder à la page de sélection du projet et de l'organisation.

  2. Dans le menu déroulant Organisation, sélectionnez votre organisation.
    1. Cliquez sur Tous pour voir toutes vos organisations.
    2. Cliquez sur le nom de l'organisation.
  3. Cliquez sur Ajouter pour ajouter un nouveau rôle à un utilisateur.
  4. Indiquez le nom de l'utilisateur pour lequel vous souhaitez configurer l'accès aux instances.
  5. Cliquez sur Sélectionner un rôle pour spécifier les rôles que vous souhaitez accorder à l'utilisateur.
  6. Dans la liste des rôles Compute Engine, sélectionnez le rôle Utilisateur externe Compute OS Login.
  7. Cliquez sur Ajouter pour confirmer que vous souhaitez accorder le rôle sélectionné à l'utilisateur.
  8. Si vous ne l'avez pas déjà fait, accordez à l'utilisateur tous les autres rôles d'accès aux instances d'OS Login pertinents, au niveau du projet ou de l'organisation.

L'utilisateur peut désormais se connecter à des instances de votre projet avec connexion à Login OS activée.

Gérer l'API OS Login

Au niveau de l'organisation, vous pouvez restreindre l'accès à l'API OS Login en définissant des commandes d'administration G Suite. Pour configurer des commandes d'administration G Suite ou afficher les options de configuration, consultez la section Contrôler qui utilise Google Cloud dans votre organisation. En tant qu'administrateur G Suite, vous pouvez également activer ou désactiver certaines fonctionnalités de l'API OS Login. Cela inclut les options suivantes :

  • Choisissez d'inclure ou non le suffixe de domaine dans les noms d'utilisateur générés par l'API OS Login. Par exemple, dans le domaine example.com, l'utilisateur user@example.com aura le nom d'utilisateur user si le paramètre permettant d'inclure le suffixe de domaine n'est pas coché.
  • Décidez si les membres de votre organisation peuvent gérer les clés SSH à l'aide de l'API OS Login.
  • Limitez ou autorisez l'accès des VM aux utilisateurs extérieurs à votre organisation.

Pour en savoir plus sur l'activation ou la désactivation des paramètres de l'API OS Login, consultez la section Choisir les paramètres de Google Cloud Platform.

Contrôler les événements OS Login

En tant qu'administrateur G Suite, vous pouvez utiliser le SDK G Suite Admin pour effectuer un audit des actions effectuées avec l'API OS Login. En examinant ces événements, vous pouvez effectuer le suivi de l'ajout, de la suppression ou de la mise à jour d'une clé SSH par un utilisateur, ou supprimer des informations de compte POSIX.

Vous pouvez récupérer les événements d'audit de l'API OS Login depuis le SDK G Suite Admin en appelant Activities.list() avec applicationName=gcp. Pour plus d'informations, consultez la section sur les événements liés aux activités Google Cloud dans la documentation de l'API de création de rapports du SDK G Suite Admin.

Modifier des comptes utilisateur à l'aide de l'API Directory

OS Login utilise vos paramètres utilisateur Cloud Identity ou G Suite lors de la connexion à une instance. Si vous êtes administrateur d'une organisation, vous pouvez utiliser l'API Directory pour effectuer les tâches suivantes pour vos comptes utilisateur G Suite ou Cloud Identity :

  • Modifiez les paramètres de connexion de l'instance.
  • Définissez un utilisateur comme administrateur.
  • Modifiez les propriétés utilisateur, telles que le nom du compte et l'adresse e-mail.
  • Ajoutez et supprimez des clés SSH pour un utilisateur.
  • Modifiez les informations relatives au compte POSIX.
  • Modifiez le nom d'utilisateur auquel les utilisateurs se connectent sur l'instance.

Pour plus d'informations sur les propriétés du compte que vous pouvez modifier, consultez la documentation de référence de l'API Directory.

Par exemple, envoyez une requête PUT à la méthode directory.users.update et spécifiez une ou plusieurs propriétés à modifier dans le compte utilisateur :

PUT https://www.googleapis.com/admin/directory/v1/users/user-id-key

{
 "posixAccounts": [
   {
    "username": "user-name",
    "uid": "uid",
    "gid": "gid",
    "homeDirectory": "user-home-path",
    "shell": "shell-path"
   }
  ],
}

Remplacez les éléments suivants :

  • user-id-key : identifiant immuable pour l'utilisateur.
  • user-name : nom d'utilisateur que Compute Engine ajoute à l'instance pour l'utilisateur. Cette valeur doit être unique au sein de votre organisation. Ce user-name ne doit pas se terminer par un tilde ("~") ni contenir un point ("."), car cela pourrait poser problème lors de l'exécution des commandes sudo sur la VM.
  • uid : identifiant spécifique à cet utilisateur sur l'instance. Cette propriété doit être une valeur comprise entre 1001 et 60000, ou une valeur comprise entre 65535 et 2147483647. Pour accéder à un système d'exploitation Container-Optimized OS, l'identifiant UID doit avoir une valeur comprise entre 65536 et 214748646. Cet identifiant UID doit être unique au sein votre organisation.
  • gid : ID de groupe pour l'instance à laquelle appartient cet utilisateur.
  • user-home-path : répertoire de base de l'instance pour cet utilisateur. Exemple : /home/example_username
  • shell-path : chemin d'accès à l'interface système par défaut pour l'utilisateur après sa connexion à l'instance. Par exemple, /bin/bash ou /bin/sh.

Étapes suivantes