Identity and Access Management (IAM) vous permet de contrôler l'accès des utilisateurs et des groupes aux ressources Spanner au niveau du projet, de l'instance Spanner et de la base de données Spanner. Par exemple, vous pouvez accorder à un utilisateur le contrôle total d'une base de données déterminée dans une instance spécifique de votre projet, mais sans l'autoriser à créer, modifier ou supprimer des instances dans ce projet. L'utilisation du contrôle des accès avec IAM vous permet d'accorder une autorisation à un utilisateur ou à un groupe sans avoir à modifier une à une les autorisations associées aux instances ou aux bases de données Spanner.
Ce document porte sur les autorisations IAM pertinentes pour Spanner et sur les rôles IAM qui permettent d'octroyer ces autorisations. Pour obtenir une description détaillée des services IAM et de leurs fonctionnalités, consultez le guide du développeur sur Identity and Access Management. en particulier la section Gérer les stratégies IAM.
Autorisations
Les autorisations permettent aux utilisateurs de réaliser des opérations spécifiques sur les ressources Spanner. 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, tandis que l'autorisation spanner.databases.select lui permet d'exécuter une instruction SQL "SELECT" sur une base de données. Vous n'accordez pas directement d'autorisations aux utilisateurs, mais vous leur attribuez des rôles prédéfinis ou des rôles personnalisés auxquels sont associées une ou plusieurs autorisations.
Les tableaux suivants répertorient les autorisations IAM associées à Spanner.
Configurations d'instance
Les autorisations suivantes s'appliquent aux configurations d'instance Spanner. Pour en savoir plus, consultez les références de configuration des instances pour les API REST et RPC.
| Nom de l'autorisation relative aux configurations d'instance | Description |
|---|---|
spanner.instanceConfigs.create |
Créez une configuration d'instance personnalisée. |
spanner.instanceConfigs.delete |
Supprimez une configuration d'instance personnalisée. |
spanner.instanceConfigs.get |
Obtenir une configuration d'instance |
spanner.instanceConfigs.list |
Répertorier l'ensemble des configurations d'instance |
spanner.instanceConfigs.update |
Mettez à jour la configuration d'une instance personnalisée. |
Opérations de configuration d'instance
Les autorisations suivantes s'appliquent aux opérations de configuration des instances Spanner. Pour en savoir plus, consultez les références d'instance pour les API REST et RPC.
| Nom de l'autorisation d'opération de configuration d'instance | Description |
|---|---|
spanner.instanceConfigOperations.cancel |
Annuler une opération de configuration d'instance |
spanner.instanceConfigOperations.delete |
Supprimer une opération de configuration d'instance |
spanner.instanceConfigOperations.get |
Obtenir une opération de configuration d'instance |
spanner.instanceConfigOperations.list |
Répertoriez les opérations de configuration d'instance. |
Instances
Les autorisations suivantes s'appliquent aux instances Spanner. Pour en savoir plus, consultez les références d'instance pour les API REST et RPC.
| Nom de l'autorisation de l'instance | Description |
|---|---|
spanner.instances.create |
Créer une instance |
spanner.instances.delete |
Supprimez une instance. |
spanner.instances.get |
Obtenir la configuration d'une instance spécifique |
spanner.instances.getIamPolicy |
Obtenir la stratégie IAM d'une instance |
spanner.instances.list |
Répertorier les instances |
spanner.instances.setIamPolicy |
Définir la stratégie IAM d'une instance |
spanner.instances.update |
Mettre à jour une instance |
Opérations d'instance :
Les autorisations suivantes s'appliquent aux opérations sur les instances Spanner. Pour en savoir plus, consultez les références d'instance pour les API REST et RPC.
| Nom de l'autorisation relative aux opérations sur les instances | Description |
|---|---|
spanner.instanceOperations.cancel |
Annuler une opération sur une instance |
spanner.instanceOperations.delete |
Supprimer une opération sur une instance |
spanner.instanceOperations.get |
Obtenir une opération sur une instance |
spanner.instanceOperations.list |
Répertorier les opérations sur les instances |
Partitions d'instance
Les autorisations suivantes s'appliquent aux partitions d'instances Spanner. Pour en savoir plus, consultez les références de partitionnement d'instance pour les API REST et RPC.
| Nom de l'autorisation de l'instance | Description |
|---|---|
spanner.instancePartitions.create |
Créez une partition d'instance. |
spanner.instancePartitions.delete |
Supprimez une partition d'instance. |
spanner.instancePartitions.get |
Obtenir la configuration d'une partition d'instance spécifique |
spanner.instancePartitions.list |
Répertorier les partitions d'instance |
spanner.instancePartitions.update |
Mettre à jour une partition d'instance |
Opérations de partitionnement d'instance
Les autorisations suivantes s'appliquent aux opérations de partitionnement des instances Spanner. Pour en savoir plus, consultez les références de partitionnement d'instance pour les API REST et RPC.
| Nom de l'autorisation d'opération de partitionnement d'instance | Description |
|---|---|
spanner.instancePartitionOperations.cancel |
Annuler une opération de partitionnement d'instance. |
spanner.instancePartitionOperations.delete |
Supprimez une opération de partitionnement d'instance. |
spanner.instancePartitionOperations.get |
Obtenir une opération de partitionnement d'instance spécifique |
spanner.instancePartitionOperations.list |
Répertorier les opérations de partitionnement d'instance |
Bases de données
Les autorisations suivantes s'appliquent aux bases de données Spanner. Pour en savoir plus, consultez les références de base de données pour les API REST et RPC.
| Nom de l'autorisation pour la base de données | Description |
|---|---|
spanner.databases.adapt |
Permet à l'API Spanner Adapter d'interagir directement avec Spanner. |
spanner.databases.beginOrRollbackReadWriteTransaction |
Commencer ou annuler une transaction en lecture/écriture sur une base de données Spanner |
spanner.databases.beginPartitionedDmlTransaction |
Exécuter une instruction LMD (langage de manipulation de données) partitionnée par instance. Pour en savoir plus sur les requêtes partitionnées par instance, consultez la section Lire des données en parallèle. |
spanner.databases.beginReadOnlyTransaction |
Commencer une transaction en lecture seule sur une base de données Spanner |
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.drop |
Supprimer une base de données |
spanner.databases.get |
Obtenir les métadonnées d'une base de données |
spanner.databases.getDdl |
Obtenir le schéma 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.select |
Exécuter une instruction SQL "SELECT" sur une base de données |
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.useDataBoost |
Utilisez les ressources de calcul de Spanner Data Boost pour traiter les requêtes partitionnées par instance. |
spanner.databases.useRoleBasedAccess |
Utilisez un contrôle précis des accès. |
spanner.databases.write |
Écrire dans une base de données |
Rôles de base de données
Les autorisations suivantes s'appliquent aux rôles de base de données Spanner. Pour en savoir plus, consultez les références de base de données pour les API REST et RPC.
| Nom de l'autorisation de rôle de base de données | Description |
|---|---|
spanner.databaseRoles.list |
Répertorier les rôles de base de données |
spanner.databaseRoles.use |
Utilisez un rôle de base de données spécifié. |
Opérations de base de données
Les autorisations suivantes s'appliquent aux opérations de base de données Spanner. Pour en savoir plus, consultez les références de base de données pour les API REST et RPC.
| Nom de l'autorisation relative aux opérations de base de données | Description |
|---|---|
spanner.databaseOperations.cancel |
Annuler 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. Pour en savoir plus, consultez les références de sauvegarde pour les API REST et RPC.
| Nom de l'autorisation de sauvegarde | Description |
|---|---|
spanner.backups.create |
Créer une sauvegarde (nécessite également spanner.databases.createBackup sur la base de données source) |
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 sur l'instance cible. |
spanner.backups.setIamPolicy |
Définir la stratégie IAM d'une sauvegarde |
spanner.backups.update |
Mettre à jour une sauvegarde |
Opérations de sauvegarde
Les autorisations suivantes s'appliquent aux opérations de sauvegarde Spanner. Pour en savoir plus, consultez les références de base de données pour les API REST et RPC.
| Nom de l'autorisation de l'opération de sauvegarde | Description |
|---|---|
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 planifications de sauvegarde Spanner. Pour en savoir plus, consultez les références de base de données pour les API REST et RPC.
| Nom de l'autorisation de planification de sauvegarde | Description |
|---|---|
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 |
Supprimez une planification de sauvegarde. |
spanner.backupSchedules.get |
Obtenez un calendrier de sauvegarde. |
spanner.backupSchedules.list |
Répertorier les programmations de sauvegarde. |
spanner.backupSchedules.update |
Mettre à jour un planning de sauvegarde |
Sessions
Les autorisations suivantes s'appliquent aux sessions Spanner. Pour en savoir plus, consultez les références de base de données pour les API REST et RPC.
| Nom de l'autorisation relative aux sessions | Description |
|---|---|
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 |
Rôles prédéfinis
Un rôle prédéfini correspond à un ensemble contenant une ou plusieurs autorisations. Par exemple, le rôle prédéfini roles/spanner.databaseUser contient les autorisations spanner.databases.read et spanner.databases.write. Il existe deux types de rôles prédéfinis pour Spanner:
- Rôles de personne: ces rôles sont attribués à des utilisateurs ou à des groupes afin de leur permettre d'effectuer des actions sur les ressources de votre projet.
- Rôles de machine : ces rôles sont attribués à des comptes de service, et permettent aux machines exécutées sous ces comptes de service d'effectuer des actions sur les ressources de votre projet.
Le tableau suivant répertorie le contrôle des accès avec des rôles IAM prédéfinis, avec la liste des autorisations associées à chaque rôle:
| Role | Permissions |
|---|---|
Cloud Spanner Admin( Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:
Lowest-level resources where you can grant this role:
|
|