O Function Compute oferece suporte ao controle de acesso baseado em atributos (ABAC) por meio de tags. Ao associar políticas com escopo de tag a grupos de usuários do Resource Access Management (RAM), você isola o gerenciamento de funções entre as equipes.
Como funciona
O controle de acesso baseado em tags utiliza três chaves de condição de política do RAM que atuam em conjunto para impor limites de tag:
|
Chave de condição |
O que ela controla |
|
|
Exige a tag especificada quando um usuário do RAM cria uma função. A função deve receber a tag no momento da criação. |
|
|
Restringe todas as operações de gerenciamento às funções que já possuem a tag especificada. |
|
|
Impede que usuários do RAM adicionem ou removam tags. Sem essa restrição, um usuário poderia alterar as tags de uma função para obter acesso a recursos fora de seu limite permitido. |
Em conjunto, esses três elementos formam um limite de permissão fechado: os usuários só podem criar funções com tags, só podem atuar em funções que possuam suas respectivas tags e não podem alterar tags para ultrapassar esse limite.
Caso de uso
Uma empresa gerencia várias funções em uma única conta Alibaba Cloud e precisa restringir cada equipe apenas às funções sob sua responsabilidade:
Equipe de desenvolvimento: visualize e gerencie apenas funções marcadas com a tag do ambiente de desenvolvimento.
Equipe de O&M: visualize e gerencie somente funções identificadas com a tag do ambiente de produção.
A tabela a seguir apresenta o plano de configuração:
|
Equipe |
Grupo de usuários do RAM |
Política de acesso |
Tag |
|
Equipe de desenvolvimento |
|
|
|
|
Equipe de O&M |
|
|
|
Pré-requisitos
Antes de começar, verifique se você possui:
Uma conta Alibaba Cloud com acesso de administrador.
Acesso ao console do Function Compute e ao console do RAM.
Não associe políticas de alto privilégio, como AliyunFCFullAccess ou AliyunFCReadOnlyAccess, a usuários do RAM. Essas políticas ignoram as condições baseadas em tags e permitem que o usuário visualize todas as funções, o que compromete o isolamento de permissões proporcionado por esta configuração.
Sub-recursos e configurações de uma função — como aliases, gatilhos, configurações assíncronas, configurações de concorrência, instâncias, anexos de VPC e tarefas assíncronas — herdam as definições de controle de acesso da função principal. Somente usuários do RAM com as tags correspondentes podem gerenciá-los.
Configure o controle de acesso baseado em tags
Etapa 1: Adicione tags às suas funções
Faça login no console do Function Compute usando sua conta Alibaba Cloud. Crie funções e associe tags para identificar a qual equipe cada função pertence:
Associe a tag
team:devàs funções da equipe de desenvolvimento.Associe a tag
team:opsàs funções da equipe de O&M.
Para obter instruções sobre como associar tags, consulte Configurar tags.
Etapa 2: Crie usuários do RAM
Faça login no console do RAM com sua conta Alibaba Cloud e crie dois usuários do RAM — um para cada equipe. Consulte Criar um usuário do RAM.
Etapa 3: Crie grupos de usuários do RAM e adicione membros
Crie dois grupos de usuários chamados developer e operator. Adicione os usuários do RAM correspondentes a cada grupo. Os usuários do RAM herdam automaticamente as permissões de seu grupo.
Consulte Criar um grupo de usuários do RAM e Adicionar um usuário do RAM a um grupo de usuários do RAM.
Etapa 4: Crie políticas personalizadas
Faça login no console do RAM usando sua conta Alibaba Cloud e crie uma política personalizada.
Cada política contém quatro declarações que, juntas, impõem o limite de tag:
Permita todas as ações do FC quando a tag
teamcorresponder na criação do recurso (acs:RequestTag).Permita todas as ações do FC em recursos que já possuem a tag
teamcorrespondente (acs:ResourceTag).Permita listar tags e recuperar configurações da conta (necessário para que a filtragem por tags funcione no console).
Negue a modificação de tags. Se omitida, um usuário poderia alterar as tags de qualquer função para acessar recursos fora de seu limite.
FCPolicyForDevTeam (para o grupo de usuários developer):
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "fc:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:RequestTag/team": [
"dev"
]
}
}
},
{
"Effect": "Allow",
"Action": "fc:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"fc:ListTaggedResources",
"tag:ListTagKeys",
"fc:GetAccountSettings"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"fc:UntagResources",
"fc:TagResources"
],
"Resource": "*"
}
]
}
FCPolicyForOpsTeam (para o grupo de usuários operator):
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "fc:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:RequestTag/team": [
"ops"
]
}
}
},
{
"Effect": "Allow",
"Action": "fc:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"ops"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"fc:ListTaggedResources",
"tag:ListTagKeys",
"fc:GetAccountSettings"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"fc:UntagResources",
"fc:TagResources"
],
"Resource": "*"
}
]
}
Para configurar e utilizar produtos como OSS, NAS e VPC no Function Compute, conceda também as permissões necessárias para esses serviços. Consulte Políticas de acesso e exemplos .
Etapa 5: Associe políticas aos grupos de usuários
Associe a política FCPolicyForDevTeam ao grupo de usuários
developere a FCPolicyForOpsTeam ao grupo de usuáriosoperator.Associe as políticas de sistema AliyunRAMFullAccess e AliyunECSFullAccess a ambos os grupos de usuários. Elas permitem que os usuários do RAM nos grupos criem funções com as tags especificadas, criem usuários e grupos do RAM, além de criar e associar políticas de acesso.
Consulte Conceder permissões a um grupo de usuários do RAM.
A figura a seguir mostra as políticas recomendadas para o grupo de usuários developer.

Etapa 6: Verifique a configuração
Faça login no console do Function Compute como cada usuário do RAM. Consulte Fazer login no Console de Gerenciamento da Alibaba Cloud como um usuário do RAM.
No painel de navegação à esquerda, escolha Function Management > Functions.
Na barra de menu superior, selecione a região onde as funções com tags estão localizadas.
Na página Functions, clique em Tag Filtering e filtre pela Tag Key
teame pelo Tag Value correspondente (devouops).
Um usuário do RAM só consegue visualizar e gerenciar funções ao filtrar por uma tag incluída nas políticas concedidas ao seu grupo de usuários. Sem a filtragem por tags, nenhuma função fica visível.
Selecione a mesma região das funções ao executar operações. O acesso entre regiões não funciona com esta configuração.
A figura a seguir mostra um usuário do RAM da equipe de desenvolvimento filtrando funções autorizadas pela tag team:dev.
