Criação de um data lake a partir de uma fonte AWS CloudTrail - 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á.

Criação de um data lake a partir de uma fonte AWS CloudTrail

Este tutorial orienta você pelas ações a serem tomadas no console do Lake Formation para criar e carregar seu primeiro data lake a partir de uma fonte do AWS CloudTrail.

Etapas de alto nível parra criar um data lake
  1. Registre um caminho do Amazon Simple Storage Service (Amazon S3) como um data lake.

  2. Conceda permissões do Lake Formation para gravar no catálogo de dados e nos locais do Amazon S3 no data lake.

  3. Crie um banco de dados para organizar as tabelas de metadados no catálogo de dados.

  4. Use um esquema para criar um fluxo de trabalho. Execute o fluxo de trabalho para ingerir dados de uma fonte de dados.

  5. Configure suas permissões do Lake Formation para permitir que outras pessoas gerenciem dados no catálogo de dados e no Data Lake.

  6. Configure o Amazon Athena para consultar os dados que você importou no seu data lake do Amazon S3.

  7. Para alguns tipos de armazenamento de dados, configure o Amazon Redshift Spectrum para consultar os dados que você importou para o seu data lake do Amazon S3.

Público-alvo

A tabela a seguir lista as perfis usadas neste tutorial para criar um data lake.

Público-alvo
Função Descrição
Administrador do IAM Tem a política gerenciada pela AWS: AdministratorAccess. Criar perfis do IAM e buckets do Amazon S3.
Administrador do data lake Usuário que pode acessar o catálogo de dados, criar bancos de dados e conceder permissões do Lake Formation a outros usuários. Tem menos permissões do IAM do que o administrador do IAM, mas o suficiente para administrar o data lake.
Analista de dados Usuário que pode executar consultas no data lake. Tem permissões suficientes apenas para executar consultas.
Função de fluxo de trabalho Perfil com as políticas de IAM necessárias para executar um fluxo de trabalho. Para ter mais informações, consulte (Opcional) Criar um perfil do IAM para fluxos de trabalho.

Pré-requisitos

Antes de começar

  • Verifique se você concluiu as tarefas no Configurar AWS Lake Formation.

  • Conheça o local dos seus logs do CloudTrail.

  • O Athena exige que a pessoa do analista de dados crie um bucket do Amazon S3 para armazenar os resultados da consulta antes de usar o Athena.

É necessário ter familiaridade com o AWS Identity and Access Management (IAM). Para obter informações sobre o IAM, consulte o Guia do usuário do IAM.

Etapa 1: Criar um usuário de analista de dados

Esse usuário tem as permissões de privilégio mínimo para consultar o data lake.

  1. Abra o console do IAM em https://console.aws.amazon.com/iam. Entre como o usuário administrador que você criou em Criar um usuário com acesso administrativo ou como um usuário com a política AdministratorAccess gerenciada pela AWS.

  2. Crie um usuário chamado datalake_user com as seguintes configurações:

    • Habilitar acesso ao AWS Management Console.

    • Defina uma senha e não solicite redefinição de senha.

    • Anexe a política AmazonAthenaFullAccess gerenciada pela AWS.

    • Anexe a seguinte política em linha. Atribua o nome DatalakeUserBasic à política.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }

