Logotipo de Zephyrnet

Cómo BMO mejoró la seguridad de los datos con Amazon Redshift y AWS Lake Formation | Servicios web de Amazon

Fecha:

Esta publicación está coescrita con Amy Tseng, Jack Lin y Regis Chow de BMO.

BMO es el octavo banco más grande de América del Norte por activos. Proporciona banca personal y comercial, mercados globales y servicios de banca de inversión a 8 millones de clientes. A medida que continúan implementando su estrategia Digital First para lograr velocidad, escala y eliminación de la complejidad, siempre buscan formas de innovar, modernizar y también optimizar el control de acceso a datos en la nube. BMO había acumulado datos financieros confidenciales y necesitaba crear un entorno analítico que fuera seguro y eficaz. Uno de los desafíos clave del banco relacionado con los estrictos requisitos de ciberseguridad es implementar cifrado a nivel de campo para la información de identificación personal (PII), la industria de tarjetas de pago (PCI) y los datos clasificados como de alto riesgo de privacidad (HPR). Los datos con esta clasificación segura se almacenan de forma cifrada tanto en el almacén de datos como en su lago de datos. Sólo los usuarios con los permisos necesarios pueden acceder a los datos en texto sin cifrar.

Desplazamiento al rojo de Amazon es un servicio de almacenamiento de datos totalmente gestionado que utilizan decenas de miles de clientes para gestionar análisis a escala. Amazon Redshift admite seguridad líder en la industria con administración de identidades integrada y federación para inicio de sesión único (SSO) junto con autenticación multifactor. El Espectro de Redshift de Amazon La función permite la consulta directa de su servicio de almacenamiento simple de Amazon (Amazon S3) lago de datos, y muchos clientes lo están utilizando para modernizar su plataforma de datos.

Formación del lago AWS es un servicio totalmente administrado que simplifica la creación, protección y administración de lagos de datos. Proporciona control de acceso detallado, etiquetado (control de acceso basado en etiquetas (TBAC)) e integración entre servicios analíticos. Permite simplificar la gobernanza de los objetos del catálogo de datos y acceder a datos seguros de servicios como Amazon Redshift Spectrum.

En esta publicación, compartimos la solución usando Control de acceso basado en roles (RBAC) de Amazon Redshift y Basado en etiquetas de AWS Lake Formation control de acceso para que los usuarios federados consulten su lago de datos mediante Amazon Redshift Spectrum.

Caso de uso

BMO tenía más de Petabytes (PB) de datos financieros confidenciales clasificados de la siguiente manera:

  1. Información de identificación personal (PII)
  2. Industria de tarjetas de pago (PCI)
  3. Alto riesgo de privacidad (HPR)

El banco pretende almacenar datos en su almacén de datos Amazon Redshift y en su lago de datos Amazon S3. Tienen una base de usuarios finales amplia y diversa en ventas, marketing, riesgo crediticio y otras líneas de negocio y personas:

  1. Analistas de negocios
  2. Ingenieros de datos
  3. Científicos de datos

Es necesario aplicar un control de acceso detallado a los datos de Amazon Redshift y a los datos del lago de datos a los que se accede mediante Amazon Redshift Spectrum. El banco aprovecha los servicios de AWS como Pegamento AWS y Amazon SageMaker en esta plataforma de análisis. También utilizan un proveedor de identidad externo (IdP) para administrar su base de usuarios preferida e integrarla con estas herramientas de análisis. Los usuarios finales acceden a estos datos mediante clientes SQL de terceros y herramientas de inteligencia empresarial.

Resumen de la solución

En esta publicación, usaremos datos sintéticos muy similares a los datos de BMO con datos clasificados como PII, PCI o HPR. Los usuarios y grupos existen en el IdP externo. Estos usuarios se federan para el inicio de sesión único en Amazon Redshift mediante federación de proveedores de identidad nativos. Definiremos los permisos utilizando el control de acceso basado en roles (RBAC) de Redshift para los roles de usuario. Para los usuarios que acceden a los datos del lago de datos mediante Amazon Redshift Spectrum, utilizaremos políticas de Lake Formation para el control de acceso.

