En esta página, se describe cómo puedes controlar los permisos y el acceso a un proyecto de Memorystore para Redis mediante la administración de identidades y accesos (IAM).
Descripción general
Google Cloud ofrece IAM, que te permite otorgar acceso más detallado a recursos específicos de Google Cloud y evita el acceso no deseado a otros recursos. En esta página, se describen los roles y los permisos de IAM de Memorystore para Redis. Para obtener una descripción detallada de los roles y permisos, consulta la documentación de IAM.
Memorystore para Redis proporciona un conjunto de roles predefinidos diseñados para ayudarte a controlar con facilidad el acceso a tus recursos de Redis. Si los roles predefinidos no proporcionan los conjuntos de permisos que necesitas, también puedes crear tus propios roles personalizados. Además, los roles básicos más antiguos (Editor, Visualizador y Propietario) también están disponibles, aunque no proporcionan el mismo control detallado que los roles de Memorystore para Redis. En particular, los roles básicos brindan acceso a los recursos en Google Cloud, en lugar de solo a los de Memorystore para Redis. Para obtener más información sobre los roles básicos, consulta Roles básicos.
Permisos y funciones
En esta sección, se resumen los permisos y las funciones que admite Memorystore para Redis.
Roles predefinidos
Memorystore para Redis proporciona algunos roles predefinidos que puedes usar para otorgar permisos más detallados a las principales. La función que otorgas a una principal controla las acciones que puede realizar. Los principales pueden ser personas, grupos o cuentas de servicios.
Puedes otorgar varios roles a la misma principal y, si tienes los permisos para hacerlo, puedes cambiar los roles otorgados a una principal en cualquier momento.
Las funciones más amplias incluyen las más específicas. Por ejemplo, la función Editor de Redis incluye todos los permisos de la función Lector de Redis, junto con todos los permisos para la función Editor de Redis. Del mismo modo, la función Administrador de Redis incluye todos los permisos de la función Editor de Redis, junto con sus permisos adicionales.
Los roles básicos (Propietario, Editor y Visualizador) proporcionan permisos en Google Cloud. Los roles específicos de Memorystore para Redis solo proporcionan permisos de Memorystore para Redis, excepto los siguientes permisos de Google Cloud , que se necesitan para el uso general de Google Cloud :
resourcemanager.projects.get
resourcemanager.projects.list
En la siguiente tabla, se enumeran los roles predefinidos disponibles para Memorystore para Redis, junto con sus permisos de Memorystore para Redis:
| Función | Nombre | Permisos de Redis | Descripción |
|---|---|---|---|
|
Propietario |
|
Acceso y control total para todos los recursos de Google Cloud ; administra el acceso de los usuarios |
|
Editor | Todos los permisos de redis , excepto *.getIamPolicy y .setIamPolicy |
Acceso de lectura y escritura a todos los recursos de Google Cloud y Redis (control total, excepto para modificar permisos) |
|
Visualizador |
|
Acceso de solo lectura a todos los recursos de Memorystore para Redis. Sin embargo, no puedes usar este permiso para ver los datos asociados con los recursos. |
|
Administrador de Redis |
|
Control total de todos los recursos de Memorystore para Redis. |
|
Editor de Redis | Todos los permisos de redis, excepto
|
Administra instancias de Memorystore para Redis No se pueden crear ni borrar instancias. |
|
Lector de Redis | Todos los permisos de redis, excepto
|
Acceso de solo lectura a todos los recursos de Memorystore para Redis. |
Permisos y sus funciones
En la siguiente tabla, se enumeran todos los permisos que admite Memorystore para Redis y los roles de Memorystore para Redis que los incluyen:
| Permiso | Función de Redis | Función básica |
|---|---|---|
|
Administrador de Redis Editor de Redis Visualizador de Redis |
Lector |
|
Administrador de Redis Editor de Redis Visualizador de Redis |
Lector |
|
Administrador de Redis | Escritor |
|
Administrador de Redis Editor de Redis |
Escritor |
|
Administrador de Redis | Escritor |
|
Administrador de Redis | Escritor |
|
Administrador de Redis | Escritor |
|
Administrador de Redis | Escritor |
|
Administrador de Redis | Escritor |
|
Administrador de Redis | Escritor |
|
Administrador de Redis Editor de Redis Visualizador de Redis |
Lector |
|
Administrador de Redis Editor de Redis Visualizador de Redis |
Lector |
|
Administrador de Redis Editor de Redis Visualizador de Redis |
Lector |
|
Administrador de Redis Editor de Redis Visualizador de Redis |
Lector |
|
Administrador de Redis | Escritor |
Funciones personalizadas
Si los roles predefinidos no responden a tus requisitos comerciales particulares, puedes
definir tus propios roles personalizados con los permisos que especifiques. Para responder a estas necesidades, IAM ofrece funciones personalizadas. Cuando crees funciones personalizadas de Memorystore para Redis, asegúrate de incluir resourcemanager.projects.get y resourcemanager.projects.list.
De lo contrario, la consola de Google Cloud no funcionará de forma correcta
con Memorystore para Redis. Para obtener más información, consulta
Dependencias de permisos.
Para aprender a crear un rol personalizado, consulta Crea un rol personalizado.
Permisos necesarios para realizar tareas comunes en la consola de Google Cloud
Para permitir que un usuario trabaje con Memorystore para Redis con
la consola de Google Cloud , el rol del usuario debe incluir el permiso
resourcemanager.projects.get y el permiso
resourcemanager.projects.list.
En la siguiente tabla, se proporcionan los otros permisos necesarios para algunas tareas comunes en la consola de Google Cloud :
| Tarea | Permisos adicionales obligatorios |
|---|---|
| Mostrar la página de listas de instancias |
|
| Crea y edita una instancia |
|
| Borrar una instancia |
|
| Conéctate a una instancia desde Cloud Shell |
|
| Ver información de una instancia |
|
| Importa y exporta archivos de copia de seguridad de RDB |
|
| Actualiza la versión de Redis de una instancia |
|
Permisos obligatorios para los comandos de gcloud
Para permitir que un usuario trabaje con Memorystore para Redis mediante los comandos de gcloud, la función del usuario debe incluir los permisos resourcemanager.projects.get y resourcemanager.projects.list.
En la siguiente tabla, se enumeran los permisos que debe tener el usuario que invoca un comando de gcloud para cada subcomando gcloud redis:
| Comando | Permisos necesarios |
|---|---|
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 |
|
Permisos obligatorios para los métodos de API
En la siguiente tabla, se enumeran los permisos que el emisor debe tener para llamar a cada
método en la API de Memorystore para Redis o para realizar tareas
con las herramientas de Google Cloud que usan la API
(como la consola de Google Cloud o la herramienta de línea de comandos de gcloud):
| Método | Permisos necesarios |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
La cuenta de servicio de Memorystore para Redis
Cada instancia de Memorystore para Redis tiene una cuenta de servicio que usa para comunicarse con otros recursos de Google Cloud .
En ocasiones (como cuando exportas o usas CMEK), debes otorgar roles o permisos específicos a la cuenta de servicio.
Formato de la cuenta de servicio de Memorystore para Redis
La cuenta de servicio de tu instancia usa uno de dos formatos diferentes, según cuándo se creó.
El primer formato es el siguiente:
PROJECT_NUMBER-compute@El segundo formato es el siguiente:
service-PROJECT_NUMBER@cloud-redis.
Problemas conocidos
A veces, una cuenta de servicio que usa el formato [PROJECT_NUMBER]-compute@
puede entrar en conflicto con la política de la organización. Para obtener más información y
conocer los pasos para resolver estos problemas, consulta Problemas con la política de la organización de uso compartido restringido por dominio.
Visualiza la cuenta de servicio de tu instancia
Para ver la cuenta de servicio de tu instancia, ejecuta el siguiente
comando y toma nota de la cuenta de servicio que aparece en
persistenceIamIdentity:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Permisos AUTH para Redis
En la siguiente tabla, se muestran los permisos mínimos que necesita un usuario para completar algunas tareas básicas de AUTH de Memorystore para Redis.
| Se necesitan permisos | Crea una instancia de Memorystore con AUTH para Redis habilitado. | Habilita o inhabilita AUTH en una instancia existente de Redis | Visualiza la string AUTH | Visualiza si AUTH está habilitado o inhabilitado para una instancia de 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 |
Permisos de encriptación en tránsito
En la siguiente tabla, se muestran los permisos necesarios para habilitar y administrar la encriptación en tránsito de Memorystore para Redis.
| Se necesitan permisos | Crea una instancia de Memorystore con encriptación en tránsito | Descargar la autoridad certificada |
|---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
Permisos de la política de mantenimiento
En la siguiente tabla, se muestran los permisos necesarios para administrar la política de mantenimiento de Memorystore para Redis.
| Se necesitan permisos | Crea una instancia de Memorystore con una política de mantenimiento habilitada | Crea o modifica políticas de mantenimiento en una instancia de Memorystore existente | Visualiza la configuración de la política de mantenimiento | Reprogramar mantenimiento |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | ✓ | X |
redis.instances.rescheduleMaintenance
|
X | X | X | ✓ |
Permisos necesarios para la importación y exportación
El uso de roles personalizados para importar y exportar requiere dos roles personalizados independientes. Un rol personalizado para el usuario y un rol personalizado adicional para la cuenta de servicio de la instancia de Redis. El rol personalizado de la cuenta de servicio usa permisos a nivel de bucket de Cloud Storage.
Para encontrar la cuenta de servicio de tu instancia, consulta Visualiza la cuenta de servicio de tu instancia.
Permisos para la cuenta de servicio
Ten en cuenta que solo debes otorgar permisos de almacenamiento a la cuenta de servicio a nivel de bucket, no a todo el proyecto. Para obtener instrucciones, consulta Agrega un principal a una política a nivel de bucket.
Una vez que otorgues permisos a nivel de bucket a tu cuenta de servicio, puedes ignorar el mensaje que dice "Memorystore no puede verificar si la cuenta de servicio xxxx@xxxx. tiene los permisos necesarios para importar o exportar. Si necesitas ayuda para verificar o actualizar los permisos, comunícate con el administrador de tu proyecto. Para conocer los permisos necesarios, consulta la documentación de permisos de importación y exportación”. Si aplicas los permisos que se indican a continuación a las funciones personalizadas para la cuenta de usuario y la cuenta de servicio, la importación o exportación se realizará de forma correcta.
| Permisos para una función personalizada de la cuenta de servicio | Importar con gcloud | Exportar con gcloud | Importa con la consola de Google Cloud | Exporta con la consola de Google Cloud |
|---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | Opcional. (Otorga permiso para reemplazar el archivo RDB existente). |
X | Opcional. (Otorga permiso para reemplazar el archivo RDB existente). |
Permisos para la cuenta de usuario
| Permisos para funciones personalizadas de cuentas de usuario | Importar con gcloud | Exportar con gcloud | Importa con la consola de Google Cloud | Exporta con la consola de 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 | ✓ | ✓ |
¿Qué sigue?
- Obtén más información para otorgar y revocar el acceso.
- Obtén más información sobre IAM.
- Conoce más acerca de las funciones personalizadas.