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 forma general los DSA de Anjana Data se representan como grupos en el IAM de AWS y los firmantes de dichos DSA son miembros de dichos grupos.
Anjana Data crea y elimina los grupos de forma automática, al igual que incluye y excluye a usuarios de cada grupo con el objetivo de materializar la adhesión o desadherencia de un usuario a un DSA.
Para la provisión de grupos de usuarios a los que posteriormente se asignan permisos de acceso a recursos de datos gobernados por el producto se explota la interfaz del sdk de AWS.
Credenciales requeridas
Gobierno activo
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
Configuración
En la Configuración técnica y en Tot despliegue de plugins hay algunas directrices.
Existe un YAML de ejemplo para facilitar la configuración en Nexus / com / anjana / documentation (necesario login previo) con explicaciones de las propiedades y valores por defecto.
Este plugin puede conectarse a varias instancias de la misma tecnología, también se puede ver el YAML de ejemplo.