Solución técnica

Para implementar las necesidades del cliente para proteger diferentes categorías de datos, se requiere la definición de múltiples roles de AWS IAM, lo que requiere conocimiento de las políticas de IAM y su mantenimiento cuando cambian los límites de permisos.

En esta publicación, mostramos cómo simplificamos la administración de las políticas de clasificación de datos con una cantidad mínima de roles de Amazon Redshift AWS IAM alineados por clasificación de datos, en lugar de permutaciones y combinaciones de roles por líneas de negocio y clasificaciones de datos. Otras organizaciones (por ejemplo, el Instituto de Servicios Financieros [FSI]) pueden beneficiarse de la implementación de seguridad y cumplimiento de datos por parte de BMO.

Como parte de este blog, los datos se cargarán en Amazon S3. El acceso a los datos se controla mediante políticas definidas mediante Redshift RBAC para los grupos de usuarios de proveedores de identidad correspondientes y el control de acceso basado en TAG se implementará mediante AWS Lake Formation para los datos en S3.

Arquitectura de soluciones

El siguiente diagrama ilustra la arquitectura de la solución junto con los pasos detallados.

  1. Usuarios de IdP con grupos como lob_risk_public, Lob_risk_pci, hr_publicy hr_hpr se asignan en un IdP externo (proveedor de identidad).
  2. Cada usuario está asignado a los roles locales de Amazon Redshift que se envían desde el IdP, e incluye aad:lob_risk_pci, aad:lob_risk_public, aad:hr_publicy aad:hr_hpr en Amazon Redshift. Por ejemplo, Usuario1 que forma parte de Lob_risk_public y hr_hpr otorgará el uso del rol en consecuencia.
  3. Adjuntar iam_redshift_hpr, iam_redshift_pcipiiy iam_redshift_public Roles de AWS IAM para el clúster de Amazon Redshift.
  4. Bases de datos de AWS Glue respaldadas en s3 (p. ej., lobrisk,lobmarket,hr y sus respectivas tablas) se hace referencia en Amazon Redshift. Con Amazon Redshift Spectrum, puede consultar estas tablas y bases de datos externas (p. ej., external_lobrisk_pci, external_lobrisk_public, external_hr_publicy external_hr_hpr), que se crean utilizando roles de AWS IAM iam_redshift_pcipii, iam_redshift_hpr, iam_redshift_public como se muestra en los pasos de solución.
  5. AWS Lake Formation se utiliza para controlar el acceso a los esquemas y tablas externos.
  6. Al utilizar etiquetas de AWS Lake Formation, aplicamos el control de acceso detallado a estas tablas externas para los roles de AWS IAM (p. ej., iam_redshift_hpr, iam_redshift_pcipiiy iam_redshift_public).
  7. Finalmente, otorgue el uso de estos esquemas externos a sus roles de Amazon Redshift.

Tutorial

Las siguientes secciones le guiarán en la implementación de la solución utilizando datos sintéticos.

Descargue los archivos de datos y coloque sus archivos en depósitos

Amazon S3 sirve como un lago de datos escalable y duradero en AWS. Con Data Lake, puede incorporar cualquier dato de formato abierto como CSV, JSON, PARQUET u ORC a Amazon S3 y realizar análisis de sus datos.

Las soluciones utilizan archivos de datos CSV que contienen información clasificada como PCI, PII, HPR o Pública. Puede descargar archivos de entrada utilizando los enlaces proporcionados a continuación. Usando los archivos descargados, cárguelos en Amazon S3 creando carpetas y archivos como se muestra en la siguiente captura de pantalla siguiendo las instrucciones esta página. El detalle de cada archivo se proporciona en la siguiente lista:

Registre los archivos en AWS Glue Data Catalog mediante rastreadores

Las siguientes instrucciones demuestran cómo registrar archivos descargados en el catálogo de datos de AWS Glue mediante rastreadores. Organizamos archivos en bases de datos y tablas utilizando AWS Glue Data Catalog, según los siguientes pasos. Se recomienda revisar la documentación para aprender cómo configurar correctamente un Base de datos de pegamento de AWS. Los rastreadores pueden automatizar el proceso de registrar nuestros archivos descargados en el catálogo en lugar de hacerlo manualmente. Creará las siguientes bases de datos en el catálogo de datos de AWS Glue:

  • lobrisk
  • lobmarket
  • hr

