Introducción
Este plugin se usa en coordinación con los plugins de tecnologías de almacenamiento conectadas al IAM de AWS para provisionar los grupos que representan a los DSA y adicionalmente gestiona las membresías que representan la aceptación de los DSA por parte de los usuarios.
Servicios disponibles en el plugin
-
Crear y asociar permisos a grupos: Crear grupos con usuarios, asociar permisos al grupo de acceso al bucket y a partes del mismo.
-
Añadir usuario a grupos: Añadir usuarios a grupos existentes.
-
Quitar usuarios de grupos: Quitar usuarios de grupos.
-
Eliminar acceso: Modificar las políticas del grupo para retirar el acceso a un recurso en particular.
-
Eliminar grupos: Eliminar grupos previamente creados y eliminando la política creada para el mismo.
Modelo de integración
Gobierno activo de permisos de acceso
De forma general, los DSA (Data Sharing Agreements) gestionados en Anjana Data se representan como grupos en AWS IAM, y los usuarios firmantes de cada acuerdo se gestionan como miembros de dichos grupos. De esta manera, la pertenencia a un grupo materializa el acceso efectivo a los recursos de datos gobernados por el DSA.
Anjana Data Platform crea, actualiza y elimina estos grupos de forma automática, incluyendo o excluyendo usuarios según los procesos de adherencia y desadherencia definidos en la plataforma. Esto garantiza que los permisos asignados en AWS se mantengan siempre alineados con el estado de gobierno y validación de los acuerdos.
Los grupos creados por Anjana Data Platform siguen la siguiente nomenclatura:
<prefijo configurable>_<nombre lógico del DSA>_v<nº de versión del DSA>
Donde:
-
<prefijo configurable>: prefijo definido por la organización para identificar los grupos gestionados por Anjana Data Platform. Se configura en el YAML del plugin. -
<nombre lógico del DSA>: nombre funcional del acuerdo tal y como figura en Anjana. -
v<nº de versión del DSA>: número de versión del DSA, que permite distinguir versiones activas e históricas.
La provisión de estos grupos y la gestión de sus miembros se realiza mediante la interfaz del SDK de AWS, que Anjana Data Platform utiliza para automatizar el ciclo de vida de los grupos y asegurar su consistencia con el modelo de gobierno.
Credenciales requeridas
Gobierno activo de permisos de acceso
Para el gobierno activo se necesita una credencial de servicio con los siguientes permisos para IAM:
-
AddUserToGroup: Incluir usuarios a los grupos.
-
AttachGroupPolicy: Asociar políticas de acceso a los grupos.
-
CreateGroup: Crear grupos.
-
CreatePolicy: Crear políticas de acceso.
-
CreatePolicyVersion: Crea una nueva versión en una política.
-
DeleteGroup: Borrar grupos.
-
DeletePolicy: Borra una política.
-
DeletePolicyVersion: Borra una versión de una política.
-
DeleteGroupPolicy: Borra las políticas de un grupo.
-
DetachGroupPolicy: Desasociar las managed policy de un grupo.
-
GetGroup: Recuperar grupos
-
GetPolicy: Recuperar políticas.
-
GetPolicyVersion: Recupera una versión de una política.
-
GetUser: Listar y recuperar usuarios.
-
ListAttachedGroupPolicies: Lista y recupera las managed policy de un grupo.
-
ListGroupPolicies: Lista y recupera las políticas de un grupo.
-
ListPolicyVersions: Lista las versiones de una política.
-
RemoveUserFromGroup: Eliminar usuarios de los grupos.
Además se necesitará que tenga los siguientes permisos para S3:
-
ListBucket: Recuperar listado de buckets disponibles
-
ListAllMyBucket: Recuperar listado de buckets pertenecientes para las credenciales de la configuración
-
GetObject: traer información de ficheros (necesario asignar sobre buckets concretos)
-
ListBucket: listar objetos dentro de un bucket (necesario asignar sobre buckets concretos)
-
GetBucketLocation: listar región de un bucket (necesario asignar sobre buckets concretos)
Los servicios disponibles usan los siguientes permisos:
-
Crear y asociar permisos a grupos: AddUserToGroup, AttachGroupPolicy, CreateGroup, CreatePolicy, GetGroup y GetUser.
-
Añadir usuario a grupos: AddUserToGroup, GetGroup y GetUser.
-
Quitar usuarios de grupos: GetGroup, GetUser y RemoveUserFromGroup.
-
Eliminar acceso: CreatePolicyVersion, DeletePolicyVersion, GetGroup, GetPolicyVersion y ListPolicyVersions.
-
Eliminar grupos: DeleteGroup, DeleteGroupPolicy, DeletePolicy, DetachGroupPolicy, GetGroup, ListAttachedGroupPolicies, ListGroupPolicies y RemoveUserFromGroup.
Restricciones
El prefijo para los grupos (y el propio nombre del DSA) no puede contener espacios y los únicos caracteres permitidos son alfanuméricos y _=,.@- ; si el prefijo tiene valor y no es válido el plugin no se levantara y generara un log con el error.
Dada la longitud máxima de las políticas no se recomienda gobernar más de 100 datasets en un mismo DSA.
Por limitaciones de AWS, un usuario no puede estar adherido y/o ser owner's (la suma de ambos) de más de X DSAs. El número concreto de DSAs depende de la cuota de AWS: IAM Quotas