Cette page explique comment contrôler les autorisations et l'accès aux projets Memorystore pour Redis à l'aide de la gestion de l'authentification et des accès (IAM).
Présentation
Google Cloud propose IAM, qui vous permet d'attribuer un accès précis à des ressources spécifiques de Google Cloud et empêche tout accès non souhaité à d'autres ressources. Cette page décrit les rôles et les autorisations IAM de Memorystore pour Redis. Pour une description détaillée des rôles et des autorisations, consultez la documentation IAM.
Memorystore pour Redis fournit un ensemble de rôles prédéfinis conçus pour vous aider à contrôler facilement l'accès à vos ressources Redis. Si les rôles prédéfinis n'offrent pas les autorisations dont vous avez besoin, vous pouvez également créer vos propres rôles personnalisés. En outre, les anciens rôles de base (editeur, lecteur et propriétaire) restent disponibles, même s'ils ne permettent pas un contrôle aussi précis que les rôles Memorystore pour Redis. En particulier, les rôles de base fournissent un accès aux ressources pour l'ensemble des services Google Cloud, et pas seulement à Memorystore pour Redis. Pour en savoir plus sur les rôles de base, consultez la section Rôles de base.
Autorisations et rôles
Cette section récapitule les autorisations et les rôles associés à Memorystore pour Redis.
Rôles prédéfinis
Memorystore pour Redis fournit des rôles prédéfinis que vous pouvez utiliser pour attribuer des autorisations plus précises aux comptes principaux. Le rôle que vous attribuez à une entité principale définit les actions qu'elle peut entreprendre. Les entités principales peuvent être des individus, des groupes ou des comptes de service.
Vous pouvez attribuer plusieurs rôles à un même compte principal et, si vous disposez des autorisations nécessaires pour le faire, vous pouvez modifier à tout moment les rôles attribués à un compte principal.
Les rôles généraux incluent les rôles plus précis. Par exemple, le rôle d'éditeur Redis dispose non seulement de toutes les autorisations du rôle de lecteur Redis, mais également de ses autorisations spécifiques. De même, le rôle d'administrateur Redis inclut toutes les autorisations du rôle d'éditeur Redis ainsi que ses propres autorisations.
Les rôles de base (propriétaire, éditeur, lecteur) fournissent des autorisations pour l'ensemble des services Google Cloud. Les rôles propres à Memorystore pour Redis n'incluent que des autorisations Memorystore pour Redis, à l'exception des autorisations Google Cloud suivantes, nécessaires pour l'utilisation générale de Google Cloud :
resourcemanager.projects.get
resourcemanager.projects.list
Le tableau suivant répertorie les rôles prédéfinis disponibles pour Memorystore pour Redis, ainsi que les autorisations Memorystore pour Redis :
Rôle | Nom | Autorisations Redis | Description |
---|---|---|---|
|
Propriétaire |
|
Accès complet à toutes les ressources Google Cloud, contrôle total sur ces ressources et gestion de l'accès des utilisateurs |
|
Éditeur | Toutes les autorisations redis , à l'exception de *.getIamPolicy et .setIamPolicy |
Accès en lecture/écriture à toutes les ressources Google Cloud et Redis (contrôle total, hormis la possibilité de modifier les autorisations) |
|
Lecteur |
|
Accès en lecture seule à toutes les ressources Google Cloud, y compris les ressources Redis |
|
Administrateur Redis |
|
Contrôle total sur toutes les ressources Memorystore pour Redis |
|
Éditeur Redis | Toutes les autorisations redis , sauf
|
Gérer les instances Memorystore pour Redis création ou suppression d'instances impossible |
|
Lecteur Redis | Toutes les autorisations redis , sauf
|
Accès en lecture seule à toutes les ressources Memorystore pour Redis. |
Autorisations et rôles associés
Le tableau suivant répertorie toutes les autorisations disponibles pour Memorystore pour Redis et les rôles Memorystore pour Redis qui les incluent :
Autorisation | Rôle Redis | Rôle de base |
---|---|---|
|
Administrateur Redis Éditeur Redis Lecteur Redis |
Reader |
|
Administrateur Redis Éditeur Redis Lecteur Redis |
Reader |
|
Administrateur Redis | Auteur |
|
Administrateur Redis Éditeur Redis |
Auteur |
|
Administrateur Redis | Rédacteur |
|
Administrateur Redis | Rédacteur |
|
Administrateur Redis | Rédacteur |
|
Administrateur Redis | Rédacteur |
|
Administrateur Redis | Rédacteur |
|
Administrateur Redis | Auteur |
|
Administrateur Redis Éditeur Redis Lecteur Redis |
Reader |
|
Administrateur Redis Éditeur Redis Lecteur Redis |
Reader |
|
Administrateur Redis Éditeur Redis Lecteur Redis |
Reader |
|
Administrateur Redis Éditeur Redis Lecteur Redis |
Reader |
|
Administrateur Redis | Auteur |
Rôles personnalisés
Si les rôles prédéfinis ne répondent pas à vos exigences commerciales, vous pouvez définir des rôles personnalisés avec des autorisations que vous spécifiez. Pour ce faire, utilisez les rôles personnalisés dans IAM. Lorsque vous créez des rôles personnalisés pour Memorystore pour Redis, veillez à inclure à la fois resourcemanager.projects.get
et resourcemanager.projects.list
.
Sinon, la console Google Cloud ne fonctionnera pas correctement pour Memorystore pour Redis. Pour en savoir plus, consultez la section Dépendances d'autorisation.
Pour savoir comment créer un rôle personnalisé, consultez la page Créer un rôle personnalisé.
Autorisations requises pour effectuer des tâches courantes dans la console Google Cloud
Pour qu'un utilisateur puisse travailler avec Memorystore pour Redis à l'aide de la console Google Cloud, son rôle doit inclure les autorisations resourcemanager.projects.get
et resourcemanager.projects.list
.
Le tableau suivant fournit les autres autorisations requises pour certaines tâches courantes dans la console Google Cloud:
Tâche | Autorisations supplémentaires requises |
---|---|
Afficher la page contenant la liste des instances |
|
Créer et modifier une instance |
|
Supprimer une instance |
|
Se connecter à une instance à partir de Cloud Shell |
|
Afficher les informations sur les instances |
|
Importer et exporter des fichiers de sauvegarde au format RDB |
|
Mettre à jour la version de Redis d'une instance |
|
Autorisations requises pour les commandes gcloud
Pour permettre à un utilisateur de travailler avec Memorystore pour Redis à l'aide des commandes gcloud
, son rôle doit inclure les autorisations resourcemanager.projects.get
et resourcemanager.projects.list
.
Le tableau suivant répertorie les autorisations dont l'utilisateur appelant une commande gcloud
doit disposer pour chaque sous-commande gcloud redis
:
Command | Autorisations requises |
---|---|
gcloud redis instances auth |
|
gcloud redis instances create |
|
gcloud redis instances delete |
|
gcloud redis instances update |
|
gcloud redis instances list |
|
gcloud redis instances describe |
|
gcloud redis instances import |
|
gcloud redis instances export |
|
gcloud redis instances upgrade |
|
gcloud redis operations list |
|
gcloud redis operations describe |
|
gcloud redis regions list |
|
gcloud redis regions describe |
|
gcloud redis zones list |
|
Autorisations requises pour les méthodes API
Le tableau suivant répertorie les autorisations dont l'appelant doit disposer pour appeler chaque méthode dans l'API Memorystore pour Redis ou pour effectuer des tâches à l'aide des outils Google Cloud qui exploitent cette API (tels que la console Google Cloud ou l'outil de ligne de commande gcloud
):
Méthode | Autorisations requises |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Compte de service Memorystore pour Redis
Chaque instance Memorystore pour Redis possède un compte de service qui lui permet de communiquer avec d'autres ressources Google Cloud.
Parfois (comme lors de l'exporting ou de l'utilisation de clés CMEK), vous devez parfois accorder des rôles ou des autorisations spécifiques au compte de service.
Format de compte de service Memorystore pour Redis
Le compte de service de votre instance utilise l'un des deux formats suivants, selon la date de création.
Le premier format est le suivant:
[PROJECT_NUMBER]-compute@developer.gserviceaccount.com
Le second format est:
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
Pour savoir quel compte de service utilise votre instance, consultez la section Afficher le compte de service de votre instance.
Problèmes connus
Parfois, un compte de service au format [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
peut entrer en conflit avec votre règle d'administration. Pour en savoir plus et connaître la procédure à suivre pour résoudre ces problèmes, consultez Problèmes liés à la règle d'administration du partage restreint de domaine.
Affichez le compte de service de votre instance:
Pour afficher le compte de service de votre instance, exécutez la commande suivante et notez le compte de service indiqué sous persistenceIamIdentity
:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Autorisations de Redis AUTH
Le tableau suivant indique le nombre minimal d'autorisations dont un utilisateur a besoin pour effectuer certaines tâches de base Memorystore pour Redis AUTH.
Autorisations nécessaires | Créer une instance Memorystore avec Redis AUTH activé | Activer/Désactiver AUTH sur une instance Redis existante | Afficher la chaîne AUTH | Afficher si AUTH est activée/désactivée pour une instance Redis |
---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | X | ✓ |
redis.instances.updateAuth
|
✓ | ✓ | X | X |
redis.instances.getAuthString
|
X | X | ✓ | X |
Autorisations pour le chiffrement en transit
Le tableau ci-dessous présente les autorisations requises pour activer et gérer le chiffrement en transit pour Memorystore pour Redis.
Autorisations nécessaires | Créer une instance Memorystore avec chiffrement en transit | Télécharger l'autorité de certification |
---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
Autorisations liées aux stratégies de maintenance
Le tableau ci-dessous présente les autorisations requises pour gérer la stratégie de maintenance de Memorystore pour Redis.
Autorisations nécessaires | Créer une instance Memorystore avec une stratégie de maintenance activée | Créer ou modifier des stratégies de maintenance sur une instance Memorystore existante | Afficher les paramètres des stratégies de maintenance | Replanifier la maintenance |
---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | ✓ | X |
redis.instances.rescheduleMaintenance
|
X | X | X | ✓ |
Autorisations requises pour l'importation et l'exportation
L'utilisation de rôles personnalisés pour l'importation et l'exportation nécessite deux rôles personnalisés distincts. Un rôle personnalisé pour l'utilisateur et un rôle personnalisé supplémentaire pour le compte de service de l'instance Redis. Le rôle personnalisé du compte de service utilise des autorisations au niveau du bucket Cloud Storage.
Pour trouver le compte de service de votre instance, consultez Afficher le compte de service de votre instance.
Autorisations pour le compte de service
Notez que vous devez seulement accorder au compte de service des autorisations de stockage au niveau du bucket, et non au niveau de l'ensemble du projet. Pour obtenir des instructions, consultez la section Ajouter un compte principal à une stratégie au niveau du bucket.
Une fois que vous avez accordé des autorisations au niveau du bucket à votre compte de service, vous pouvez ignorer le message indiquant que "Memorystore ne peut pas vérifier si le compte de service xxxx@xxxx.gserviceaccount.com dispose des autorisations nécessaires pour importer/exporter. Pour obtenir de l'aide sur la vérification ou la mise à jour des autorisations, contactez l'administrateur de votre projet. Pour découvrir la liste des autorisations requises, consultez la documentation concernant les autorisations d'importation et d'exportation." Si vous appliquez les autorisations répertoriées ci-dessous aux rôles personnalisés du compte utilisateur et du compte de service, l'importation/exportation réussira.
Autorisations pour un rôle personnalisé pour le compte de service | Importer avec gcloud | Exporter avec gcloud | Importer avec la console Google Cloud | Exporter avec la console Google Cloud |
---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | Facultatif. (accorde l'autorisation d'écraser le fichier RDB existant). |
X | Facultatif. (accorde l'autorisation d'écraser le fichier RDB existant). |
Autorisations pour le compte utilisateur
Autorisations pour un rôle personnalisé pour le compte utilisateur | Importer avec gcloud | Exporter avec gcloud | Importer avec la console Google Cloud | Exporter avec la console Google Cloud |
---|---|---|---|---|
resourcemanager.projects.get |
X | X | ✓ | ✓ |
redis.instances.get |
✓ | ✓ | ✓ | ✓ |
redis.instances.list |
X | X | X | X |
redis.instances.import |
✓ | X | ✓ | X |
redis.instances.export |
X | ✓ | X | ✓ |
redis.operations.get |
X | ✓ | ✓ | ✓ |
redis.operations.list |
X | X | ✓ | ✓ |
redis.operations.cancel |
✓ | ✓ | ✓ | ✓ |
storage.buckets.list |
X | X | ✓ | ✓ |
storage.buckets.get |
X | X | ✓ | ✓ |
storage.objects.list |
X | X | ✓ | ✓ |
storage.objects.get |
X | X | ✓ | ✓ |
Étapes suivantes
- Découvrez comment attribuer et révoquer des accès.
- Apprenez-en plus sur IAM.
- Découvrez les rôles personnalisés.