Control de acceso basado en roles () RBAC - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Control de acceso basado en roles () RBAC

En lugar de autenticar a los usuarios con los OSS AUTH comandos Valkey y Redis como se describe en Valkey 7.2 y versiones posteriores y en Redis OSS 6.0 en adelanteAutenticación con el comando Valkey y Redis OSS AUTH, puede utilizar una función denominada Control de acceso basado en roles (). RBAC RBACtambién es la única forma de controlar el acceso a las cachés sin servidor.

A diferencia de Valkey y Redis OSSAUTH, donde todos los clientes autenticados tienen acceso total a la caché si su token está autenticado, usted puede controlar el acceso a la caché a RBAC través de grupos de usuarios. Estos grupos de usuarios se han diseñado como una forma de organizar el acceso a las cachés.

ConRBAC, puede crear usuarios y asignarles permisos específicos mediante una cadena de acceso, tal y como se describe a continuación. Los usuarios se asignan a grupos de usuarios alineados con una función específica (administradores, recursos humanos) que, a continuación, se despliegan en una o más ElastiCache cachés. De este modo, puede establecer límites de seguridad entre los clientes que utilizan la misma OSS caché o cachés de Valkey o Redis e impedir que los clientes accedan a los datos de los demás.

nota

Si lo utiliza RBAC con clústeres de Valkey, tendrá que seguir asignando a los usuarios y grupos de usuarios el motor «redis».

RBACestá diseñado para soportar la introducción de OSS Redis ACL6. Cuando se utiliza RBAC con la OSS caché de ElastiCache Valkey o Redis, existen algunas limitaciones:

  • No puede especificar contraseñas en una cadena de acceso. Las contraseñas se configuran con nuestras llamadas CreateUser. ModifyUser

  • Para los derechos de usuario, pasa on y off como parte de la cadena de acceso. Si no se especifica ninguno en la cadena de acceso, se le asigna off al usuario y no tiene derechos de acceso a la caché.

  • No se pueden utilizar comandos prohibidos y renombrados. Si especifica un comando prohibido o renombrado, se generará una excepción. Si desea utilizar listas de control de acceso (ACLs) para un comando cuyo nombre ha cambiado, especifique el nombre original del comando, es decir, el nombre del comando antes de cambiarle el nombre.

  • No puede utilizar el comando reset como parte de una cadena de acceso. Las contraseñas se especifican con API parámetros y ElastiCache (RedisOSS) las gestiona. Por lo tanto, no puede utilizar reset porque eliminará todas las contraseñas de un usuario.

  • Redis OSS 6 presenta el ACLLISTcomando. Este comando devuelve una lista de usuarios junto con las ACL reglas aplicadas a cada usuario. ElastiCache (RedisOSS) admite el ACL LIST comando, pero no incluye la compatibilidad con los hashes de contraseñas, como sí lo hace OSS Redis. Con ElastiCache (RedisOSS), puede utilizar la operación describe-users para obtener información similar, incluidas las reglas contenidas en la cadena de acceso. Sin embargo, describe-users no recupera una contraseña de usuario.

    Otros comandos de solo lectura compatibles ElastiCache con Valkey y Redis son, y. OSS ACLWHOAMIACLUSERSACLCAT ElastiCache con Valkey y Redis OSS no admite ningún otro comando basado en escritura. ACL

  • Existen las siguientes limitaciones:

    Recurso Máximo permitido
    Usuarios por grupo de usuarios 100
    Número de usuarios 1 000
    Número de grupos de usuarios 100

El uso RBAC con ElastiCache (RedisOSS) se describe con más detalle a continuación.

Especificación de permisos mediante una cadena de acceso

Para especificar los permisos de una caché ElastiCache (RedisOSS), debe crear una cadena de acceso y asignarla a un usuario mediante la AWS CLI tecla o. AWS Management Console

Las cadenas de acceso se definen como una lista de reglas delimitadas por espacios que se aplican al usuario. Definen qué comandos puede ejecutar un usuario y qué claves puede operar. Para ejecutar un comando, un usuario debe tener acceso al comando que se ejecuta y a todas las claves a las que accede el comando. Las reglas se aplican de izquierda a derecha de forma acumulativa y se puede utilizar una cadena más simple en lugar de la proporcionada si hay redundancias en la cadena proporcionada.

