Exemplo de cenário de permissões - AWS Lake Formation

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo de cenário de permissões

O cenário a seguir ajuda a demonstrar como você pode configurar permissões para proteger o acesso aos dados no AWS Lake Formation.

Shirley é administradora de dados. Ela quer configurar um data lake para sua empresa, AnyCompany. Atualmente, todos os dados são armazenados no Amazon S3. John é gerente de marketing e precisa ter acesso por escrito às informações de compra do cliente (contidas em s3://customerPurchases). Um analista de marketing, Diego, se junta a John neste verão. John precisa da capacidade de conceder acesso a Diego para realizar consultas nos dados sem envolver Shirley.

Mateo, do setor financeiro, precisa acessar dados contábeis de consulta (por exemplo, s3://transactions). Ele quer consultar os dados das transações em tabelas em um banco de dados (Finance_DB) que a equipe financeira usa. Seu gerente, Arnav, pode dar a ele acesso ao Finance_DB. Embora ele não deva ser capaz de modificar os dados contábeis, ele precisa converter os dados em um formato (esquema) adequado para previsões. Esses dados serão armazenados em um bucket separado (s3://financeForecasts) que ele pode modificar.

Para resumir:

  • Shirley é a administradora do data lake.

  • John exige permissão CREATE_DATABASE e CREATE_TABLE para criar novos bancos de dados e tabelas no catálogo de dados.

  • John também exige SELECT, INSERT e DELETE permissões nas tabelas que ele cria.

  • Diego exige permissão SELECT na tabela para executar consultas.

Os funcionários da AnyCompany realizam as seguintes ações para configurar as permissões. As operações de API mostradas nesse cenário mostram uma sintaxe simplificada para maior clareza.

  1. Shirley registra o caminho do Amazon S3 contendo informações de compra do cliente no Lake Formation.

    RegisterResource(ResourcePath("s3://customerPurchases"), false, Role_ARN )
  2. Shirley concede a John o acesso ao caminho do Amazon S3 contendo informações de compra do cliente.

    GrantPermissions(John, S3Location("s3://customerPurchases"), [DATA_LOCATION_ACCESS]) )
  3. Shirley concede permissão a John para criar bancos de dados.

    GrantPermissions(John, catalog, [CREATE_DATABASE])
  4. John cria o banco de dados John_DB. John tem permissão CREATE_TABLE automática nesse banco de dados porque ele o criou.

    CreateDatabase(John_DB)
  5. John cria a tabela John_Table apontando para s3://customerPurchases. Como ele criou a tabela, ele tem todas as permissões nela e pode conceder permissões sobre ela.

    CreateTable(John_DB, John_Table)
  6. John permite que seu analista, Diego, tenha acesso à tabela John_Table.

    GrantPermissions(Diego, John_Table, [SELECT])
  7. John permite que seu analista, Diego, acesse o s3://customerPurchases/London/. Como Shirley já está registrada s3://customerPurchases, suas subpastas são registradas no Lake Formation.

    GrantDataLakePrivileges( 123456789012/datalake, Diego, [DATA_LOCATION_ACCESS], [], S3Location("s3://customerPurchases/London/") )
  8. John permite que seu analista, Diego, crie tabelas no banco de dados John_DB.

    GrantDataLakePrivileges( 123456789012/datalake, Diego, John_DB, [CREATE_TABLE], [] )
  9. Diego cria uma tabela John_DB em s3://customerPurchases/London/ e obtém automaticamente as permissões ALTER, DROP, SELECT, INSERT e DELETE.

    CreateTable( 123456789012/datalake, John_DB, Diego_Table )