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á.
Como gerenciar um data lake usando o controle de acesso baseado em tags do Lake Formation
Milhares de clientes estão criando lagos de dados em escala de petabytes. AWS Muitos desses clientes usam AWS Lake Formation para criar e compartilhar facilmente seus lagos de dados em toda a organização. À medida que o número de tabelas e usuários aumenta, administradores de dados procuram maneiras de gerenciar facilmente as permissões em data lakes em grande escala. O controle de acesso baseado em tags (LF-TBAC) do Lake Formation resolve esse problema permitindo que os administradores de dados criem tags LF (com base em sua classificação e ontologia de dados) que podem ser anexadas aos recursos.
LF- TBAC é uma estratégia de autorização que define permissões com base em atributos. No Lake Formation, esses atributos são chamados de tags do LF. Você pode anexar tags do LF aos recursos do catálogo de dados e às entidades principais do Lake Formation. Administradores do Data Lake podem atribuir e revogar permissões nos recursos do Lake Formation usando tags do LF. Para obter mais informações, consulte Controle de acesso baseado em tags do Lake Formation.
Este tutorial demonstra como criar uma política de controle de acesso baseada em tags do Lake Formation usando um conjunto de dados AWS público. Além disso, mostra como consultar tabelas, bancos de dados e colunas que têm políticas de acesso baseadas em tags do Lake Formation associadas a eles.
Você pode usar LF- TBAC para os seguintes casos de uso:
Você tem um grande número de tabelas e entidades principais às quais o administrador do data lake precisa conceder acesso
Você deseja classificar seus dados com base em uma ontologia e conceder permissões com base na classificação
O administrador do data lake deseja atribuir permissões dinamicamente, com acoplamento fraco
A seguir estão as etapas de alto nível para configurar permissões usando LF-: TBAC
-
O administrador de dados define a ontologia da tag com duas tags do LF:
Confidential
eSensitive
. Os dados comConfidential=True
têm controles de acesso mais rígidos. Os dados comSensitive=True
requerem uma análise específica do analista. -
O administrador de dados atribui diferentes níveis de permissão ao engenheiro de dados para criar tabelas com diferentes tags do LF.
-
O engenheiro de dados cria dois bancos de dados:
tag_database
ecol_tag_database
. Todas as tabelas emtag_database
são configuradas comConfidential=True
. Todas as tabelas docol_tag_database
são configuradas comConfidential=False
. Algumas colunas da tabelacol_tag_database
estão marcadas comSensitive=True
para necessidades específicas de análise. O engenheiro de dados concede permissão de leitura ao analista para tabelas com condições de expressão específicas
Confidential=True
eConfidential=False
,Sensitive=True
.-
Com essa configuração, o analista de dados pode se concentrar em realizar análises com os dados certos.
Tópicos
- Público-alvo
- Pré-requisitos
- Etapa 1: Provisionar os recursos
- Etapa 2: registre sua localização de dados, crie uma ontologia LF-Tag e conceda permissões
- Etapa 3: Criar bancos de dados do Lake Formation
- Etapa 4: Conceder permissões de dados
- Etapa 5: Executar uma consulta no Amazon Athena para verificar as permissões
- Etapa 6: limpar AWS os recursos
Público-alvo
Este tutorial é destinado a administradores de dados, engenheiros de dados e analistas de dados. Quando se trata de gerenciar AWS Glue Data Catalog e administrar permissões no Lake Formation, os administradores de dados nas contas produtoras têm propriedade funcional com base nas funções que suportam e podem conceder acesso a vários consumidores, organizações externas e contas.
A tabela a seguir lista os perfis usados neste tutorial:
Perfil | Descrição |
---|---|
Administrador de dados (administrador) | O usuário lf-data-steward tem o seguinte acesso:
|
Engenheiro de dados |
O usuário
|
Analista de dados | O usuário lf-data-analyst tem o seguinte acesso:
|
Pré-requisitos
Antes de começar este tutorial, você deve ter um Conta da AWS que possa ser usado para entrar como usuário administrativo com as permissões corretas. Para obter mais informações, consulte Conclua AWS as tarefas de configuração inicial.
O tutorial pressupõe que você esteja familiarizado comIAM. Para obter informações sobreIAM, consulte o Guia IAM do usuário.
Etapa 1: Provisionar os recursos
Este tutorial inclui um AWS CloudFormation modelo para uma configuração rápida. É possível revisá-lo e personalizá-lo para atender às suas necessidades. O modelo cria três funções diferentes (listadas emPúblico-alvo) para realizar esse exercício e copia o nyc-taxi-data conjunto de dados para seu bucket local do Amazon S3.
Um bucket do Amazon S3
Configurações apropriadas do Lake Formation
Os EC2 recursos apropriados da Amazon
Três IAM funções com credenciais
Criar seus recursos
Faça login no AWS CloudFormation console em https://console.aws.amazon.com/cloudformation
na região Leste dos EUA (Norte da Virgínia). Selecione Iniciar Pilha
. -
Escolha Próximo.
-
Na seção Configuração do usuário, digite a senha para três perfis:
DataStewardUserPassword
,DataEngineerUserPassword
eDataAnalystUserPassword
. Analise os detalhes na página final e selecione Eu reconheço que isso AWS CloudFormation pode criar IAM recursos.
Escolha Criar.
A criação da pilha pode levar até cinco minutos.
nota
Depois de concluir o tutorial, talvez você queira excluir a pilha AWS CloudFormation para evitar que continuem incorrendo em cobranças. Verifique se os recursos foram excluídos com sucesso no status de eventos da pilha.
Etapa 2: registre sua localização de dados, crie uma ontologia LF-Tag e conceda permissões
Nesta etapa, o usuário administrador de dados define a ontologia de tags com duas tags LF: Confidential
eSensitive
, e fornece aos IAM diretores específicos a capacidade de anexar tags LF recém-criadas aos recursos.
Registre uma localização de dados e defina a ontologia LF-Tag
Execute a primeira etapa como usuário administrador de dados (
lf-data-steward
) para verificar os dados no Amazon S3 e no catálogo de dados no Lake Formation.Faça login no console do Lake Formation da https://console.aws.amazon.com/lakeformation/
mesma forma que lf-data-steward
com a senha usada ao implantar a AWS CloudFormation pilha.No painel de navegação, em Permissões, selecione Perfis e tarefas administrativas.
Escolha Adicionar na seção Administradores do Data Lake.
Na página Adicionar administrador, para IAMusuários e funções, escolha o usuário
lf-data-steward
.selecione Salvar para adicionar
lf-data-steward
como administrador do Lake Formation.
-
Em seguida, atualize as configurações do Catálogo de Dados para usar a permissão do Lake Formation para controlar os recursos do catálogo em vez do controle de acesso IAM baseado.
No painel de navegação, em Administração, selecione Configurações do catálogo de dados.
Desmarque Usar somente controle de IAM acesso para novos bancos de dados.
Desmarque Usar somente controle de IAM acesso para novas tabelas em novos bancos de dados.
Clique em Salvar.
Em seguida, registre o local dos dados para o data lake.
No painel de navegação, em Administração em Locais de data lake.
Selecione Registrar local.
Na página Registrar localização, para o caminho do Amazon S3, insira.
s3://lf-tagbased-demo-
Account-ID
Para a IAMfunção, deixe o valor padrão
AWSServiceRoleForLakeFormationDataAccess
como está.Escolha Lake Formation como modo de permissão.
Selecione Registrar local.
-
Em seguida, crie a ontologia definindo uma tag do LF.
Em Permissões no painel de navegação, escolha LF-Tags e permissões. .
Selecione Adicionar tag do LF.
Em Chave, digite
Confidential
.Para Valores, adicione
True
eFalse
.Selecione Adicionar tag do LF.
-
Repita as etapas para criar a etiqueta LF
Sensitive
com o valor.True
Você criou todas as etiquetas LF necessárias para este exercício.
Conceder permissões aos IAM usuários
-
Em seguida, forneça aos IAM diretores específicos a capacidade de anexar etiquetas LF recém-criadas aos recursos.
Em Permissões no painel de navegação, escolha LF-Tags e permissões.
Na seção Permissões do LF-Tag, escolha Conceder permissões.
Em Tipo de permissão, escolha permissões do par chave-valor da tag LF.
Selecione IAMusuários e funções.
Para IAMusuários e funções, pesquise e escolha a
lf-data-engineer
função.Na seção LF-Tags, adicione a chave
Confidential
com valoresTrue
eFalse
, e akey
Sensitive
com valor.True
Em Permissões, selecione Descrever e associar para permissões e permissões concedidas.
Selecione Conceder.
-
Em seguida, conceda permissões
lf-data-engineer
para criar bancos de dados em nosso catálogo de dados e no bucket subjacente do Amazon S3 criado por. AWS CloudFormationEm Administração no painel de navegação, escolha Funções e tarefas administrativas.
Na seção Criadores de banco de dados, selecione Conceder.
Para IAMusuários e funções, escolha a
lf-data-engineer
função.Para Permissões de catálogo, selecione Criar banco de dados.
Selecione Conceder.
-
Em seguida, conceda permissões no bucket do Amazon S3 do
(s3://lf-tagbased-demo-
ao usuárioAccount-ID
)lf-data-engineer
.No painel de navegação, em Permissões, selecione Locais de dados.
Selecione Conceder.
Selecione Minha conta.
Para IAMusuários e funções, escolha a
lf-data-engineer
função.Para locais de armazenamento, insira o bucket do Amazon S3 criado pelo AWS CloudFormation modelo.
(s3://lf-tagbased-demo-
Account-ID
)Selecione Conceder.
-
Em seguida,
lf-data-engineer
conceda permissões concedidas aos recursos associados à expressão LF-tag.Confidential=True
No painel de navegação, em Permissões, escolha Permissões do data lake.
Selecione Conceder.
Selecione IAMusuários e funções.
Selecione o perfil de
lf-data-engineer
.Na seção LF-Tags ou recursos do catálogo, selecione Recursos correspondentes às LF-Tags.
Escolha Adicionar par de valores-chave da etiqueta LF.
Adicione a chave
Confidential
com os valoresTrue
.Na seção Permissões do banco de dados, selecione Descrever em Permissões de banco de dados e Permissões concedíveis.
Na seção Permissões de tabela, selecione Descrever, Selecionar e Alterar para permissões de tabela e permissões concedidas.
Selecione Conceder.
-
Em seguida,
lf-data-engineer
conceda permissões concedidas aos recursos associados à expressão LF-tag.Confidential=False
No painel de navegação, em Permissões, escolha Permissões do data lake.
Selecione Conceder.
Selecione IAMusuários e funções.
Selecione o perfil de
lf-data-engineer
.Selecione Recursos correspondentes às tags do LF.
Selecione Adicionar tag do LF.
Adicione a chave
Confidential
com o valorFalse
.Na seção Permissões do banco de dados, selecione Descrever em Permissões de banco de dados e Permissões concedíveis.
Na seção Permissões de tabela e coluna, não selecione nada.
Selecione Conceder.
-
Em seguida,
lf-data-engineer
concedemos permissões concedidas aos recursos associados aos pares de valores-chave da tag LF e.Confidential=False
Sensitive=True
No painel de navegação, em Permissões, escolha Permissões de dados.
Selecione Conceder.
Selecione IAMusuários e funções.
Selecione o perfil de
lf-data-engineer
.Na seção LF-Tags ou recursos do catálogo, selecione Recursos correspondentes às LF-Tags.
Selecione Adicionar tag do LF.
Adicione a chave
Confidential
com o valorFalse
.Escolha Adicionar par de valores-chave da etiqueta LF.
Adicione a chave
Sensitive
com o valorTrue
.Na seção Permissões do banco de dados, selecione Descrever em Permissões de banco de dados e Permissões concedíveis.
Na seção Permissões de tabela, selecione Descrever, Selecionar e Alterar para permissões de tabela e permissões concedidas.
Selecione Conceder.
Etapa 3: Criar bancos de dados do Lake Formation
Nesta etapa, você cria dois bancos de dados e anexa tags LF aos bancos de dados e colunas específicas para fins de teste.
Crie seus bancos de dados e sua tabela para acesso em nível de banco de dados
-
Primeiro, crie o banco de dados
tag_database
, a tabelasource_data
e anexe as tags LF apropriadas.No console do Lake Formation (https://console.aws.amazon.com/lakeformation/
), em Catálogo de dados, escolha Bancos de dados. Selecione Criar banco de dados.
Em Nome, digite
tag_database
.Em Localização, insira a localização do Amazon S3 criada pelo AWS CloudFormation modelo.
(s3://lf-tagbased-demo-
Account-ID
/tag_database/)Desmarque Usar somente controle de IAM acesso para novas tabelas nesse banco de dados.
Selecione Criar banco de dados.
-
Em seguida, crie uma nova tabela dentro dela com
tag_database
.Na página Bancos de dados, selecione o banco de dados
tag_database
.Selecione Exibir tabelas e clique em Criar tabela.
Em Nome, digite
source_data
.Em Banco de dados, selecione o banco de dados
tag_database
.Em Formato de tabela, escolha AWS Glue Tabela padrão.
Em Dados localizados em, selecione Caminho especificado em minha conta.
Em Incluir caminho, insira o caminho a ser
tag_database
criado pelo AWS CloudFormation modelo(s3://lf-tagbased-demo
.Account-ID
/tag_database/)Em Formato de dados, selecione CSV.
Em Esquema de upload, insira a seguinte JSON matriz de estrutura de colunas para criar um esquema:
[ { "Name": "vendorid", "Type": "string" }, { "Name": "lpep_pickup_datetime", "Type": "string" }, { "Name": "lpep_dropoff_datetime", "Type": "string" }, { "Name": "store_and_fwd_flag", "Type": "string" }, { "Name": "ratecodeid", "Type": "string" }, { "Name": "pulocationid", "Type": "string" }, { "Name": "dolocationid", "Type": "string" }, { "Name": "passenger_count", "Type": "string" }, { "Name": "trip_distance", "Type": "string" }, { "Name": "fare_amount", "Type": "string" }, { "Name": "extra", "Type": "string" }, { "Name": "mta_tax", "Type": "string" }, { "Name": "tip_amount", "Type": "string" }, { "Name": "tolls_amount", "Type": "string" }, { "Name": "ehail_fee", "Type": "string" }, { "Name": "improvement_surcharge", "Type": "string" }, { "Name": "total_amount", "Type": "string" }, { "Name": "payment_type", "Type": "string" } ]
Selecione Carregar. Após fazer o upload do esquema, o esquema da tabela deve ter a aparência da seguinte captura de tela:
Selecione Enviar.
-
Em seguida, anexe tags LF no nível do banco de dados.
Na página Bancos de dados, localize e selecione
tag_database
.No menu Ações, escolha Editar tags LF.
Escolha Atribuir nova tag do LF.
Para Chaves atribuídas, escolha a
Confidential
etiqueta LF que você criou anteriormente.Em Valores, selecione
True
.Selecione Salvar.
Isso conclui a atribuição da tag LF ao banco de dados tag_database.
Crie seu banco de dados e tabela para acesso em nível de coluna
Repita as etapas a seguir para criar o banco de dados col_tag_database
e a tabela source_data_col_lvl
e anexar tags LF no nível da coluna.
Na página Bancos de dados, selecione Criar banco de dados.
-
Em Nome, digite
col_tag_database
. -
Em Localização, insira a localização do Amazon S3 criada pelo AWS CloudFormation modelo.
(s3://lf-tagbased-demo-
Account-ID
/col_tag_database/) -
Desmarque Usar somente controle de IAM acesso para novas tabelas nesse banco de dados.
-
Selecione Criar banco de dados.
Na página Bancos de dados, selecione seu novo banco de dados
(col_tag_database)
.Escolha Exibir tabelas e clique em Criar tabela.
Em Nome, digite
source_data_col_lvl
.Em Banco de dados, selecione seu novo banco de dados
(col_tag_database)
.Em Formato de tabela, escolha AWS Glue Tabela padrão.
Em Dados localizados em, selecione Caminho especificado em minha conta.
Digite o caminho do Amazon S3 para
col_tag_database
(s3://lf-tagbased-demo-
.Account-ID
/col_tag_database/)Em Formato de dados, selecione
CSV
.Em
Upload schema
, insira o seguinte esquemaJSON:[ { "Name": "vendorid", "Type": "string" }, { "Name": "lpep_pickup_datetime", "Type": "string" }, { "Name": "lpep_dropoff_datetime", "Type": "string" }, { "Name": "store_and_fwd_flag", "Type": "string" }, { "Name": "ratecodeid", "Type": "string" }, { "Name": "pulocationid", "Type": "string" }, { "Name": "dolocationid", "Type": "string" }, { "Name": "passenger_count", "Type": "string" }, { "Name": "trip_distance", "Type": "string" }, { "Name": "fare_amount", "Type": "string" }, { "Name": "extra", "Type": "string" }, { "Name": "mta_tax", "Type": "string" }, { "Name": "tip_amount", "Type": "string" }, { "Name": "tolls_amount", "Type": "string" }, { "Name": "ehail_fee", "Type": "string" }, { "Name": "improvement_surcharge", "Type": "string" }, { "Name": "total_amount", "Type": "string" }, { "Name": "payment_type", "Type": "string" } ]
Selecione
Upload
. Após fazer o upload do esquema, o esquema da tabela deve ter a aparência da seguinte captura de tela.Selecione Enviar para concluir a criação da tabela.
-
Agora, associe a
Sensitive=True
tag LF às colunas e.vendorid
fare_amount
Na página Tabelas, selecione a tabela que você criou
(source_data_col_lvl)
.No menu Ações, escolha Esquema.
Selecione a coluna
vendorid
e escolha Editar tags LF.Em Chaves atribuídas, selecione Sensível.
Em Valores, selecione True.
Escolha Salvar.
-
Em seguida, associe a
Confidential=False
etiqueta LF a.col_tag_database
Isso é necessáriolf-data-analyst
para poder descrever o banco de dadoscol_tag_database
quando conectado. Amazon AthenaNa página Bancos de dados, localize e selecione
col_tag_database
.No menu Ações, escolha Editar tags LF.
Escolha Atribuir nova tag do LF.
Em Chaves atribuídas, escolha a
Confidential
etiqueta LF que você criou anteriormente.Em Valores, selecione
False
.Escolha Salvar.
Etapa 4: Conceder permissões de dados
Conceda permissões aos analistas de dados para o consumo dos bancos de dados tag_database
e da tabela col_tag_database
usando as tags do LF Confidential
e Sensitive
.
-
Siga estas etapas para conceder permissões ao
lf-data-analyst
usuário nos objetos associados à tag LFConfidential=True
(Database:tag_database) para terDescribe
o banco de dados e a permissão nas tabelas.Select
Faça login no console do Lake Formation em https://console.aws.amazon.com/lakeformation/
como lf-data-engineer
.Em Permissões, selecione Permissões do Data Lake.
Selecione Conceder.
Em Diretores, selecione IAMusuários e funções.
Para IAMusuários e funções, escolha
lf-data-analyst
.Em Etiquetas LF ou recursos do catálogo, selecione Recursos correspondentes às etiquetas LF.
Selecione Adicionar tag do LF.
Para Chave, selecione
Confidential
.Em Valores, selecione
True
.Para Permissões de banco de dados, selecione
Describe
.Para Permissões de tabela, clique em Selecionar e Descrever.
Selecione Conceder.
-
Em seguida, repita as etapas para conceder permissões aos analistas de dados para a expressão LF-Tag for.
Confidential=False
Essa tag do LF é usada para descrever ocol_tag_database
e a tabelasource_data_col_lvl
quando conectada comolf-data-analyst
no Amazon Athena.Faça login no console do Lake Formation em https://console.aws.amazon.com/lakeformation/
como lf-data-engineer
.Na página Bancos de dados, selecione o banco de dados
col_tag_database
.Selecione Ações e Concessão.
Em Diretores, selecione IAMusuários e funções.
Para IAMusuários e funções, escolha
lf-data-analyst
.Selecione Recursos correspondentes às etiquetas LF.
Selecione Adicionar tag do LF.
Para Chave, selecione
Confidential
.Para Valores, selecione
False
.Para Permissões de banco de dados, selecione
Describe
.Para Permissões de tabela, não selecione nada.
Selecione Conceder.
-
Em seguida, repita as etapas para conceder permissões aos analistas de dados para a expressão da tag LF para e.
Confidential=False
Sensitive=True
Essa tag do LF é usada para descrever ocol_tag_database
e a tabelasource_data_col_lvl
(em nível de coluna) quando conectada comolf-data-analyst
no Amazon Athena.Faça login no console do Lake Formation em https://console.aws.amazon.com/lakeformation/
lf-data-engineer
.Na página Bancos de dados, selecione o banco de dados
col_tag_database
.Selecione Ações e Concessão.
Em Diretores, selecione IAMusuários e funções.
Para IAMusuários e funções, escolha
lf-data-analyst
.Selecione Recursos correspondentes às etiquetas LF.
Selecione Adicionar tag do LF.
Para Chave, selecione
Confidential
.Para Valores, selecione
False
.Selecione Adicionar tag do LF.
Para Chave, selecione
Sensitive
.Para Valores, selecione
True
.Para Permissões de banco de dados, selecione
Describe
.Para Permissões de tabela, selecione
Select
eDescribe
.Selecione Conceder.
Etapa 5: Executar uma consulta no Amazon Athena para verificar as permissões
Para essa etapa, use o Amazon Athena para executar consultas SELECT
nas duas tabelas (source_data and source_data_col_lvl)
. Use o caminho do Amazon S3 como o local do resultado da consulta (s3://lf-tagbased-demo-
.Account-ID
/athena-results/)
-
Faça login no console Athena em https://console.aws.amazon.com/athena/
. lf-data-analyst
No editor de consultas do Athena, selecione
tag_database
no painel esquerdo.Selecione o ícone de opções de menu adicionais (três pontos verticais) ao lado de
source_data
e selecione Exibir tabela.Selecione Executar consulta.
A consulta deve levar alguns minutos para ser executada. A consulta exibe todas as colunas na saída porque a tag do LF está associada no nível do banco de dados e a tabela
source_data
a herdou automaticamenteLF-tag
do banco de dadostag_database
.Execute outra consulta usando
col_tag_database
esource_data_col_lvl
.A segunda consulta retorna as duas colunas que foram marcadas como
Non-Confidential
eSensitive
.Você também pode verificar o comportamento da política de acesso baseada em tags do Lake Formation em colunas para as quais você não tem concessões de políticas. Quando uma coluna não marcada é selecionada na tabela
source_data_col_lvl
, o Athena retorna um erro. Por exemplo, você pode executar a seguinte consulta para escolher colunas não marcadasgeolocationid
:SELECT geolocationid FROM "col_tag_database"."source_data_col_lvl" limit 10;
Etapa 6: limpar AWS os recursos
Para evitar cobranças indesejadas Conta da AWS, você pode excluir os AWS recursos usados neste tutorial.
-
Faça login no console do Lake Formation como
lf-data-engineer
e exclua os bancos de dadostag_database
ecol_tag_database
. -
Em seguida, faça login como
lf-data-steward
e limpe todas as permissões de tags do LF, Permissões de dados e Permissões de localização de dados que foram concedidas acima e que foram concedidas alf-data-engineer
elf-data-analyst.
. -
Faça login no console do Amazon S3 como proprietário da conta usando as IAM credenciais que você usou para implantar a pilha. AWS CloudFormation
-
Exclua os seguintes buckets:
lf-tagbased-demo-accesslogs-
acct-id
lf-tagbased-demo-
acct-id
-
Faça login no AWS CloudFormation console em https://console.aws.amazon.com/cloudformation
e exclua a pilha que você criou. Aguarde até que o status da pilha mude para DELETE_COMPLETE
.