Pasos de ejemplo para crear una base de datos de AWS Glue para lobrisk los datos son los siguientes:

  • Visite la Consola de AWS Glue.
  • Luego, selecciona Bases de datos bajo Catálogo de datos.
  • Elige Agregar base de datos e ingrese el nombre de las bases de datos como langosta.
  • Seleccione Crear base de datos, como se muestra en la siguiente captura de pantalla.

Repita los pasos para crear otra base de datos como lobmarket y hr.

Un rastreador de AWS Glue escanea los archivos anteriores y cataloga los metadatos sobre ellos en el catálogo de datos de AWS Glue. El catálogo de datos de Glue organiza estos datos de Amazon S3 en tablas y bases de datos, asignando columnas y tipos de datos para que los datos se puedan consultar mediante SQL que Amazon Redshift Spectrum pueda entender. Por favor revise el Documentación de AWS Glue sobre la creación del Glue Crawler. Una vez que el rastreador de AWS Glue termine de ejecutarse, verá las siguientes bases de datos y tablas respectivas:

  • lobrisk
    • lob_risk_high_confidential_public
    • lob_risk_high_confidential
  • lobmarket
    • credit_card_transaction_pci
    • credit_card_transaction_pci_public
  • hr
    • customers_pii_hpr_public
    • customers_pii_hpr

Pasos de ejemplo para crear un rastreador de AWS Glue para lobrisk los datos son los siguientes:

  • Seleccione Rastreadores bajo Catálogo de datos en la consola de AWS Glue.
  • A continuación, elige Crear rastreador. Proporcione el nombre del rastreador como lobrisk_crawler y elige Siguiente.

Asegúrese de seleccionar la fuente de datos como Amazon S3 y explore la ruta de Amazon S3 hasta el lob_risk_high_confidential_public y elija una fuente de datos de Amazon S3.

  • Los rastreadores pueden rastrear varias carpetas en Amazon S3. Elegir Agregar una fuente de datos e incluir ruta S3://<<Your Bucket >>/ lob_risk_high_confidential.

  • Después de agregar otra carpeta de Amazon S3, elija Siguiente.

  • A continuación, cree una nueva Rol de IAM existentes Seguridad de configuración configuración.
  • Elige Siguiente.

  • Seleccione la base de datos de destino como lobrisk. Escoger Siguiente.

  • Siguiente, debajo Revisar, escoger Crear rastreador.
  • Seleccione Ejecutar rastreador. Esto crea dos tablas: lob_risk_high_confidential_public y lob_risk_high_confidential bajo base de datos lobrisk.

De manera similar, cree un rastreador de AWS Glue para lobmarket y hr datos siguiendo los pasos anteriores.

Crear roles de AWS IAM

Con AWS IAM, cree los siguientes roles de IAM con permisos de Amazon Redshift, Amazon S3, AWS Glue y AWS Lake Formation.

Puede crear roles de AWS IAM en este servicio mediante este enlace. Más adelante, podrá adjuntar una política administrada a estos roles de IAM:

  • iam_redshift_pcipii (Rol de AWS IAM asociado al clúster de Amazon Redshift)
    • AmazonRedshiftFullAccess
    • AmazonS3FullAccess
    • Agregue una política en línea (Lakeformation-inline) para el permiso de Lake Formation de la siguiente manera:
      {
         "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "RedshiftPolicyForLF",
                  "Effect": "Allow",
                  "Action": [
                      "lakeformation:GetDataAccess"
                  ],
                  "Resource": "*"
              }
          ]

    • iam_redshift_hpr (Rol de AWS IAM asociado al clúster de Amazon Redshift): agregue lo siguiente administrado:
      • AmazonRedshiftFullAccess
      • AmazonS3FullAccess
      • Agregue la política en línea (Lakeformation-inline), que se creó anteriormente.
    • iam_redshift_public (Rol de AWS IAM asociado al clúster de Amazon Redshift): agregue la siguiente política administrada:
      • AmazonRedshiftFullAccess
      • AmazonS3FullAccess
      • Agregue la política en línea (Lakeformation-inline), que se creó anteriormente.
    • LF_admin (Administrador de Lake Formation): agregue la siguiente política administrada:
      • AWSLakeFormationDataAdmin
      • AWSLakeFormationCrossAccountManager
      • AWSGlueConsoleFullAccess

