Controle de acesso baseado em tags do Lake Formation
O controle de acesso baseado em tags do Lake Formation (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 conceder permissões a entidades principais do Lake Formation nesses recursos usando essas tags do LF. O Lake Formation permite operações nesses recursos quando a tag da entidade principal corresponde ao valor da tag do recurso. O LF-TBAC é útil em ambientes que estão crescendo rapidamente e ajuda em situações em que o gerenciamento de políticas se torna um problema.
O LF-TBAC é o método recomendado para conceder permissões do Lake Formation quando há um grande número de recursos do catálogo de dados. O LF-TBAC é mais escalável do que o método de recurso nomeado e requer menos sobrecarga de gerenciamento de permissões.
nota
As tags do IAM não são iguais às tags do LF. Essas tags não são intercambiáveis. As tags do LF são usadas para conceder permissões do Lake Formation e as tags do IAM são usadas para definir políticas do IAM.
Como funciona o controle de acesso baseado em tags do Lake Formation
Cada tag do LF é um par de valores-chave, como department=sales
ou classification=restricted
. Uma chave pode ter vários valores definidos, como department=sales,marketing,engineering,finance
.
Para usar o método LF-TBAC, os administradores e engenheiros de dados do data lake realizam as seguintes tarefas.
Tarefa | Detalhes da tarefa |
---|---|
1. Defina as propriedades e os relacionamentos das tags do LF. |
- |
2. Crie os criadores de tags do LF no Lake Formation. |
Adicionar criadores de tags do LF |
3. Crie a tag do LF no Lake Formation. |
Criação de tags do LF |
4. Atribua tags do LF aos recursos do catálogo de dados. |
Atribuição de tags do LF aos recursos do catálogo de dados |
5. Conceda permissões a outras entidades principais para atribuir tags do LF aos recursos, opcionalmente com a opção de concessão. |
Gerenciar permissões de valor de tag do LF |
6. Conceda expressões de tag do LF às entidades principais, opcionalmente com a opção de concessão. |
Conceder permissões de data lake usando o método LF-TBAC |
7. (Recomendado) Depois de verificar se as entidades principais têm acesso aos recursos corretos por meio do método LF-TBAC, revogue as permissões concedidas usando o método de recurso nomeado. |
- |
Considere o caso em que você deve conceder permissões a três entidade principais em três bancos de dados e sete tabelas.
Para obter as permissões indicadas no diagrama anterior usando o método de recurso nomeado, você precisaria fazer 17 concessões, da seguinte forma (em pseudocódigo).
GRANT CREATE_TABLE ON Database A TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table A.1 TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table A.2 TO PRINCIPAL 1 GRANT SELECT, INSERT ON Table B.2 TO PRINCIPAL 1 ... GRANT SELECT, INSERT ON Table A.2 TO PRINCIPAL 2 GRANT CREATE_TABLE ON Database B TO PRINCIPAL 2 ... GRANT SELECT, INSERT ON Table C.3 TO PRINCIPAL 3
Agora, considere como você concederia permissões usando o LF-TBAC. O diagrama a seguir indica que você atribuiu tags do LF a bancos de dados e tabelas e concedeu permissões sobre tags do LF às entidades principais.
Neste exemplo, as tags do LF representam áreas do data lake que contêm análises para diferentes módulos de um pacote de aplicativos de planejamento de recursos corporativos (ERP). Você deve controlar o acesso aos dados analíticos dos vários módulos. Todas as tags do LF têm a chave module
e os valores possíveis Sales
, Orders
e Customers
. Um exemplo de uma tag do LF é semelhante a este:
module=Sales
O diagrama mostra somente os valores da tag do LF.
Atribuições de tags aos recursos e herança do catálogo de dados
As tabelas herdam as tags do LF dos bancos de dados e as colunas herdam as tags do LF das tabelas. Os valores herdados podem ser substituídos. No diagrama anterior, as tags do LF esmaecidas são herdadas.
Por causa da herança, o administrador do data lake precisa fazer somente as cinco seguintes atribuições de tag do LF aos recursos (em pseudocódigo).
ASSIGN TAGS module=Sales TO database A ASSIGN TAGS module=Orders TO table A.2 ASSIGN TAGS module=Orders TO database B ASSIGN TAGS module=Customers TO table B.2 ASSIGN TAGS module=Customers TO database C
Concessões de tags a entidade principais
Depois de atribuir tags do LF aos bancos de dados e tabelas, o administrador do data lake deve fazer apenas quatro concessões de tags do LF às entidades principais, da seguinte forma (em pseudocódigo).
GRANT TAGS module=Sales TO Principal 1 GRANT TAGS module=Customers TO Principal 1 GRANT TAGS module=Orders TO Principal 2 GRANT TAGS module=Customers TO Principal 3
Agora, uma entidade principal com a tag do LF module=Sales
pode acessar os recursos do catálogo de dados com a tag do LF module=Sales
(por exemplo, banco de dados A), uma entidade principal com a tag do LF module=Customers
pode acessar recursos com a tag do LF module=Customers
e assim por diante.
Os comandos de concessão anteriores estão incompletos. Isso ocorre porque, embora indiquem por meio de tags do LF os recursos do catálogo de dados sobre os quais as entidades principais têm permissões, eles não indicam exatamente quais permissões do Lake Formation (por exemplo SELECT
, ALTER
) as entidades principais têm sobre esses recursos. Portanto, os comandos de pseudocódigo a seguir são uma representação mais precisa de como as permissões do Lake Formation são concedidas nos recursos do catálogo de dados por meio de tags do LF.
GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Sales TO Principal 1 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Sales TO Principal 1 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Customers TO Principal 1 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Customers TO Principal 1 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Orders TO Principal 2 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Orders TO Principal 2 GRANT (CREATE_TABLE ON DATABASES) ON TAGS module=Customers TO Principal 3 GRANT (SELECT, INSERT ON TABLES) ON TAGS module=Customers TO Principal 3
Reunir tudo: permissões resultantes em recursos
Considerando as tags do LF atribuídas aos bancos de dados e tabelas no diagrama anterior e as tags do LF concedidas às entidades principais no diagrama, a tabela a seguir lista as permissões do Lake Formation que as entidades principais têm nos bancos de dados e tabelas.
Entidade principal | Permissões concedidas por meio de tags do LF |
---|---|
Entidade principal 1 |
|
Entidade principal 2 |
|
Entidade principal 3 |
|
Conclusão
Neste exemplo simples, usando cinco operações de atribuição e oito operações de concessão, o administrador do data lake conseguiu especificar 17 permissões. Quando há dezenas de bancos de dados e centenas de tabelas, a vantagem do método LF-TBAC sobre o método de recurso nomeado fica clara. No caso hipotético da necessidade de conceder a todos os principais acesso a todos os recursos, e onde n(P)
é o número de entidades principais e n(R)
o número de recursos:
-
Com o método de recurso nomeado, o número de concessões necessárias é
n(P)
✕n(R)
. -
Com o método LF-TBAC, usando uma única tag do LF, o total do número de concessões para entidades principais e atribuições de recursos é
n(P)
+n(R)
.