

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
<a name="security-permissions-example-scenario"></a>

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 )
   ```

1. 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]) )
   ```

1. Shirley concede permissão a John para criar bancos de dados.

   ```
   GrantPermissions(John, catalog, [CREATE_DATABASE]) 
   ```

1. 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)
   ```

1. 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)
   ```

1. John permite que seu analista, Diego, tenha acesso à tabela `John_Table`.

   ```
    GrantPermissions(Diego, John_Table, [SELECT])
   ```

1. 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/") )
   ```

1. John permite que seu analista, Diego, crie tabelas no banco de dados `John_DB`.

   ```
    GrantDataLakePrivileges( 123456789012/datalake, Diego, John_DB, [CREATE_TABLE], [] )
   ```

1. 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 )
   ```