Présentation d'IAM

Identity and Access Management (IAM) vous permet de contrôler l'accès des utilisateurs aux ressources Spanner Omni. Par exemple, un utilisateur peut avoir le contrôle total d'une base de données spécifique, mais ne peut pas créer ni modifier d'autres bases de données dans votre déploiement. L'utilisation d'IAM vous permet d'accorder une autorisation à un utilisateur sans avoir à modifier une à une les autorisations associées aux bases de données Spanner Omni.

Ce document porte sur les autorisations IAM pertinentes pour Spanner Omni et sur les rôles IAM qui permettent d'octroyer ces autorisations. Pour obtenir une description détaillée d'IAM et de ses fonctionnalités, consultez le guide du développeur sur Identity and Access Management.

Autorisations

Les autorisations permettent aux utilisateurs d'effectuer des actions spécifiques sur les ressources Spanner Omni. Par exemple, l'autorisation spanner.databases.read permet à un utilisateur de lire dans une base de données à l'aide de l'API de lecture de Spanner Omni, tandis que l'autorisation spanner.databases.export lui permet d'exporter une base de données Spanner Omni. Vous n'accordez pas directement des autorisations aux utilisateurs, mais vous leur attribuez des rôles prédéfinis auxquels sont associées une ou plusieurs autorisations.

Les tableaux suivants répertorient les autorisations IAM associées à Spanner Omni. Certaines autorisations sont partagées avec Spanner, tandis que d'autres ne sont utilisées que par Spanner Omni.

Bases de données

Les autorisations suivantes s'appliquent aux bases de données Spanner Omni.

Nom de l'autorisation pour la base de données Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.databases.create Créer une base de données ✔
spanner.databases.createBackup Créer une sauvegarde à partir de la base de données. Nécessite également spanner.backups.create pour créer la ressource de sauvegarde. ✔
spanner.databases.get Obtenir les métadonnées d'une base de données ✔
spanner.databases.getIamPolicy Obtenir la stratégie IAM d'une base de données ✔
spanner.databases.list Répertorier les bases de données ✔
spanner.databases.read Lire dans une base de données à l'aide de l'API de lecture ✔
spanner.databases.setIamPolicy Définir la stratégie IAM d'une base de données ✔
spanner.databases.update Mettre à jour les métadonnées d'une base de données ✔
spanner.databases.updateDdl Mettre à jour le schéma d'une base de données ✔
spanner.databases.write Écrire dans une base de données ✔
spanner.databases.compact Compacter les tables d'une base de données ✔
spanner.databases.export Exporte une base de données Spanner Omni ✔
spanner.databases.import Importer une base de données Spanner Omni ✔
spanner.databases.addSplitPoints Ajoute des points de fractionnement à une base de données. ✔

Opérations de base de données

Les autorisations suivantes s'appliquent aux opérations de base de données Spanner Omni.

Nom de l'autorisation relative aux opérations de base de données Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.databaseOperations.cancel Annuler une opération de base de données ✔
spanner.databaseOperations.delete Supprimer une opération de base de données ✔
spanner.databaseOperations.get Obtenir une opération de base de données ✔
spanner.databaseOperations.list Répertorier les opérations de base de données et les restaurer ✔

Sauvegardes

Les autorisations suivantes s'appliquent aux sauvegardes Spanner Omni.

Nom de l'autorisation de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backups.copy Copier une sauvegarde ✔
spanner.backups.create Créer une sauvegarde (nécessite également spanner.databases.createBackup sur la base de données source) ✔
spanner.backups.createDatabaseFromBackup Créez une base de données à partir d'une sauvegarde. ✔
spanner.backups.delete Supprimer une sauvegarde ✔
spanner.backups.get Obtenir une sauvegarde ✔
spanner.backups.getIamPolicy Obtenir la stratégie IAM d'une sauvegarde ✔
spanner.backups.list Répertorier des sauvegardes ✔
spanner.backups.restoreDatabase Restaurer la base de données à partir d'une sauvegarde. Nécessite également spanner.databases.create pour créer la base de données restaurée. ✔
spanner.backups.setIamPolicy Définir la stratégie IAM d'une sauvegarde ✔
spanner.backups.update Mettre à jour une sauvegarde ✔
spanner.backups.import Importer une sauvegarde depuis un espace de stockage externe ✔