Para obtener información sobre la sintaxis de las ACL reglas, consulte ACL.

En el siguiente ejemplo, la cadena de acceso representa un usuario activo con acceso a todas las claves y comandos disponibles.

on ~* +@all

La sintaxis de la cadena de acceso se desglosa de la siguiente manera:

  • on: el usuario es un usuario activo.

  • ~*: se brinda acceso a todas las claves disponibles.

  • +@all: se brinda acceso a todos los comandos disponibles.

La configuración anterior es la menos restrictiva. Puede modificar esta configuración para hacerla más segura.

En el siguiente ejemplo, la cadena de acceso representa a un usuario con acceso restringido al acceso de lectura en claves que comienzan por el espacio de claves “app::”

on ~app::* -@all +@read

Puede refinar aún más estos permisos al enumerar comandos a los que el usuario tiene acceso:

+command1— El acceso del usuario a los comandos está limitado a comando (1).

+@category: el acceso del usuario a los comandos se encuentra limitado a la categoría de comandos.

Para obtener información sobre cómo asignar una cadena de acceso a un usuario, consulte Crear usuarios y grupos de usuarios con la consola y CLI.

Si va a migrar una carga de trabajo existente a ElastiCache, puede recuperar la cadena de acceso llamandoACL LIST, excluyendo los hashes de usuario y de contraseña.

En la OSS versión 6.2 y versiones posteriores de Redis, también se admite la siguiente sintaxis de cadena de acceso:

  • &*: se brinda acceso a todos los canales disponibles.

En la OSS versión 7.0 y superior de Redis, también se admite la siguiente sintaxis de cadena de acceso:

  • |: se puede usar para bloquear subcomandos (por ejemplo, “-config|set”).

  • %R~<pattern>: agregue el patrón de claves de lectura especificado. Esto se comporta de forma similar al patrón de claves normal, pero solo permite leer las claves que coinciden con el patrón dado. Consulte key permissions (permisos de clave) para obtener más información.

  • %W~<pattern>: agregue el patrón de claves de escritura especificado. Esto se comporta de forma similar al patrón de claves normal, pero solo concede permiso de escritura a las claves que coinciden con el patrón dado. Consulte los permisos ACL clave para obtener más información.

  • %RW~<pattern>: alias para ~<pattern>.

  • (<rule list>): cree un nuevo selector con el que comparar las reglas. Los selectores se evalúan después de los permisos del usuario y según el orden en que se definen. Si un comando coincide con los permisos del usuario o con algún selector, está permitido. Consulte los ACLselectores para obtener más información.

  • clearselectors: elimine todos los selectores asociados al usuario.

Aplicar RBAC a una memoria caché ElastiCache con Valkey o Redis OSS

Para usarlo ElastiCache con Valkey o Redis OSSRBAC, siga los siguientes pasos:

  1. Cree uno o más usuarios.

  2. Cree un grupo de usuarios y agregue usuarios al grupo.

  3. Asigne el grupo de usuarios a una caché que tenga el cifrado en tránsito habilitado.

Estos pasos se describen en la siguiente tabla.

Crear usuarios y grupos de usuarios con la consola y CLI

La información de usuario para RBAC los usuarios es un identificador de usuario, un nombre de usuario y, opcionalmente, una contraseña y una cadena de acceso. La cadena de acceso proporciona el nivel de permisos en las claves y comandos. El ID de usuario es exclusivo del usuario y el nombre de usuario es lo que se pasa al motor.

Asegúrese de que los permisos de usuario que proporcione tengan sentido con el propósito previsto del grupo de usuarios. Por ejemplo, si crea un grupo de usuarios denominado Administrators, cualquier usuario que agregue a ese grupo debe tener su cadena de acceso establecida en el acceso completo a las claves y comandos. Para los usuarios de un grupo de usuarios e-commerce, puede establecer las cadenas de acceso en acceso de solo lectura.

