Este tópico descreve o modelo de permissões do Data Lake Formation (DLF) e explica como conceder as permissões adequadas a um usuário RAM para usar e acessar os recursos do DLF.
O modelo de permissões do Data Lake Formation (DLF) consiste em duas camadas principais: permissões RAM e permissões de dados do DLF. Para acessar páginas ou dados do DLF, o usuário geralmente precisa passar pelas verificações de ambas as camadas de permissão.
Permissões RAM: controlam o acesso a todas as operações da OpenAPI do DLF e determinam quais operações ou páginas da OpenAPI do DLF um usuário RAM pode acessar.
Permissões de dados do DLF: controlam o acesso e o uso de recursos internos do DLF, incluindo bancos de dados, tabelas, colunas, funções e catálogos de dados, além das permissões para operações de autorização de dados.
Camada 1: Permissões de OpenAPI do RAM
Essa camada controla o acesso a todas as operações da OpenAPI do DLF e determina se um usuário RAM pode acessar operações ou páginas específicas. O console RAM oferece duas políticas de autorização integradas:
AliyunDLFFullAccess: concede permissão para chamar todas as operações da OpenAPI do DLF.-
AliyunDLFReadOnlyAccess: concede permissão para chamar operações de somente leitura da OpenAPI do DLF, como operações de API que começam comListouGet. Essa política não concede permissão para operações de escrita, comoCreateouDelete.ImportanteA operação
SubmitQueryé uma operação de escrita e exige a permissão AliyunDLFFullAccess.
Você também pode criar políticas de autorização RAM personalizadas para obter um controle mais refinado no nível da OpenAPI.
Camada 2: Permissões de dados refinadas do DLF
Essa camada controla o acesso e o uso de recursos internos do DLF, incluindo bancos de dados, tabelas, colunas, funções e catálogos de dados, além de permissões para operações como gerenciamento de funções, gerenciamento de usuários e autorização.
O controle de permissões da Camada 2 divide-se em dois tipos: permissões de dados refinadas do DLF e permissões de dados abrangentes do RAM DLF-DSS. Esses tipos possuem uma relação OU. O usuário obtém acesso ao passar na verificação de permissão de qualquer um dos tipos; o acesso é negado apenas se ambas as verificações falharem.
As verificações de permissão para recursos de dados, como bancos de dados, tabelas, colunas, funções e catálogos de dados, entram em vigor somente após a ativação da configuração de permissão do catálogo de dados. No entanto, a verificação de permissão para operações de gerenciamento, como gerenciamento de funções, usuários e autorizações, é sempre imposta pelas permissões de dados refinadas, independentemente de a configuração estar ativada.
Para simplificar o gerenciamento de permissões de dados, o DLF fornece funções integradas de administrador de dados. Você encontra essas funções na página Data Permission > Role e pode atribuí-las a usuários específicos:
admin(administrador do data lake): possui todas as permissões de dados e de autorização no Data Lake Formation.super_administrator(superadministrador): possui todas as permissões de dados e de autorização no Data Lake Formation e pode modificar usuários com a funçãoadmin.
Para obter mais informações sobre como configurar permissões refinadas, consulte Visão geral das permissões de dados.
Camada 2: Permissões de dados abrangentes do RAM DLF-DSS
Essa camada controla o acesso e o uso de recursos internos do DLF, incluindo bancos de dados, tabelas, colunas, funções e catálogos de dados, além de permissões para operações como gerenciamento de funções, gerenciamento de usuários e autorização. O console RAM oferece duas políticas de autorização integradas:
AliyunDLFDSSFullAccess: concede acesso a todos os recursos refinados do DLF.AliyunDLFDSSReadOnlyAccess: concede acesso de somente leitura a todos os recursos refinados do DLF, incluindo operações comoList,Get,SelecteExecute.
Recomendamos usar as permissões de dados refinadas do DLF para um controle granular de permissões de dados.
As verificações de permissão para recursos de dados, como bancos de dados, tabelas, colunas, funções e catálogos de dados, entram em vigor somente após a ativação da configuração de permissão do catálogo de dados. Contudo, a verificação de permissão para operações de gerenciamento, como gerenciamento de funções, usuários e autorizações, é sempre imposta pelas permissões de dados abrangentes do DLF-DSS, independentemente de a configuração estar ativada.
Um usuário RAM com a política RAM
AdministratorAccesstambém possui todas as permissões do DLF-DSS, o que equivale a ter a políticaAliyunDLFDSSFullAccess.
Cenários comuns
-
Caso de uso: consultar metadados do DLF sem necessidade de controle de permissão de dados.
Conceda a "Camada 1: Permissões de OpenAPI do RAM" ao usuário RAM anexando a política de autorização integrada
AliyunDLFFullAccessouAliyunDLFReadOnlyAccess.
-
Caso de uso: usar o DLF para autorização refinada de dados.
Etapa 1: conceda a "Camada 1: Permissões de OpenAPI do RAM" ao usuário RAM anexando a política de autorização integrada
AliyunDLFFullAccessouAliyunDLFReadOnlyAccess.Etapa 2: ative a configuração de permissão do catálogo de dados.
Etapa 3 (opcional): se você usar outros serviços, como o E-MapReduce (EMR), para consultar e modificar dados, também será necessário ativar a opção de permissão DLF-Auth no cluster EMR.
-
Etapa 4: conceda ao usuário RAM as permissões de dados necessárias. Use um dos métodos a seguir:
Atribua uma função de administrador: use sua conta Alibaba Cloud para conceder a função
adminousuper_administratora um usuário RAM. Isso confere ao usuário RAM permissões completas de dados e de gerenciamento de autorizações. Para obter mais informações, consulte Gerenciar funções.Atribua permissões de administrador de banco de dados: conceda a um usuário todas as permissões em um banco de dados específico. Para obter mais informações, consulte Conceder permissões.
Atribua permissões de acesso a tabelas ou colunas: conceda a um usuário permissões específicas em uma tabela ou coluna. Para obter mais informações, consulte Conceder permissões.
Perguntas frequentes
-
Problema 1: uma mensagem de erro indica que o usuário não possui a permissão RAM necessária para chamar uma API do DLF.
Sintoma: a página exibe uma mensagem de erro informando que é necessária uma autorização RAM para a permissão
dlf:xxx. Isso significa que o usuário precisa das permissões de OpenAPI da Camada 1. Conceda as permissões necessárias anexando a política integradaAliyunDLFFullAccessouAliyunDLFReadOnlyAccessno console RAM. -
Problema 2: uma mensagem de erro indica que o usuário não tem permissão para um recurso ao tentar conceder permissões.
Sintoma: quando um usuário tenta conceder uma permissão, uma mensagem de erro informa que ele não possui a
dlf permissionnecessária.Conceda ao usuário permissões de autorização para o recurso específico. Você também pode conceder essas permissões atribuindo uma função. Para obter mais informações, consulte Conceder permissões.
Conceda ao usuário a função
adminousuper_administrator. Para obter mais informações, consulte Gerenciar funções.Conceda ao usuário permissões
dlf-dss. Por exemplo, concederdlf-dss:BatchGrantPermissionsedlf-dss:SelectTablepermite que o usuário conceda a permissãoSELECTem todas as tabelas para outros usuários.
Exemplo de pop-up de erro: o título é Error Occurred e a mensagem de erro é
Authorization Failed [4019]. A mensagem indica que o usuário não possui a permissão All no recursoacs:dlf:cn-hangzhou:{accountId}:metastore/catalogs/{catalogName},databases/default. O código de erro éNoPermissione uma mensagem indica que o Principal falhou na verificação de permissão dlf. -
Problema 3: uma mensagem de erro indica que o usuário não tem permissão para chamar uma operação de API do plano de controle, como
ListPermissionsouListRoles.Sintoma: ocorre um erro com o código
NoPermissionquando um usuário chama uma operação de API do plano de controle, como uma operação para consultar permissões ou gerenciar funções. A mensagem de erro indica que o usuário não tem permissão para a operação. Para resolver esse problema, use um dos métodos a seguir:Exemplo de pop-up de erro: o título é Error Occurred. A mensagem de erro indica que o usuário não tem permissão para executar uma operação ao chamar uma API do plano de controle, como
ListPermissionsouListRoles. O código de erro éNoPermissione uma mensagem indica que o Principal falhou na verificação de permissão dlf.Conceda ao usuário a função
adminousuper_administrator. Para obter mais informações, consulte Gerenciar funções.-
Conceda ao usuário permissões
dlf-dss. O DLF fornece as políticas integradasAliyunDLFDSSFullAccesseAliyunDLFDSSReadOnlyAccessno console RAM. Por exemplo:dlf-dss:ListRoles: permite que o usuário visualize todas as funções no DLF.dlf-dss:ListPermissions: permite que o usuário visualize todas as permissões concedidas no DLF.