Opérations de sauvegarde

Les autorisations suivantes s'appliquent aux opérations de sauvegarde Spanner Omni.

Nom de l'autorisation de l'opération de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backupOperations.cancel Annuler une opération de sauvegarde. ✔
spanner.backupOperations.get Obtenir une opération de sauvegarde spécifique. ✔
spanner.backupOperations.list Répertorier les opérations de sauvegarde. ✔

Planifications de sauvegarde

Les autorisations suivantes s'appliquent aux programmations de sauvegarde Spanner Omni.

Nom de l'autorisation de programmation de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backupSchedules.create Créez un planning de sauvegarde. (nécessite également spanner.databases.createBackup sur la base de données source) ✔
spanner.backupSchedules.delete Supprimer une planification de sauvegarde ✔
spanner.backupSchedules.get Obtenez un planning de sauvegarde. ✔
spanner.backupSchedules.list Répertorier les programmations de sauvegarde. ✔
spanner.backupSchedules.update Mettre à jour un planning de sauvegarde ✔
spanner.backupSchedules.getIamPolicy Obtenir la stratégie IAM d'un calendrier de sauvegarde ✔
spanner.backupSchedules.setIamPolicy Définir la stratégie IAM d'un calendrier de sauvegarde ✔

Descripteurs de sauvegarde

Les autorisations suivantes s'appliquent aux descripteurs de sauvegarde Spanner Omni.

Nom de l'autorisation du descripteur de sauvegarde Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.backupDescriptors.import Importe une sauvegarde à partir d'un descripteur de sauvegarde ✔
spanner.backupDescriptors.list Répertorier les descripteurs de sauvegarde. ✔

Sessions

Les autorisations suivantes s'appliquent aux sessions Spanner Omni.

Nom de l'autorisation relative aux sessions Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.sessions.create Créer une session ✔
spanner.sessions.delete Supprimer une session ✔
spanner.sessions.get Obtenir une session ✔
spanner.sessions.list Répertorier les sessions ✔

Emplacement et zones

Les autorisations suivantes s'appliquent aux emplacements et aux zones Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.locations.create Créer un emplacement Spanner Omni ✔
spanner.locations.delete Supprimer un emplacement Spanner Omni ✔
spanner.locations.get Obtenir un emplacement Spanner Omni ✔
spanner.locations.list Lister les emplacements Spanner Omni ✔
spanner.locationDistances.create Créer une distance de localisation Spanner Omni ✔
spanner.locationDistances.delete Supprimer une distance de localisation Spanner Omni ✔
spanner.locationDistances.get Obtenir la distance d'un emplacement Spanner Omni ✔
spanner.locationDistances.list Lister les distances des emplacements Spanner Omni ✔
spanner.locationDistances.update Mettre à jour la distance d'un emplacement Spanner Omni ✔
spanner.zones.create Créer une zone Spanner Omni ✔
spanner.zones.delete Supprimer une zone Spanner Omni ✔
spanner.zones.get Obtenir une zone Spanner Omni ✔
spanner.zones.list Lister les zones Spanner Omni ✔

Serveurs

Les autorisations suivantes s'appliquent aux serveurs Spanner Omni.

Nom de l'autorisation du serveur Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.servers.create Crée un serveur Spanner Omni. ✔
spanner.servers.delete Supprime un serveur Spanner Omni ✔
spanner.servers.get Obtient un serveur Spanner Omni ✔
spanner.servers.list Liste les serveurs Spanner Omni ✔

Utilisateurs et rôles