ElastiCache configura automáticamente un usuario predeterminado con un ID de usuario y un nombre de usuario "default" y lo agrega a todos los grupos de usuarios. No puede modificar ni eliminar este usuario. Este usuario está diseñado para ser compatible con el comportamiento predeterminado de OSS las versiones anteriores de Redis y tiene una cadena de acceso que le permite llamar a todos los comandos y acceder a todas las teclas.

Para agregar un control de acceso adecuado a una caché, reemplace este usuario predeterminado por uno nuevo que no se encuentre habilitado o utilice una contraseña segura. Para cambiar el usuario predeterminado, cree un usuario nuevo con el nombre de usuario establecido en default. A continuación, puede intercambiarlo con el usuario predeterminado original.

En los siguientes procedimientos se muestra cómo intercambiar el usuario default original con otro usuario default que tiene una cadena de acceso modificada.

Para modificar el usuario predeterminado de la consola
  1. Inicia sesión en la ElastiCache consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/elasticache/.

  2. Seleccione Administración de grupos de usuarios en el panel de navegación.

  3. En ID de grupo de usuarios, elija el ID que desea modificar. Asegúrese de elegir el enlace y no la casilla de verificación.

  4. Elija Modificar.

  5. En la ventana Modificar, elija Administrar y elija el usuario que desee como usuario predeterminado con el Nombre de usuario como predeterminado.

  6. Seleccione Elegir.

  7. Elija Modificar. Al hacerlo, se terminan todas las conexiones existentes que el usuario predeterminado tenga a una caché.

Para modificar el usuario predeterminado con el AWS CLI
  1. Cree un usuario nuevo con el nombre de usuario default mediante los siguientes comandos.

    Para Linux, macOS o Unix:

    aws elasticache create-user \ --user-id "new-default-user" \ --user-name "default" \ --engine "REDIS" \ --passwords "a-str0ng-pa))word" \ --access-string "off +get ~keys*"

    Para Windows:

    aws elasticache create-user ^ --user-id "new-default-user" ^ --user-name "default" ^ --engine "REDIS" ^ --passwords "a-str0ng-pa))word" ^ --access-string "off +get ~keys*"
  2. Cree un grupo de usuarios y agregue el usuario que creó anteriormente.

    Para Linux, macOS o Unix:

    aws elasticache create-user-group \ --user-group-id "new-group-2" \ --engine "REDIS" \ --user-ids "new-default-user"

    Para Windows:

    aws elasticache create-user-group ^ --user-group-id "new-group-2" ^ --engine "REDIS" ^ --user-ids "new-default-user"
  3. Intercambie el usuario default nuevo por el usuario default.

    Para Linux, macOS o Unix:

    aws elasticache modify-user-group \ --user-group-id test-group \ --user-ids-to-add "new-default-user" \ --user-ids-to-remove "default"

    Para Windows:

    aws elasticache modify-user-group ^ --user-group-id test-group ^ --user-ids-to-add "new-default-user" ^ --user-ids-to-remove "default"

    Cuando se llama a esta operación de modificación, se terminan todas las conexiones existentes que el usuario predeterminado tenga a una caché.

Al crear un usuario, puede configurar hasta dos contraseñas. Al modificar una contraseña, se mantienen todas las conexiones existentes a las cachés.

En concreto, tenga en cuenta estas restricciones de contraseña de usuario cuando utilice RBAC para ElastiCache (RedisOSS):

  • Las contraseñas deben tener entre 16 y 128 caracteres imprimibles.

  • No se admiten los siguientes caracteres no alfanuméricos: , "" / @.

Administrar usuarios con la consola y CLI

Utilice el siguiente procedimiento para administrar usuarios en la consola.

Para administrar usuarios con la consola
  1. Inicia sesión en la ElastiCache consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/elasticache/.

  2. En el ElastiCache panel de control de Amazon, selecciona Gestión de usuarios. Están disponibles las siguientes opciones:

    • Crear usuario: al crear un usuario, introduce un ID de usuario, un nombre de usuario, un modo de autenticación y una cadena de acceso. La cadena de acceso establece el nivel de permisos para qué claves y comandos se permite al usuario.

      Al crear un usuario, puede configurar hasta dos contraseñas. Al modificar una contraseña, se mantienen todas las conexiones existentes a las cachés.

    • Modificar usuario: permite actualizar la configuración de autenticación de un usuario o cambiar su cadena de acceso.

    • Eliminar usuario: la cuenta se eliminará de cualquier grupo de usuarios al que pertenezca.

