Ejemplo de escenario de permisos - AWS Lake Formation

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.

Ejemplo de escenario de permisos

El siguiente escenario ayuda a demostrar cómo se pueden configurar los permisos para proteger el acceso a los datos AWS Lake Formation.

Shirley es administradora de datos. Quiere configurar un lago de datos para su empresa, AnyCompany. Ahora mismo, todos los datos se almacenan en Amazon S3. John es responsable de marketing y necesita acceso de escritura a la información de compra de los clientes (contenida en s3://customerPurchases). Un analista de marketing, Diego, se une a John este verano. John necesita poder conceder a Diego acceso para consultar los datos sin involucrar a Shirley.

Mateo, de finanzas, necesita acceso para consultar datos contables (por ejemplo, s3://transactions). Quiere consultar los datos de las transacciones en las tablas de una base de datos (Finance_DB) utilizadas por el equipo financiero. Su jefe, Arnav, puede darle acceso a la Finance_DB. Aunque no debería poder modificar los datos contables, necesita la capacidad de convertir los datos a un formato (esquema) adecuado para la previsión. Estos datos se almacenarán en un bucket separado (s3://financeForecasts) que él podrá modificar.

Para resumir:

  • Shirley es la administradora del lago de datos.

  • John necesita permiso CREATE_DATABASE y CREATE_TABLE para crear nuevas bases de datos y tablas en el Catálogo de datos.

  • John también necesita los permisos SELECT, INSERT y DELETE en las tablas que crea.

  • Diego necesita permiso SELECT sobre la tabla para ejecutar consultas.

Los empleados de AnyCompany realizan las siguientes acciones para configurar los permisos. Las API operaciones que se muestran en este escenario muestran una sintaxis simplificada para mayor claridad.

  1. Shirley registra en Lake Formation la ruta de Amazon S3 que contiene la información de compra del cliente.

    RegisterResource(ResourcePath("s3://customerPurchases"), false, Role_ARN )
  2. Shirley concede a John acceso a la ruta de Amazon S3 que contiene la información de compra del cliente.

    GrantPermissions(John, S3Location("s3://customerPurchases"), [DATA_LOCATION_ACCESS]) )
  3. Shirley concede a John permiso para crear bases de datos.

    GrantPermissions(John, catalog, [CREATE_DATABASE])
  4. John crea la base de datos John_DB. John tiene automáticamente permiso CREATE_TABLE sobre esa base de datos porque él la creó.

    CreateDatabase(John_DB)
  5. John crea la tabla John_Table que apunta a s3://customerPurchases. Como él creó la tabla, tiene todos los permisos sobre ella y puede conceder permisos sobre ella.

    CreateTable(John_DB, John_Table)
  6. Juan permite a su analista, Diego, acceder a la tabla John_Table.

    GrantPermissions(Diego, John_Table, [SELECT])
  7. Juan permite a su analista, Diego, el acceso a s3://customerPurchases/London/. Porque Shirley ya registró s3://customerPurchases, sus subcarpetas están registradas con Lake Formation.

    GrantDataLakePrivileges( 123456789012/datalake, Diego, [DATA_LOCATION_ACCESS], [], S3Location("s3://customerPurchases/London/") )
  8. John permite a su analista, Diego, crear tablas en la base de datos John_DB.

    GrantDataLakePrivileges( 123456789012/datalake, Diego, John_DB, [CREATE_TABLE], [] )
  9. Diego crea una tabla en John_DB en s3://customerPurchases/London/ y obtiene automáticamente permisos ALTER, DROP, SELECT, INSERT y DELETE.

    CreateTable( 123456789012/datalake, John_DB, Diego_Table )