Les autorisations suivantes s'appliquent aux utilisateurs et aux rôles Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.users.create Crée un utilisateur Spanner Omni ✔
spanner.users.delete Supprime un utilisateur Spanner Omni ✔
spanner.users.get Obtenir un utilisateur Spanner Omni ✔
spanner.users.list Liste les utilisateurs Spanner Omni ✔
spanner.users.update Met à jour un utilisateur Spanner Omni ✔
spanner.roles.get Obtenir un rôle Spanner Omni ✔
spanner.roles.list Liste les rôles Spanner Omni ✔

Stockage externe

Les autorisations suivantes s'appliquent au stockage externe Spanner Omni.

Nom de l'autorisation de stockage externe Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.externalStorages.create Crée un espace de stockage externe ✔
spanner.externalStorages.delete Supprime un stockage externe ✔
spanner.externalStorages.get Obtenir le stockage externe ✔
spanner.externalStorages.getIamPolicy Obtient la stratégie IAM d'un stockage externe. ✔
spanner.externalStorages.list Liste les espaces de stockage externes ✔
spanner.externalStorages.setIamPolicy Définit la stratégie IAM d'un stockage externe ✔

Système de fichiers et descripteurs

Les autorisations suivantes s'appliquent au système de fichiers Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.filesystem.cat Imprime les fichiers dans le système de fichiers Spanner Omni. ✔
spanner.filesystem.ls Liste les fichiers du système de fichiers Spanner Omni ✔
spanner.descriptors.print Affiche les descripteurs dans le système de fichiers Spanner Omni ✔

Autres autorisations d'administrateur

Les autorisations suivantes s'appliquent aux autres tâches d'administrateur Spanner Omni.

Nom de l'autorisation Description Spanner et Spanner Omni Spanner Omni uniquement
spanner.chubby.list Liste les cellules Chubby ✔
spanner.chubby.print Affiche le contenu des cellules Chubby ✔
spanner.deployment.get Obtenir un déploiement Spanner Omni ✔
spanner.diagnostics.create Collecte les artefacts des serveurs Spanner Omni pour le débogage ✔
spanner.internal-tables.sql Exécute des requêtes SQL sur des tables internes ✔
spanner.logs.copy Copie les journaux d'un serveur Spanner Omni ✔
spanner.tablet.move Déplace une tablette d'un serveur Spanner Omni à un autre ✔
spanner.workflows.delete Supprime un workflow dans une base de données ✔
spanner.groups.compact Réduire la taille des tablettes dans un groupe ✔
spanner.directories.compact Compacter les tablettes dans un répertoire ✔

Rôles prédéfinis

Un rôle prédéfini correspond à un ensemble contenant une ou plusieurs autorisations. Spanner Omni est compatible avec les rôles prédéfinis suivants :

Rôle Description
roles/spanner.admin Offre un accès complet à toutes les ressources Spanner Omni. Inclut toutes les autorisations.
roles/spanner.backupAdmin Offre un accès complet aux sauvegardes et aux opérations de sauvegarde Spanner Omni.
roles/spanner.backupWriter Peut créer des sauvegardes, mais ne peut pas les mettre à jour ni les supprimer.
roles/spanner.databaseAdmin Offre un accès complet à toutes les bases de données Spanner Omni d'un projet.
roles/spanner.databaseReader Peut lire la base de données Spanner Omni et afficher le schéma.
roles/spanner.databaseUser Peut lire et écrire dans la base de données Spanner Omni.
roles/spanner.editor Rôle d'éditeur pour Spanner Omni.
roles/spanner.restoreAdmin Peut restaurer une base de données à partir d'une sauvegarde.
roles/spanner.viewer Peut afficher toutes les ressources Spanner Omni, mais ne peut pas les modifier. Inclut les autorisations en lecture seule.

Spanner Omni présente quelques autres limites notables :

  • Aucun rôle personnalisé.
  • Aucun contrôle précis des accès.
  • Aucune condition IAM

Étapes suivantes