Utilice los siguientes procedimientos para administrar usuarios con la AWS CLI.

Para modificar un usuario mediante el CLI
  • Utilice el comando modify-user para actualizar la contraseña o contraseñas de un usuario o cambiar los permisos de acceso de un usuario.

    Cuando se modifica un usuario, se actualizan los grupos de usuarios asociados al usuario, junto con las cachés asociadas al grupo de usuarios. Se mantienen todas las conexiones existentes. A continuación se muestran algunos ejemplos.

    Para Linux, macOS o Unix:

    aws elasticache modify-user \ --user-id user-id-1 \ --access-string "~objects:* ~items:* ~public:*" \ --no-password-required

    Para Windows:

    aws elasticache modify-user ^ --user-id user-id-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --no-password-required
nota

No recomendamos utilizar la opción nopass. Si lo hace, recomendamos que configure los permisos del usuario en solo lectura con acceso a un conjunto limitado de claves.

Para eliminar un usuario mediante el CLI
  • Ejecute el comando delete-user para eliminar un usuario. La cuenta se borra y elimina de todos los grupos de usuarios a los que pertenezca. A continuación, se muestra un ejemplo.

    Para Linux, macOS o Unix:

    aws elasticache delete-user \ --user-id user-id-2

    Para Windows:

    aws elasticache delete-user ^ --user-id user-id-2

Para ver una lista de usuarios, llame a la operación describe-users.

aws elasticache describe-users

Administrar grupos de usuarios con la consola y CLI

Puede crear grupos de usuarios para organizar y controlar el acceso de los usuarios a una o más cachés, como se muestra a continuación.

Utilice el siguiente procedimiento para administrar grupos de usuarios en la consola.

Para administrar grupos de usuarios mediante la consola
  1. Inicia sesión en la ElastiCache consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/elasticache/.

  2. En el ElastiCache panel de Amazon, selecciona Administración de grupos de usuarios.

    A continuación, se muestran las operaciones disponibles para crear grupos de usuarios nuevos:

    • Crear: al crear un grupo de usuarios, se agregan usuarios y, a continuación, se asignan los grupos de usuarios a las cachés. Por ejemplo, puede crear un grupo de usuarios Admin para los usuarios que tienen roles administrativos en una caché.

      importante

      Cuando crea un grupo de usuarios, debe incluir el usuario predeterminado.

    • Agregar usuarios: agregue usuarios al grupo de usuarios.

    • Eliminar usuarios: elimine usuarios del grupo de usuarios. Cuando se quitan usuarios de un grupo de usuarios, se terminan todas las conexiones existentes que tengan a una caché.

    • Eliminar: utilice esta opción para eliminar un grupo de usuarios. Tenga en cuenta que se eliminará el grupo de usuarios en sí, no los usuarios que pertenecen al grupo.

    Para los grupos de usuarios existentes, puede realizar lo siguiente:

    • Agregar usuarios: agregue usuarios existentes al grupo de usuarios.

    • Eliminar usuarios: elimine los usuarios existentes del grupo de usuarios.

      nota

      Los usuarios se eliminan del grupo de usuarios, pero no se eliminan del sistema.

Utilice los siguientes procedimientos para gestionar los grupos de usuarios medianteCLI.

Para crear un nuevo grupo de usuarios y añadir un usuario mediante el CLI
  • Utilice el comando create-user-group, tal y como se muestra a continuación:

    Para Linux, macOS o Unix:

    aws elasticache create-user-group \ --user-group-id "new-group-1" \ --engine "REDIS" \ --user-ids user-id-1, user-id-2

    Para Windows:

    aws elasticache create-user-group ^ --user-group-id "new-group-1" ^ --engine "REDIS" ^ --user-ids user-id-1, user-id-2
