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 , à l'exception de
|
Gérer les instances Memorystore pour Redis création ou suppression d'instances impossible |
|
Lecteur Redis | Toutes les autorisations redis , à l'exception de
|
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 :
Permission | 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, Google Cloud Console 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 permettre à un utilisateur de 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 indique 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 utilisent l'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 dispose d'un compte de service qu'elle utilise pour communiquer avec d'autres ressources Google Cloud.
Parfois (par exemple, lors de l'exportation ou de l'utilisation du chiffrement CMEK), vous devez accorder des rôles ou des autorisations spécifiques au compte de service.
Format du compte de service Memorystore pour Redis
Le compte de service de votre instance utilise l'un des deux formats différents, en fonction de la date de sa création.
Le premier format est le suivant:
[PROJECT_NUMBER]-compute@developer.gserviceaccount.com
Le second format est le suivant:
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
Pour afficher la source d'informations sur le compte de service utilisé par votre instance, consultez la section Afficher le compte de service de votre instance.
Problèmes connus
Il arrive qu'un compte de service utilisant le format [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
soit en conflit avec le règlement de votre organisation. Pour en savoir plus et découvrir comment résoudre ces problèmes, consultez Problèmes liés à la règle d'administration de partage limité au 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 répertorié 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 autre rôle personnalisé 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é au compte de service les autorisations au niveau du bucket, vous pouvez ignorer le message "Memorystore n'est pas en mesure de vérifier si le compte de service xxxx@xxxx.gserviceaccount.com dispose des autorisations nécessaires pour l'exportation. 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 | ✓ | ✓ |
Étape suivante
- Découvrez comment attribuer et révoquer des accès.
- Apprenez-en plus sur IAM.
- Découvrez les rôles personnalisés.