Contrôle des accès avec IAM

Pour accorder l'accès aux opérations Google Cloud Managed Lustre, vous devez attribuer des rôles IAM (Identity and Access Management) aux utilisateurs.

Les autorisations IAM ne contrôlent que l'accès aux opérations Google Cloud Managed Lustre, comme la création d'une instance Google Cloud Managed Lustre. Pour contrôler l'accès aux opérations du système de fichiers sur l'instance, comme la lecture ou l'écriture dans un fichier, utilisez les autorisations de fichier POSIX.

Autorisations et rôles

Managed Lustre utilise les autorisations suivantes :

Autorisation Description
lustre.instances.create Créer des instances
lustre.instances.delete Supprimer des instances
lustre.instances.update Mettre à jour les instances. Ne permet pas la suppression
lustre.instances.get Décrire les instances
lustre.instances.list Répertorier toutes les instances
lustre.instances.exportData Exporter des données de Managed Lustre vers Cloud Storage
lustre.instances.importData Importer des données de Cloud Storage vers Managed Lustre
lustre.locations.get Obtenir un emplacement
lustre.locations.list Répertorier tous les emplacements compatibles
lustre.operations.list Répertorier les opérations
lustre.operations.get Obtenir une opération
lustre.operations.cancel Annuler une opération
lustre.operations.delete Supprimer une opération

Google Cloud ne permet pas d'accorder directement des autorisations individuelles. Vous devez accorder un rôle contenant des autorisations. Voici les rôles prédéfinis de Managed Lustre :

  • Administrateur Managed Lustre (roles/lustre.admin)
  • Lecteur Managed Lustre (roles/lustre.viewer)

Le tableau suivant répertorie les autorisations accordées par les rôles prédéfinis pour Managed Lustre, ainsi que le rôle d'éditeur de base :

Capacité Éditeur (roles/editor) Managed Lustre (roles/lustre.*)
admin viewer
Créer des instances
Supprimer des instances
Mettre à jour les instances
Obtenir des instances
Répertorier les instances
Importer/exporter des données depuis/vers Cloud Storage
Obtenir un emplacement
Répertorier les emplacements compatibles
Répertorier les opérations de longue durée
Obtenir une opération
Annuler une opération
Supprimer une opération

Rôles personnalisés

Si les rôles prédéfinis disponibles ne répondent pas aux exigences d'accès de votre organisation, vous pouvez créer et appliquer des rôles IAM personnalisés.

Lorsque vous créez des rôles personnalisés, nous vous recommandons d'utiliser une combinaison de rôles prédéfinis pour vous assurer que les autorisations appropriées sont incluses.

Agent de service Managed Lustre

Managed Lustre utilise un agent de service pour accéder à d'autres Google Cloud ressources et effectuer des actions en votre nom. Un agent de service est un compte de service géré par Google qui est créé automatiquement la première fois que vous créez une instance Managed Lustre dans un projet. Il peut également être créé manuellement.

L'attribution d'autorisations à l'agent de service n'est requise que si vous utilisez certaines fonctionnalités facultatives. Pour la création d'instances standards et les opérations du système de fichiers sans ces fonctionnalités, aucune configuration d'agent de service n'est nécessaire.

Fonctionnalités nécessitant des autorisations d'agent de service

Les fonctionnalités suivantes nécessitent l'attribution de rôles IAM à l'agent de service :

Fonctionnalité Rôle requis Ressource cible Description
Clés de chiffrement gérées par le client (CMEK) roles/cloudkms.cryptoKeyEncrypterDecrypter Clé Cloud KMS Permet à l'agent de service de chiffrer et de déchiffrer les données au repos à l'aide de votre clé.
Transférer des données depuis Cloud Storage roles/storage.objectViewer Bucket Cloud Storage Permet à l'agent de service de lire et d'importer des objets de votre bucket dans l'instance.
Transférer des données vers et depuis Cloud Storage roles/storage.objectUser Bucket Cloud Storage Permet à l'agent de service de lire et d'écrire des objets lors des opérations d'importation et d'exportation.

Si vous n'utilisez aucune de ces fonctionnalités, vous pouvez ignorer les étapes restantes de cette section.

Créer ou récupérer l'identité de l'agent de service

Pour accorder des autorisations à l'agent de service, vous devez obtenir son identité. L'agent de service utilise le format suivant :

service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com

Utilisez l'une des options suivantes pour créer ou déterminer l'identité de l'agent de service :

  • Si vous n'avez pas créé d'instance Managed Lustre : créez manuellement l'agent de service en exécutant la commande services identity create :

    gcloud beta services identity create \
      --service=lustre.googleapis.com \
      --project=PROJECT_NUMBER_OR_ID
    

    Remplacez PROJECT_NUMBER_OR_ID par le numéro ou l'ID du projet dans lequel vous souhaitez créer l'instance Managed Lustre. La commande renvoie un résultat semblable à celui-ci :

    Service identity created: service-1234567890@gcp-sa-lustre.iam.gserviceaccount.com
    
  • Si vous avez déjà créé une instance Managed Lustre : pour créer l'identité de l'agent de service, récupérez le numéro de votre projet à l'aide de la commande gcloud projects describe :

    gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    

    Remplacez PROJECT_ID par l'ID de votre projet. Ensuite, remplacez PROJECT_NUMBER dans l'adresse e-mail de l'agent de service :

    service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com
    

Accorder des autorisations à l'agent de service

Après avoir obtenu l'identité de votre agent de service, consultez la documentation suivante pour accorder le rôle requis pour votre fonctionnalité :

Autorisations supplémentaires requises Google Cloud

En plus des autorisations lustre, vous pouvez avoir besoin d'autorisations dans d'autres Google Cloud services pour effectuer des tâches spécifiques :

Tâche Autorisation
Créer un réseau VPC Consultez la section Autorisations requises de Configurer un réseau VPC
Créer des VM Compute Engine Administrateur d'instances Compute (v1). (roles/compute.instanceAdmin.v1) Pour en savoir plus, consultez la documentation Compute Engine.
Créer et gérer des clusters Google Kubernetes Engine Administrateur de conteneurs. (roles/container.admin) Pour en savoir plus, consultez la documentation Google Kubernetes Engine.