Para modificar un grupo de usuarios mediante la adición de nuevos usuarios o la eliminación de los miembros actuales mediante el CLI
  • Utilice el comando modify-user-group, tal y como se muestra a continuación:

    Para Linux, macOS o Unix:

    aws elasticache modify-user-group --user-group-id new-group-1 \ --user-ids-to-add user-id-3 \ --user-ids-to-remove user-id-2

    Para Windows:

    aws elasticache modify-user-group --user-group-id new-group-1 ^ --user-ids-to-add userid-3 ^ --user-ids-to-removere user-id-2
nota

Cualquier conexión abierta que pertenezca a un usuario eliminado de un grupo de usuarios finaliza con este comando.

Para eliminar un grupo de usuarios mediante el CLI
  • Utilice el comando delete-user-group, tal y como se muestra a continuación: Se elimina el grupo de usuarios en sí, no los usuarios que pertenecen al grupo.

    Para Linux, macOS o Unix:

    aws elasticache delete-user-group / --user-group-id

    Para Windows:

    aws elasticache delete-user-group ^ --user-group-id

Para ver una lista de grupos de usuarios, puede llamar a la describe-user-groupsoperación.

aws elasticache describe-user-groups \ --user-group-id test-group

Asignación de grupos de usuarios a cachés sin servidor

Tras crear un grupo de usuarios y añadir usuarios, el último paso de la implementación RBAC consiste en asignar el grupo de usuarios a una memoria caché sin servidor.

Asignación de grupos de usuarios a cachés sin servidor mediante la consola

Para añadir un grupo de usuarios a una caché sin servidor mediante el AWS Management Console, haga lo siguiente:

Asignación de grupos de usuarios a cachés sin servidor mediante AWS CLI

La siguiente AWS CLI operación crea una caché sin servidor mediante el user-group-id parámetro con el valor. my-user-group-id Reemplace el grupo de subredes sng-test por otro existente.

Parámetros clave
  • --engine— Debe ser valkey o. redis

  • --user-group-id: este valor proporciona el ID del grupo de usuarios, compuesto por usuarios con permisos de acceso especificados para la caché.

Para Linux, macOS o Unix:

aws elasticache create-serverless-cache \ --serverless-cache-name "new-serverless-cache" \ --description "new-serverless-cache" \ --engine "redis" \ --user-group-id "new-group-1"

Para Windows:

aws elasticache create-serverless-cache ^ --serverless-cache-name "new-serverless-cache" ^ --description "new-serverless-cache" ^ --engine "redis" ^ --user-group-id "new-group-1"

La siguiente AWS CLI operación modifica una caché sin servidor con el user-group-id parámetro con el valor. my-user-group-id

Para Linux, macOS o Unix:

aws elasticache modify-serverless-cache \ --serverless-cache-name serverless-cache-1 \ --user-group-id "new-group-2"

Para Windows:

aws elasticache modify-serverless-cache ^ --serverless-cache-name serverless-cache-1 ^ --user-group-id "new-group-2"

Tenga en cuenta que cualquier modificación que se haga en una caché se actualizará de forma asíncrona. Puede monitorear el progreso al visualizar los eventos. Para obtener más información, consulte Visualización de ElastiCache eventos.

Asignación de grupos de usuarios a grupos de reproducción

Una vez creado un grupo de usuarios y agregado usuarios, el último paso de la implementación RBAC consiste en asignar el grupo de usuarios a un grupo de replicación.

Asignación de grupos de usuarios a grupos de reproducción mediante la consola

Para añadir un grupo de usuarios a una replicación mediante el AWS Management Console, haga lo siguiente:

Asignación de grupos de usuarios a grupos de replicación mediante AWS CLI

La siguiente AWS CLI operación crea un grupo de replicación con el cifrado en tránsito (TLS) activado y el user-group-ids parámetro con el valormy-user-group-id. Reemplace el grupo de subredes sng-test por otro existente.

