En esta página se describe cómo puedes controlar el acceso y los permisos de los proyectos de Memorystore para Redis mediante Gestión de Identidades y Accesos (IAM).
Información general
Google Cloud ofrece IAM, que te permite dar acceso más granular a recursos específicos Google Cloud y evita el acceso no deseado a otros recursos. En esta página se describen los roles y permisos de gestión de identidades y accesos (IAM) de Memorystore para Redis. Para obtener una descripción detallada de los roles y permisos, consulta la documentación de gestión de identidades y accesos.
Memorystore para Redis proporciona un conjunto de roles predefinidos diseñados para ayudarte a controlar fácilmente 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 antiguos (Editor, Lector y Propietario) también están disponibles, aunque no proporcionan el mismo control detallado que los roles de Memorystore para Redis. En concreto, los roles básicos proporcionan acceso a los recursos deGoogle Cloud, no solo a los de Memorystore para Redis. Para obtener más información sobre los roles básicos, consulta Roles básicos.
Permisos y roles
En esta sección se resumen los permisos y los roles que admite Memorystore para Redis.
Funciones predefinidas
Memorystore para Redis ofrece algunos roles predefinidos que puedes usar para proporcionar permisos más específicos a las entidades. El rol que asignes a una entidad principal controla las acciones que puede llevar a cabo. Las entidades principales pueden ser personas, grupos o cuentas de servicio.
Puedes conceder varios roles al mismo principal y, si tienes los permisos necesarios, puedes cambiar los roles concedidos a un principal en cualquier momento.
Entre las funciones más amplias se incluyen aquellas que están más estrechamente definidas. Por ejemplo, el rol Editor de Redis incluye todos los permisos del rol Lector de Redis, además de los permisos del rol Editor de Redis. Del mismo modo, el rol Administrador de Redis incluye todos los permisos del rol Editor de Redis, así como sus permisos adicionales.
Los roles básicos (Propietario, Editor y Lector) proporcionan permisos en Google Cloud. Los roles específicos de Memorystore para Redis solo proporcionan permisos de Memorystore para Redis, excepto los siguientes Google Cloud permisos, que son necesarios para el uso general: Google Cloud
resourcemanager.projects.get
resourcemanager.projects.list
En la siguiente tabla se enumeran los roles predefinidos disponibles en Memorystore para Redis, junto con sus permisos de Memorystore para Redis:
Rol | Nombre | Permisos de Redis | Descripción |
---|---|---|---|
|
Propietario |
|
Acceso y control completos de todos los Google Cloud recursos; gestiona el acceso de los usuarios |
|
Editor | Todos los redis permisos excepto *.getIamPolicy &
.setIamPolicy |
Acceso de lectura y escritura a todos los recursos de Google Cloud y Redis (control total, excepto la capacidad de modificar permisos) |
|
Lector |
|
Acceso de solo lectura a todos los recursos, incluidos los recursos de Redis. Google Cloud |
|
Administrador de Redis |
|
Control total de todos los recursos de Memorystore para Redis. |
|
Editor de Redis | Todos los permisos de redis , excepto
|
Gestionar instancias de Memorystore para Redis. No se pueden crear ni eliminar 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 los permisos que admite Memorystore para Redis y los roles de Memorystore para Redis que los incluyen:
Permiso | Rol de Redis | Rol básico |
---|---|---|
|
Administrador de Redis Editor de Redis Lector de Redis |
Google Reader |
|
Administrador de Redis Editor de Redis Lector de Redis |
Google Reader |
|
Administrador de Redis | Editor |
|
Administrador de Redis Editor de Redis |
Editor |
|
Administrador de Redis | Editor |
|
Administrador de Redis | Editor |
|
Administrador de Redis | Editor |
|
Administrador de Redis | Editor |
|
Administrador de Redis | Editor |
|
Administrador de Redis | Editor |
|
Administrador de Redis Editor de Redis Lector de Redis |
Google Reader |
|
Administrador de Redis Editor de Redis Lector de Redis |
Google Reader |
|
Administrador de Redis Editor de Redis Lector de Redis |
Google Reader |
|
Administrador de Redis Editor de Redis Lector de Redis |
Google Reader |
|
Administrador de Redis | Editor |
Roles personalizados
Si los roles predefinidos no se ajustan a los requisitos específicos de tu empresa, puedes definir tus propios roles personalizados con los permisos que especifiques. Para ello, Gestión de Identidades y Accesos ofrece roles personalizados. Cuando crees roles personalizados para Memorystore para Redis, asegúrate de incluir resourcemanager.projects.get
y resourcemanager.projects.list
.
De lo contrario, la consola Google Cloud no funcionará correctamente en Memorystore para Redis. Para obtener más información, consulta Dependencias de permisos.
Para saber cómo crear un rol personalizado, consulta el artículo Crear un rol personalizado.
Permisos necesarios para realizar tareas habituales en la consola Google Cloud
Para permitir que un usuario trabaje con Memorystore para Redis mediante la consola, el rol del usuario debe incluir los permisos Google Cloud , resourcemanager.projects.get
y resourcemanager.projects.list
.
En la siguiente tabla se indican los permisos necesarios para realizar algunas tareas habituales en la consola de Google Cloud :
Tarea | Permisos adicionales obligatorios |
---|---|
Mostrar la página de lista de instancias |
|
Crear y editar una instancia |
|
Eliminar una instancia |
|
Conectarse a una instancia de Cloud Shell |
|
Ver información sobre instancias |
|
Importar y exportar archivos de copia de seguridad RDB |
|
Actualizar 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 comandos gcloud
, el rol 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 gcloud
para cada subcomando gcloud redis
:
Comando | Permisos obligatorios |
---|---|
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 indican los permisos que debe tener el llamante para invocar cada método de la API 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 obligatorios |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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. Google Cloud
En ocasiones (por ejemplo, al exportar o usar CMEK), debes conceder 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 los dos formatos diferentes, en función de cuándo se creó.
El primer formato es el siguiente:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
El segundo formato es el siguiente:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
Problemas conocidos
En ocasiones, una cuenta de servicio con el formato [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
puede entrar en conflicto con la política de tu organización. Para obtener más información y saber cómo solucionar este problema, consulta Problemas con la política de organización para compartir con dominio restringido.
Ver la cuenta de servicio de una instancia
Para ver la cuenta de servicio de tu instancia, ejecuta el siguiente comando y anota la cuenta de servicio que aparece en persistenceIamIdentity
:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Permisos de AUTH de 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.
Permisos necesarios | Crear una instancia de Memorystore con Redis AUTH habilitado | Habilitar o inhabilitar AUTH en una instancia de Redis | Ver la cadena de AUTH | Ver si AUTH está habilitado o inhabilitado en 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 cifrado en tránsito
En la siguiente tabla se muestran los permisos necesarios para habilitar y gestionar el cifrado en tránsito en Memorystore para Redis.
Permisos necesarios | Crear una instancia de Memorystore con cifrado en tránsito | Descargar la autoridad de certificación |
---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
Permisos de la política de mantenimiento
En la tabla siguiente se muestran los permisos necesarios para gestionar la política de mantenimiento de Memorystore para Redis.
Permisos necesarios | Crear una instancia de Memorystore con una política de mantenimiento habilitada | Crear o modificar políticas de mantenimiento en una instancia de Memorystore | Ver la configuración de la política de mantenimiento | Reprogramar el 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 importar y exportar
Para usar roles personalizados en la importación y la exportación, se necesitan dos roles personalizados independientes. Un rol personalizado para el usuario y otro rol personalizado para la cuenta de servicio de la instancia de Redis. El rol personalizado de la cuenta de servicio usa permisos a nivel de segmento de Cloud Storage.
Para encontrar la cuenta de servicio de tu instancia, consulta Ver la cuenta de servicio de una instancia.
Permisos de la cuenta de servicio
Ten en cuenta que solo tienes que conceder permisos de almacenamiento a la cuenta de servicio a nivel de segmento, no a todo el proyecto. Para obtener instrucciones, consulta Añadir un principal a una política a nivel de segmento.
Una vez que hayas concedido permisos a nivel de segmento a tu cuenta de servicio, puedes ignorar el mensaje que dice "Memorystore no puede verificar si la cuenta de servicio xxxx@xxxx.gserviceaccount.com tiene los permisos necesarios para importar o exportar. Para recibir ayuda con la verificación o la actualización de los permisos, ponte en contacto con el administrador del proyecto. Para obtener información sobre los permisos necesarios, consulta la documentación sobre los permisos para importar o exportar. Si aplicas los permisos que se indican a continuación a los roles personalizados de la cuenta de usuario y la cuenta de servicio, la importación o exportación se realizará correctamente.
Permisos del rol personalizado de la cuenta de servicio | Importar con gcloud | Exportar con gcloud | Importar con la consola Google Cloud | Exportar con la consola de Google Cloud |
---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | Opcional. (concede permiso para sobrescribir el archivo RDB). |
X | Opcional. (concede permiso para sobrescribir el archivo RDB). |
Permisos de la cuenta de usuario
Permisos del rol personalizado de la cuenta de usuario | Importar con gcloud | Exportar con gcloud | Importar con la consola Google Cloud | Exportar 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 | ✓ | ✓ |
Siguientes pasos
- Consulta cómo conceder y revocar el acceso.
- Más información sobre IAM
- Más información sobre los roles personalizados