Funções são conjuntos de permissões que permitem conceder os mesmos direitos de acesso a vários usuários de forma eficiente. O uso de funções simplifica a autorização e reduz os custos de gerenciamento. Este tópico descreve os tipos de função no MaxCompute e como gerenciá-las.
Tipos de função
O MaxCompute oferece dois tipos de função: funções de administrador e funções de recurso.
Função de administrador: Conceda permissões administrativas a essa função apenas por meio de uma política. Não é permitido conceder permissões relacionadas a recursos nem permissões administrativas usando uma lista de controle de acesso (ACL).
Função de recurso: Conceda permissões relacionadas a recursos por meio de uma política ou ACL. Esta função não aceita permissões administrativas.
Funções integradas
O MaxCompute fornece duas funções de administrador integradas no nível do projeto e duas no nível do tenant: Super_Administrator e Admin.
Nível da função | Nome da função | Tipo de função | Descrição |
Projeto | Super_Administrator | Admin | Função de administrador integrada do MaxCompute. Possui permissões para operar em todos os recursos e executar todas as tarefas administrativas dentro de um projeto. Para mais informações, consulte Permissions of project-level administrator roles. O proprietário do projeto ou um usuário com a função Super_Administrator pode conceder a função Super_Administrator a outros usuários. |
Admin | Admin | Função de administrador integrada do MaxCompute. Esta função tem permissões para operar em todos os recursos de um projeto e um subconjunto de permissões administrativas básicas. Para mais informações, consulte Permissions of project-level administrator roles. O proprietário do projeto pode conceder a função Admin a outros usuários. Um usuário com a função Admin não pode conceder a função Admin a outros usuários, definir configurações de segurança do projeto, modificar o modelo de autorização do projeto ou alterar as permissões da função Admin. | |
Tenant | Super_Administrator | Admin | Função de administrador integrada do MaxCompute. Esta função possui as mesmas permissões operacionais no MaxCompute que uma conta Alibaba Cloud, exceto as permissões para criar projetos, excluir projetos e ativar serviços. |
Admin | Admin | Função de administrador integrada do MaxCompute. Utilizada para gerenciar permissões de todos os objetos e links de rede. |
No nível do projeto, o proprietário possui todas as permissões sobre ele. Outros usuários não podem acessar objetos dentro do projeto sem a autorização do proprietário.
Funções personalizadas
O MaxCompute permite criar funções personalizadas de administrador e de recurso para classificar e gerenciar usuários conforme as necessidades do seu negócio.
|
Nível da função |
Nome da função |
Tipo de função |
Descrição |
|
Projeto |
Função personalizada |
Admin, Recurso |
Função personalizada definida como administrador para gerenciar um projeto ou como recurso para gerenciar objetos dentro dele. |
|
Tenant |
Função personalizada |
Recurso |
Função personalizada usada para definir permissões em recursos como cotas, links de rede e projetos. |
Operações de gerenciamento de funções
A tabela a seguir descreve as operações de gerenciamento de funções suportadas pelo MaxCompute.
Nível da função | Ações | Descrição | Função do operador | Ferramenta |
Projeto | Cria uma nova função no nível do projeto. | Proprietário do projeto ou usuário com uma função integrada do MaxCompute no nível do projeto. | ||
Visualiza as funções em um projeto. | ||||
Exclui uma função de um projeto. |
Permissões das funções de administrador no nível do projeto
A tabela abaixo detalha as permissões administrativas das funções de administrador no nível do projeto.
Tipo de permissão | Objeto | Ações | Descrição | Proprietário do projeto | Função Super_Administrator | Função Admin |
Configuração de segurança do projeto | Projeto | SetSecurityConfiguration | Define as propriedades de segurança de um projeto. |
|
|
|
Projeto | GetSecurityConfiguration | Visualiza a configuração de segurança de um projeto. |
|
|
| |
Gerenciamento de projetos confiáveis | Projeto | AddTrustedProject | Adiciona um projeto confiável. |
|
|
|
Projeto | RemoveTrustedProject | Remove um projeto confiável. |
|
|
| |
Projeto | ListTrustedProjects | Lista projetos confiáveis. |
|
|
| |
Gerenciamento de usuários | Projeto | AddUser | Adiciona um usuário. |
|
|
|
Projeto | RemoveUser | Remove um usuário. |
|
|
| |
Projeto | ListUsers | Visualiza a lista de usuários. |
|
|
| |
Projeto | ListUserRoles | Visualiza as funções de um usuário. |
|
|
| |
Gerenciamento de funções | Projeto | CreateRole | Cria uma função. |
|
|
|
Projeto | DescribeRole | Visualiza as permissões da função. |
|
|
| |
Projeto | AlterRole | Modifica atributos da função. |
|
|
| |
Projeto | DropRole | Exclui uma função. |
|
|
| |
Projeto | ListRoles | Visualiza a lista de funções. |
|
|
| |
Atribuição de função | Função | GrantRole | Atribui uma função a um usuário. |
|
|
|
Função | RevokeRole | Revoga uma função de um usuário. |
|
|
| |
Função | ListRolePrincipals | Visualiza usuários atribuídos a uma função. |
|
|
| |
Gerenciamento de pacotes | Projeto | CreatePackage | Cria um pacote. |
|
|
|
Projeto | ShowPackages | Visualiza a lista de pacotes. |
|
|
| |
Pacote | DescribePackage | Visualiza informações do pacote. |
|
|
| |
Pacote | DropPackage | Exclui um pacote. |
|
|
| |
Pacote | InstallPackage | Instala um pacote. |
|
|
| |
Pacote | UninstallPackage | Desinstala um pacote. |
|
|
| |
Pacote | AllowInstallPackage | Permite que outros projetos usem um pacote. |
|
|
| |
Pacote | DisallowInstallPackage | Impede que outros projetos usem um pacote. |
|
|
| |
Pacote | AddPackageResource | Adiciona um recurso a um pacote. |
|
|
| |
Pacote | RemovePackageResource | Remove um recurso de um pacote. |
|
|
| |
Gerenciamento de rótulos | Tabela | GrantLabel | Concede permissões de rótulo. |
|
|
|
Tabela | RevokeLabel | Revoga permissões de rótulo. |
|
|
| |
Tabela | ShowLabelGrants | Visualiza informações de autorização de rótulo. |
|
|
| |
Tabela | SetDataLabel | Define rótulos para usuários e funções. |
|
|
| |
Limpar permissões expiradas | Projeto | ClearExpiredGrants | Limpa permissões expiradas. |
|
|
|
O ícone
indica que a permissão foi concedida. O ícone
indica que a permissão não foi concedida.
Criar uma função no nível do projeto
Crie uma nova função em um projeto do MaxCompute.
Após criar uma função, vincule-a a um usuário. Isso concede ao usuário as permissões correspondentes da função. Para mais informações, consulte Assign a role to a user.
-
Sintaxe do comando
create role <role_name> [privilegeproperties("type"="admin|resource")]; -
Parâmetros
Parâmetro
Obrigatório
Descrição
role_name
Sim
Nome da nova função. O nome deve ser único dentro do projeto e atender aos seguintes requisitos:
Começar com uma letra.
Conter apenas letras e dígitos.
Ter no máximo 64 caracteres.
Execute o comando
list roles;no MaxCompute client para visualizar as funções criadas.privilegeproperties
Não
Define o tipo da função:
"type"="admin": Cria uma função administrativa, que só pode ser autorizada por meio de uma política."type"="resource": Cria uma função do tipo recurso. Este é o tipo padrão caso nenhum seja especificado. Esse tipo de função suporta autorização via ACLs e políticas.
-
Exemplos
-
Crie uma função de recurso chamada
Worker.create role Worker; -
Crie uma função de administrador chamada
sale_admin.create role sale_admin privilegeproperties("type"="admin");
-
Visualizar uma lista de funções no nível do projeto
Visualize a lista de funções criadas em um projeto do MaxCompute.
-
Sintaxe do comando
list roles; -
Exemplo
Visualize as funções em um projeto do MaxCompute.
list roles;O comando retorna a seguinte saída:
admin Super_Administrator worker
Excluir uma função no nível do projeto
Exclua uma função existente de um projeto do MaxCompute.
-
Sintaxe do comando
drop role <role_name>; -
Notas de uso
Ao excluir uma função, o MaxCompute verifica se ela está atribuída a algum usuário. Em caso positivo, a operação falha. Revogue a função de todos os usuários antes de excluí-la. Para revogar uma função de um usuário, consulte Revoke a role from a user.
-
Parâmetros
Parâmetro
Obrigatório
Descrição
role_name
Sim
Nome da função a ser excluída.
Execute o comando
list roles;no MaxCompute client para obter a lista de funções criadas. -
Exemplo
Exclua a função
Worker.drop role Worker;
Limpar informações de permissão
Ao excluir uma função de um projeto do MaxCompute, os dados de permissão associados, como listas de controle de acesso (ACLs), políticas e rótulos, permanecem no projeto. Se você criar posteriormente uma nova função com o mesmo nome, ela herdará as permissões da função excluída. Para evitar isso, limpe as permissões da função removida. Caso uma função excluída possua informações residuais de permissão, o proprietário do projeto ou um usuário com a função Admin ou Super_Administrator pode executar o seguinte comando para limpá-las.
-
Sintaxe do comando
purge privs from role <role_name>; -
Parâmetros
Parâmetro
Obrigatório
Descrição
role_name
Sim
Nome da função excluída.
Execute o comando
list roles;no MaxCompute client para visualizar as funções criadas.NotaAntes de limpar as permissões da função, certifique-se de que ela foi excluída. Se você executar este comando em uma função existente, ele retornará a mensagem de erro
"Principal <role_name> still exist in the project".
Próximas etapas
Após planejar suas funções, conceda permissões conforme as necessidades do seu negócio. Para mais informações, consulte Project-level role authorization.
Depois de criar uma função, atribua-a a um usuário. Isso concede ao usuário as permissões associadas à função. Para mais informações, consulte Assign a role to a user.