Parámetros clave
  • --engine— Debe ser valkey oredis.

  • --engine-version: debe ser 6.0 o posterior.

  • --transit-encryption-enabled: obligatorio para la autenticación y a fin de asociar un grupo de usuarios.

  • --user-group-ids: este valor proporciona el ID del grupo de usuarios, compuesto por usuarios con permisos de acceso especificados para la caché.

  • --cache-subnet-group: obligatorio para asociar un grupo de usuarios.

Para Linux, macOS o Unix:

aws elasticache create-replication-group \ --replication-group-id "new-replication-group" \ --replication-group-description "new-replication-group" \ --engine "redis" \ --cache-node-type cache.m5.large \ --transit-encryption-enabled \ --user-group-ids "new-group-1" \ --cache-subnet-group "cache-subnet-group"

Para Windows:

aws elasticache create-replication-group ^ --replication-group-id "new-replication-group" ^ --replication-group-description "new-replication-group" ^ --engine "redis" ^ --cache-node-type cache.m5.large ^ --transit-encryption-enabled ^ --user-group-ids "new-group-1" ^ --cache-subnet-group "cache-subnet-group"

La siguiente AWS CLI operación modifica un grupo de replicación con el cifrado en tránsito (TLS) activado y el user-group-ids parámetro con el valormy-user-group-id.

Para Linux, macOS o Unix:

aws elasticache modify-replication-group \ --replication-group-id replication-group-1 \ --user-group-ids-to-remove "new-group-1" \ --user-group-ids-to-add "new-group-2"

Para Windows:

aws elasticache modify-replication-group ^ --replication-group-id replication-group-1 ^ --user-group-ids-to-remove "new-group-1" ^ --user-group-ids-to-add "new-group-2"

Tenga en cuenta los PendingChanges en la respuesta. Las modificaciones que se hagan en una caché se actualizarán de forma asíncrona. Puede monitorear el progreso al visualizar los eventos. Para obtener más información, consulte Visualización de ElastiCache eventos.

Migrar de a AUTH RBAC

Si lo utiliza AUTH como se describe en Autenticación con el comando Valkey y Redis OSS AUTH y desea migrar a utilizarRBAC, utilice los siguientes procedimientos.

Utilice el siguiente procedimiento para migrar de la consola AUTH a la que se RBAC utiliza.

Para migrar de Valkey o Redis OSS AUTH al RBAC uso de la consola
  1. Inicie sesión en AWS Management Console y abra la ElastiCache consola en. https://console.aws.amazon.com/elasticache/

  2. En la lista de la esquina superior derecha, selecciona la AWS región en la que se encuentra la memoria caché que deseas modificar.

  3. En el panel de navegación, elija el motor que se ejecuta en la caché que desea modificar.

    Aparecerá una lista de las cachés del motor elegido.

  4. En la lista de cachés, elija el nombre de la caché que desea modificar.

  5. Para Actions (Acciones), elija Modify (Modificar).

    Aparecerá la ventana Modificar.

  6. En Opción de control de acceso, elija Lista de control de acceso de grupos de usuarios.

  7. En Lista de control de acceso de grupos de usuarios, elija un grupo de usuarios.

  8. Seleccione Vista previa de los cambios y seleccione Modificar en la siguiente pantalla.

Utilice el siguiente procedimiento para migrar de Valkey o Redis a OSS AUTH utilizar el. RBAC CLI

Para migrar de AUTH a utilizar el RBAC CLI
  • Utilice el comando modify-replication-group, tal y como se muestra a continuación:

    Para Linux, macOS o Unix:

    aws elasticache modify-replication-group --replication-group-id test \ --auth-token-update-strategy DELETE \ --user-group-ids-to-add user-group-1

    Para Windows:

    aws elasticache modify-replication-group --replication-group-id test ^ --auth-token-update-strategy DELETE ^ --user-group-ids-to-add user-group-1

Migrar de a RBAC AUTH

Si está utilizando Redis RBAC y desea migrar a Redis OSSAUTH, consulte. Migración de a RBAC AUTH

nota

Si necesita deshabilitar el control de acceso en una ElastiCache memoria caché, deberá hacerlo a través del AWS CLI. Para obtener más información, consulte Deshabilitar el control de acceso en una caché de ElastiCache Valkey o Redis OSS.