Etapa 2: Adicionar permissões para ler logs do AWS CloudTrail no perfil do fluxo de trabalho

  1. Anexe a política em linha a seguir ao perfil LakeFormationWorkflowRole. A política concede permissão para ler seus logs do AWS CloudTrail. Atribua o nome DatalakeGetCloudTrail à política.

    Para criar a função LakeFormationWorkflowRole, consulte (Opcional) Criar um perfil do IAM para fluxos de trabalho.

    Importante

    Substitua <your-s3-cloudtrail-bucket> pelos seus dados do CloudTrail pelo local do Amazon S3.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": ["arn:aws:s3:::<your-s3-cloudtrail-bucket>/*"] } ] }
  2. Verifique se há três políticas vinculadas ao perfil.

Etapa 3: Criar um bucket do Amazon S3 para o data lake

Crie o bucket do Amazon S3 que será o local raiz do seu data lake.

  1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/ e entre como o usuário administrador que você criou no Criar um usuário com acesso administrativo.

  2. Escolha Criar bucket e acesse o assistente para criar um bucket nomeado como <yourName>-datalake-cloudtrail, onde <yourName> está seu primeiro nome e sobrenome. Por exemplo: jdoe-datalake-cloudtrail.

    Para obter instruções detalhadas sobre como criar um bucket do Amazon S3, consulte Como criar um bucket.

Etapa 4: Registrar um caminho do Amazon S3

Registre um caminho do Amazon S3 como o local raiz do seu data lake.

  1. Abra o console do Lake Formation em https://console.aws.amazon.com/lakeformation/. Faça login como administrador de data lake.

  2. No painel de navegação, em Registrar e ingerir, escolha Locais do data lake.

  3. Selecione Registrar local e, em seguida, Navegar.

  4. Selecione o bucket do <yourName>-datalake-cloudtrail que você criou anteriormente, aceite o perfil padrão do IAM AWSServiceRoleForLakeFormationDataAccess e selecione Registrar local.

    Para obter mais informações sobre o registro de locais, consulte Adicionar uma localização do Amazon S3 ao seu data lake.

Etapa 5: Conceder permissões de local de dados

As entidades principais devem ter permissões de local de dados em um local de data lake para criar tabelas ou bancos de dados do catálogo de dados que apontem para esse local. Você deve conceder permissões de local de dados ao perfil do IAM para fluxos de trabalho para que o fluxo de trabalho possa gravar no destino da ingestão de dados.

  1. No painel de navegação, em Permissões, selecione Locais de dados.

  2. Selecione Conceder e, na caixa de diálogo Conceder permissões, faça estas seleções:

    1. Em Usuários e perfis do IAM, escolha LakeFormationWorkflowRole.

    2. Para locais de armazenamento, escolha seu bucket <yourName>-datalake-cloudtrail.

  3. Selecione Conceder.

Para obter mais informações sobre permissões de local de dados, consulte Underlying data access control.

Etapa 6: Criar um banco de dados no catálogo de dados

As tabelas de metadados no catálogo de dados do Lake Formation são armazenadas em um banco de dados.

  1. No painel de navegação, em catálogo de dados, escolha Bancos de dados.

  2. selecione Criar banco de dados e, em Informações do banco de dados, digite o nome lakeformation_cloudtrail.

  3. Deixe os outros campos em branco e escolha Criar banco de dados.

Etapa 7: Conceder permissões de dados

Você deve conceder permissões para criar tabelas de metadados no catálogo de dados. Como o fluxo de trabalho será executado com o perfil de LakeFormationWorkflowRole, você deve conceder essas permissões ao perfil.

  1. No console do Lake Formation, no painel de navegação, em catálogo de dados, selecione Bancos de dados.

  2. Selecione o banco de dados lakeformation_cloudtrail, e na lista suspensa Ações, selecione Conceder sob o título Permissões.

  3. Na caixa de diálogo Conceder permissões de dados, faça estas seleções:

    1. Em Entidades principais, em Usuário e perfis do IAM, escolha LakeFormationWorkflowRole.

    2. Em Tags do LF ou recursos de catálogo, escolha Recursos do catálogo de dados nomeados.

    3. Para Bancos de dados, você deve ver que o banco de dados lakeformation_cloudtrail já foi adicionado.

    4. Em Permissões do banco de dados, selecione Criar tabela, Alterar e Eliminar e desmarque Super se estiver selecionado.

    Sua caixa de diálogo Conceder permissões de dados agora deve ter a aparência desta captura de tela.

    A caixa de diálogo Conceder permissões de dados mostra as seleções descritas no texto. A caixa de diálogo é dividida em 3 seções, organizadas verticalmente: Entidades principais, tags do LF ou recursos do catálogo, e Permissões do banco de dados.
  4. Selecione Conceder.

Para obter mais informações sobre como conceder permissões ao Lake Formation, consulte Gerenciando permissões do Lake Formation.

Etapa 8: Usar um esquema para criar um fluxo de trabalho

Para ler os logs do CloudTrail, entender sua estrutura e criar as tabelas apropriadas no catálogo de dados, precisamos configurar um fluxo de trabalho que consiste em crawlers do AWS Glue, trabalhos, acionadores e fluxos de trabalho. Os esquemas do Lake Formation simplificam esse processo.

O fluxo de trabalho gera trabalhos, crawlers e gatilhos que descobrem e ingerem dados em seu data lake. Crie um fluxo de trabalho com base em um dos esquemas predefinidos do Lake Formation.

  1. No console do Lake Formation, no painel de navegação, selecione Esquemas e, em seguida, selecione Usar um esquema.

  2. Na página Usar um esquema, em Tipo de esquema, escolha CloudTrail da AWS.

  3. Em Fonte de importação, selecione uma fonte e uma data de início do CloudTrail.

  4. Em Destino de importação, especifique estes parâmetros:

    Bancos de dados de destino lakeformation_cloudtrail
    Local de armazenamento de destino s3://<yourName>-datalake-cloudtrail
    Formato de dados Parquet
  5. Para frequência de importação, selecione Executar sob demanda.

  6. Em Opções de importação, especifique estes parâmetros:

    Nome do fluxo de trabalho lakeformationcloudtrailtest
    Perfil do IAM LakeFormationWorkflowRole
    Prefixo da tabela cloudtrailtest
    nota

    Deve estar em letras minúsculas.

  7. Escolha Criar e aguarde até que o console informe que o fluxo de trabalho foi criado com sucesso.

    dica

    Você recebeu a seguinte mensagem de erro?

    User: arn:aws:iam::<account-id>:user/<datalake_administrator_user> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole...

    Nesse caso, verifique se você substituiu <account-id> na política em linha do usuário administrador do data lake por um número de conta da AWS válido.

Etapa 9: Executar o fluxo de trabalho

Como você especificou que o fluxo de trabalho é executado sob demanda, você deve iniciá-lo manualmente.

  • Na página Esquemas, selecione o fluxo de trabalho lakeformationcloudtrailtest e, no menu Ações, selecione Iniciar.

    À medida que o fluxo de trabalho é executado, você pode ver seu progresso na coluna de Status da última execução. Escolha o botão de atualização ocasionalmente.

    O status vai de EM EXECUÇÃO, para Descoberta, para Importação, e CONCLUÍDO.

    Quando o fluxo de trabalho for concluído:

    • O catálogo de dados terá novas tabelas de metadados.

    • Seus logs do CloudTrail serão ingeridos no data lake.

    Se o fluxo de trabalho falhar, faça o seguinte:

    1. Selecione o fluxo de trabalho e, no menu Ações, selecione Exibir gráfico.

      O fluxo de trabalho é aberto no console do AWS Glue.

    2. Certifique-se de que o fluxo de trabalho esteja selecionado e acesse a guia Histórico.

    3. Em Histórico, selecione a execução mais recente e selecione Exibir informações da execução.

    4. Selecione um trabalho ou crawler com falha no gráfico dinâmico (runtime) e revise a mensagem de erro. Os nós com falha são vermelhos ou amarelos.

Etapa 10: Conceder SELECT nas tabelas

Você deve conceder a permissão SELECT nas novas tabelas do catálogo de dados para que o analista de dados possa consultar os dados para os quais as tabelas apontam.

nota

Um fluxo de trabalho concede automaticamente a permissão SELECT nas tabelas que ele cria ao usuário que o executou. Como o administrador do data lake executou esse fluxo de trabalho, você deve conceder SELECT ao analista de dados.

  1. No console do Lake Formation, no painel de navegação, em catálogo de dados, selecione Bancos de dados.

  2. Selecione o banco de dados lakeformation_cloudtrail, e na lista suspensa Ações, selecione Conceder sob o título Permissões.

  3. Na caixa de diálogo Conceder permissões de dados, faça estas seleções:

    1. Em Entidades principais, em Usuário e perfis do IAM, escolha datalake_user.

    2. Em Tags do LF ou recursos de catálogo, escolha Recursos do catálogo de dados nomeados.

    3. Para Bancos de dados, o banco de dados lakeformation_cloudtrail já deve estar selecionado.

    4. Para Tabelas, selecione cloudtrailtest-cloudtrail.

    5. Em Permissões de tabela e coluna, clique em Selecionar.

  4. Selecione Conceder.

A próxima etapa é executada como analista de dados.

Etapa 11: Consultar o data lake usando Amazon Athena

Use o console do Amazon Athena para consultar os dados do CloudTrail em seu data lake.

  1. Abra o console do Athena em https://console.aws.amazon.com/athena/ e faça login como analista de dados, usuário datalake_user.

  2. Se necessário, selecione Começar para continuar com o editor de consultas do Athena.

  3. Em Fonte de dados, escolha AwsDataCatalog.

  4. Para o Banco de dados, selecione lakeformation_cloudtrail.

    A lista de Tabelas é preenchida.

  5. No menu flutuante (3 pontos horizontais) ao lado da tabela cloudtrailtest-cloudtrail, selecione Exibir tabela e selecione Executar.

    A consulta é executada e exibe 10 linhas de dados.

    Se você nunca usou o Athena antes, primeiro deve configurar um local do Amazon S3 no console do Athena para armazenar os resultados da consulta. O datalake_user deve ter as permissões exigidas para acessar o bucket do Amazon S3 escolhido.

nota

Agora que você concluiu o tutorial, conceda permissões de dados e permissões de local de dados às entidades principais da sua organização.