Utilice el control de acceso basado en etiquetas de Lake Formation (LF-TBAC) para controlar el acceso a las tablas del catálogo de datos de AWS Glue.

LF-TBAC es una estrategia de autorización que define permisos basados ​​en atributos. Usando LF_admin Administrador de Lake Formation, puede crear etiquetas LF, como se menciona en los siguientes detalles:

Clave Valor
Clasificación: HPR no si
Clasificación: PCI no si
Clasificación:PII no si
Clasificaciones no sensible, sensible

Siga las instrucciones a continuación para crear etiquetas de Lake Formation:

  • Inicie sesión en la consola de Lake Formation (https://console.aws.amazon.com/lakeformation/) utilizando la función LF-Admin AWS IAM.
  • Ve a Etiquetas LF y permisos in Secciones de permisos.
  • Seleccione Agregar etiqueta LF.

  • Cree las etiquetas LF restantes como se indica en la tabla anterior. Una vez creadas, encontrará las etiquetas LF como se muestra a continuación.

Asignar LF-TAG a las tablas del catálogo de AWS Glue

La asignación de etiquetas de Lake Formation a tablas normalmente implica un enfoque estructurado. El administrador de Lake Formation puede asignar etiquetas según varios criterios, como fuente de datos, tipo de datos, dominio comercial, propietario de los datos o calidad de los datos. Tiene la capacidad de asignar etiquetas LF a activos del catálogo de datos, incluidas bases de datos, tablas y columnas, lo que le permite administrar el acceso a los recursos de manera efectiva. El acceso a estos recursos está restringido a los principales a quienes se les han asignado las etiquetas LF correspondientes (o aquellos a quienes se les ha otorgado acceso a través del enfoque de recursos nombrados).

Siga las instrucciones en el enlace proporcionado para asignar LF-TAGS a Glue Tablas de catálogo de datos:

Tablas de catálogo de pegamento Clave Valor
customers_pii_hpr_public Clasificación insensible
customers_pii_hpr Clasificación: HPR si
credit_card_transaction_pci Clasificación: PCI si
credit_card_transaction_pci_public Clasificaciones insensible
lob_risk_high_confidential_public Clasificaciones insensible
lob_risk_high_confidential Clasificación:PII si

Siga las instrucciones a continuación para asignar una etiqueta LF a Glue Tables desde la consola de AWS de la siguiente manera:

  • Para acceder a las bases de datos en Lake Formation Console, vaya a Catálogo de datos sección y elegir Bases de datos.
  • Seleccione langosta base de datos y elija Ver tablas.
  • Seleccione lob_risk_high_confidencial tabla y editar la Etiquetas LF.
  • Asignar el Clasificación: HPR as Claves asignadas y Valores como . Seleccione Guardar.

  • Del mismo modo, asigne la Clasificación Clave y Valor como no sensible para el lob_risk_high_confidential_public mesa.

Siga las instrucciones anteriores para asignar tablas a las tablas restantes para lobmarket y hr bases de datos.

Otorgar permisos a recursos mediante una expresión LF-Tag otorgar a roles de IAM de Redshift

Grant selecciona, describir Permiso de Lake Formation para LF-Tags y función Redshift IAM utilizando Lake Formation Administrator en la consola de Lake Training. Para conceder, siga las instrucciones documentación.

Utilice la siguiente tabla para otorgar la función de IAM correspondiente a las etiquetas LF:

Rol de IAM Clave de etiquetas LF Valor de las etiquetas LF Permiso
iam_redshift_pcipii Clasificación:PII si Describir, Seleccionar
. Clasificación: PCI si .
iam_redshift_hpr Clasificación: HPR si Describir, Seleccionar
iam_redshift_public Clasificaciones insensible Describir, Seleccionar

Siga las instrucciones a continuación para otorgar permisos a etiquetas LF y roles de IAM:

  • Elige Permisos del lago de datos in Permisos sección en la consola de AWS Lake Formation.
  • Elige Subvenciones. Seleccione Usuarios de IAM y roles en Directores.
  • En etiquetas LF o recursos del catálogo seleccione Clave as Classifications y valores as non-sensitive.

  • Luego, selecciona Permisos de mesa as Seleccionar y describir. Escoger subvenciones.

Siga las instrucciones anteriores para las etiquetas LF restantes y sus funciones de IAM, como se muestra en la tabla anterior.

Asigne los grupos de usuarios de IdP a los roles de Redshift

En Redshift, utilice la federación de IdP nativo para asignar los grupos de usuarios de IdP a las funciones de Redshift. Usar Editor de consultas V2.

create role aad:rs_lobrisk_pci_role;
create role aad:rs_lobrisk_public_role;
create role aad:rs_hr_hpr_role;
create role aad:rs_hr_public_role;
create role aad:rs_lobmarket_pci_role;
create role aad:rs_lobmarket_public_role;

Crear esquemas externos

En Redshift, cree esquemas externos utilizando roles de AWS IAM y bases de datos de AWS Glue Catalog. Los esquemas externos se crean según la clasificación de datos utilizando iam_role.

create external schema external_lobrisk_pci
from data catalog
database 'lobrisk'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_pcipii';

create external schema external_hr_hpr
from data catalog
database 'hr'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_hpr';

create external schema external_lobmarket_pci
from data catalog
database 'lobmarket'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_pcipii';

create external schema external_lobrisk_public
from data catalog
database 'lobrisk'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

create external schema external_hr_public
from data catalog
database 'hr'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

create external schema external_lobmarket_public
from data catalog
database 'lobmarket'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

Verificar lista de tablas

Verifique la lista de tablas en cada esquema externo. Cada esquema enumera solo las tablas que Lake Formation ha otorgado a IAM_ROLES Se utiliza para crear un esquema externo. A continuación se muestra la lista de tablas en la salida de edición de consulta de Redshift v2 en la parte superior izquierda.

Otorgar uso en esquemas externos a diferentes roles locales de Redshift

En Redshift, otorgue el uso de esquemas externos a diferentes roles locales de Redshift de la siguiente manera:

grant usage on schema external_lobrisk_pci to role aad:rs_lobrisk_pci_role;
grant usage on schema external_lobrisk_public to role aad:rs_lobrisk_public_role;

grant usage on schema external_lobmarket_pci to role aad:rs_lobmarket_pci_role;
grant usage on schema external_lobmarket_public to role aad:rs_lobmarket_public_role;

grant usage on schema external_hr_hpr_pci to role aad:rs_hr_hpr_role;
grant usage on schema external_hr_public to role aad:rs_hr_public_role;

Verificar el acceso al esquema externo

Verifique el acceso al esquema externo utilizando el usuario del equipo de Lob Risk. Usuario lobrisk_pci_user federado en el rol local de Amazon Redshift rs_lobrisk_pci_role. Role rs_lobrisk_pci_role sólo tiene acceso al esquema externo external_lobrisk_pci.

set session_authorization to creditrisk_pci_user;
select * from external_lobrisk_pci.lob_risk_high_confidential limit 10;

Al consultar la tabla desde external_lobmarket_pci esquema, verá que se le deniega el permiso.

set session_authorization to lobrisk_pci_user;
select * from external_lobmarket_hpr.lob_card_transaction_pci;

Aprovisionamiento de acceso automatizado de BMO

Trabajando con el banco, desarrollamos un marco de aprovisionamiento de acceso que le permite crear un depósito central de usuarios y a qué datos tienen acceso. El archivo de política se almacena en Amazon S3. Cuando el archivo se actualiza, se procesa, los mensajes se colocan en AmazonSQS. AWS Lambda usando API de datos se utiliza para aplicar control de acceso a roles de Amazon Redshift. Simultáneamente, AWS Lambda se utiliza para automatizar el control de acceso basado en etiquetas en AWS Lake Formation.

Los beneficios de adoptar este modelo fueron:

  1. Creé un proceso de automatización escalable para permitir aplicar dinámicamente políticas cambiantes.
  2. Simplificó la incorporación y el procesamiento de accesos de usuarios con la gestión de acceso empresarial existente.
  3. Empoderó a cada línea de negocio para restringir el acceso a los datos confidenciales que poseen y proteger los datos y la privacidad de los clientes a nivel empresarial.
  4. Simplificó la administración y el mantenimiento de roles de AWS IAM al reducir considerablemente el número de roles requeridos.

Con el reciente lanzamiento de Amazon Redshift, se puede aprovechar la integración con AWS Identity Center, que permite la propagación de identidades a través del servicio de AWS, para simplificar y escalar esto. implementación.

Conclusión

En esta publicación, le mostramos cómo implementar controles de acceso sólidos para datos confidenciales de clientes en Amazon Redshift, que fueron un desafío al intentar definir muchos roles distintos de AWS IAM. La solución presentada en esta publicación demuestra cómo las organizaciones pueden satisfacer las necesidades de cumplimiento y seguridad de los datos con un enfoque consolidado, utilizando un conjunto mínimo de roles de AWS IAM organizados por clasificación de datos en lugar de líneas de negocio.

Al utilizar la integración nativa de Amazon Redshift con el IdP externo y definir políticas RBAC tanto en Redshift como en AWS Lake Formation, se pueden aplicar controles de acceso granulares sin crear una cantidad excesiva de roles distintos. Esto permite aprovechar los beneficios del acceso basado en roles y al mismo tiempo minimizar la sobrecarga administrativa.

Otras instituciones de servicios financieros que buscan proteger los datos de los clientes y cumplir con las regulaciones pueden seguir un enfoque RBAC consolidado similar. Una definición cuidadosa de las políticas, alineada con la sensibilidad de los datos en lugar de las funciones comerciales, puede ayudar a reducir la proliferación de funciones de AWS IAM. Este modelo equilibra la seguridad, el cumplimiento y la capacidad de administración para la gestión de datos confidenciales en Amazon Redshift y plataformas de datos en la nube más amplias.

En resumen, un modelo RBAC centralizado basado en la clasificación de datos agiliza la gestión del acceso y al mismo tiempo proporciona un cumplimiento y una seguridad de datos sólidos. Este enfoque puede beneficiar a cualquier organización que administre información confidencial de los clientes en la nube.


Acerca de los autores

Amy Tseng es director general de integración de datos y análisis (DnA) en BMO. Ella es una de las heroínas de datos de AWS. Tiene más de 7 años de experiencia en migraciones a la nube de datos y análisis en AWS. Fuera del trabajo, a Amy le encanta viajar y hacer senderismo.

Jack Lin es Director de Ingeniería en la Plataforma de Datos en BMO. Tiene más de 20 años de experiencia trabajando en ingeniería de plataformas e ingeniería de software. Fuera del trabajo, a Jack le encanta jugar fútbol, ​​ver partidos de fútbol y viajar.

Regis Chow es Director de Integración de DnA en BMO. Tiene más de 5 años de experiencia trabajando en la nube y disfruta resolviendo problemas mediante la innovación en AWS. Fuera del trabajo, a Regis le encantan todas las actividades al aire libre; le apasiona especialmente el golf y el cuidado del césped.

Nishchai JM es un arquitecto de soluciones especialista en análisis en los servicios web de Amazon. Se especializa en crear aplicaciones de Big Data y ayudar a los clientes a modernizar sus aplicaciones en la nube. Piensa que los datos son aceite nuevo y dedica la mayor parte de su tiempo a obtener información de los datos.

Harshida Patel es arquitecto principal de soluciones, análisis con AWS.

Raghu Kuppala es un arquitecto de soluciones especialista en análisis con experiencia trabajando en el espacio de bases de datos, almacenamiento de datos y análisis. Fuera del trabajo, le gusta probar diferentes cocinas y pasar tiempo con su familia y amigos.

punto_img

Información más reciente

punto_img