Crie uma política personalizada para implementar um gerenciamento de permissões granular.
Métodos de criação
-
O RAM oferece um editor visual WYSIWYG. Gere uma política personalizada selecionando um efeito, service, ação, resource e condição. Um recurso integrado de validação inteligente ajuda a garantir que sua política seja válida e eficaz. Este método é direto e simples.
-
O RAM disponibiliza um editor de scripts JSON. Escreva a política personalizada seguindo a sintaxe e a estrutura de políticas. Esta opção oferece maior flexibilidade e é ideal se você já conhece a sintaxe de políticas.
-
Importar um modelo de política: o RAM fornece modelos de política para cenários comuns, como administradores de sistema, equipe financeira e administradores de rede. Importe um modelo adequado e faça pequenos ajustes para criar rapidamente uma política personalizada.
Importar uma política de sistema: importe uma política de sistema e modifique-a conforme as necessidades do seu negócio. Essa é uma maneira prática e rápida de criar uma política personalizada a partir de um modelo padronizado.
Uso do editor visual
Faça logon no RAM console como administrador do RAM.
No painel de navegação à esquerda, escolha .
Na página Policies, clique em Create Policy.
-
Na página Create Policy, clique na aba Visual Editor.
O editor visual exibe um formulário de instrução com os seguintes campos: Effect (obrigatório, pode ser definido como Allow ou Deny, padrão: Allow), Service (obrigatório), Action (obrigatório), Resource (obrigatório) e Condition (opcional). Selecione um service antes de configurar Action, Resource e Condition. Na parte inferior da página, clique em Add Statement para adicionar mais instruções.
-
Configure a política.
Para saber mais sobre os elementos básicos de uma política, consulte Basic elements of a policy.
Na seção Effect, selecione Allow ou Deny.
-
Na seção Service, selecione um service.
NotaO console exibe os services compatíveis com o editor visual.
-
Na seção Action, selecione All action(s) ou Select action(s).
O sistema lista automaticamente as ações disponíveis com base no service selecionado na etapa anterior. Se você escolher Select action(s), será necessário selecionar as ações específicas em seguida.
-
Na seção Resources, selecione All Resources ou Specified resource(s).
O sistema lista automaticamente os tipos de resources disponíveis com base nas ações selecionadas. Caso escolha Specified resource(s), clique em Add Resource para especificar os ARNs. Utilize o recurso Match All para selecionar rapidamente todos os resources de um item de configuração.
NotaA interface marca os ARNs das ações associadas como Required. Especifique esses ARNs para garantir o funcionamento correto da política.
-
Na seção Condition, clique em Add Condition para configurar condições.
As condições incluem condições comuns da Alibaba Cloud e condições específicas de cada service. O sistema lista automaticamente as condições disponíveis com base no service e nas ações configuradas. Basta selecionar uma chave de condição e definir seu valor.
Clique em Add Statement e repita as etapas anteriores para configurar várias instruções.
-
No topo da página, clique em Optimize e, em seguida, clique em Perform para aplicar otimizações avançadas à política.
O recurso de otimização avançada de políticas executa as seguintes tarefas:
Divide resources ou condições para ações incompatíveis.
Restringe o escopo dos resources.
Remove instruções duplicadas ou mescla instruções.
Na página Create Policy, clique em OK.
Na caixa de diálogo Create Policy, insira um policy name e uma Description e clique em OK.
Uso do editor de scripts
Faça logon no RAM console como administrador do RAM.
No painel de navegação à esquerda, escolha .
Na página Policies, clique em Create Policy.
-
Na página Create Policy, clique na aba JSON Editor.
A página exibe um editor JSON. O modelo de política padrão inclui um elemento
Version(definido como"1") e um arrayStatement. Cada instrução contém os elementosEffect(padrão:"Allow"),Action,ResourceeCondition. Preencha obrigatoriamente os elementosActioneResource. -
Insira o conteúdo da política.
Para mais detalhes sobre a sintaxe e a estrutura de políticas, consulte Policy syntax and structure.
-
No topo da página, clique em Optimize e, em seguida, clique em Perform para aplicar otimizações avançadas à política.
O recurso de otimização avançada de políticas executa as seguintes tarefas:
Divide resources ou condições para ações incompatíveis.
Restringe o escopo dos resources.
Remove instruções duplicadas ou mescla instruções.
Na página Create Policy, clique em OK.
Na caixa de diálogo Create Policy, insira um policy name e uma Description e clique em OK.
Exemplos comuns de políticas personalizadas
Os exemplos a seguir demonstram como configurar políticas personalizadas para cenários de autorização comuns usando o editor de scripts.
Autorização de operações no nível da conta
Operações no nível da conta, como criar usuários RAM e AccessKeys, exigem que você defina o elemento Resource como "*" e configure o escopo de autorização como Entire Alibaba Cloud Account. Não é possível restringir essas operações a um grupo de recursos específico.
O exemplo abaixo concede permissões para criar usuários RAM e AccessKeys:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateUser",
"ram:CreateAccessKey"
],
"Resource": "*"
}
]
}
Ao anexar esta política a um usuário RAM, defina o escopo de autorização como Entire Alibaba Cloud Account. Se o escopo for definido como um grupo de recursos específico, a política não terá efeito para operações no nível da conta.
Permitir que usuários RAM alterem suas próprias senhas
Este exemplo concede a um usuário RAM as permissões mínimas necessárias para alterar sua própria senha de logon:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ram:ChangePassword",
"Resource": "*"
}
]
}
Não conceda AliyunRAMFullAccess para essa finalidade. A política AliyunRAMFullAccess fornece permissões administrativas totais sobre todos os resources do RAM, o que excede em muito o privilégio mínimo necessário para alterações de senha.
Acesso somente leitura a resources específicos
O exemplo a seguir concede acesso somente leitura a uma instância ECS específica. Substitua i-xxx pelo ID real da sua instância.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:Describe*",
"Resource": "acs:ecs:*:*:instance/i-xxx"
}
]
}
No formato ARN, uma barra invertida (/) é obrigatória entre o tipo de resource e o ID do resource. Por exemplo, use instance/i-xxx, e não instancei-xxx.
Autorização granular do Simple Log Service
Este exemplo concede permissões para consultar logs e criar visualizações de armazenamento no Simple Log Service. Substitua exampleproject e examplelogstore pelos nomes reais do seu projeto e Logstore.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:GetLogStoreLogs",
"log:CreateStoreView"
],
"Resource": [
"acs:log:*:*:project/exampleproject/logstore/examplelogstore",
"acs:log:*:*:project/exampleproject"
]
}
]
}
Se chamadas de SDK falharem com erros de permissão negada após a concessão das permissões acima, adicione as permissões log:GetProject e log:GetLogStore. Essas são permissões de dependência implícitas necessárias para que as ações principais funcionem corretamente.
Ações específicas de product indisponíveis no editor visual
Algumas ações não aparecem no editor visual e só podem ser configuradas via editor de scripts. Exemplos incluem:
O exemplo a seguir concede permissão para executar execuções do OOS:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "oos:StartExecution",
"Resource": "*"
}
]
}
Para ações que não estão disponíveis no editor visual, clique na aba Script Editor e insira o nome da ação manualmente.
Implantação de ECS (permissões mínimas)
A implantação de uma instância ECS requer uma combinação de ações em vários services. O exemplo abaixo concede as permissões mínimas necessárias para criar uma instância ECS, incluindo acesso somente leitura aos resources de VPC e grupo de segurança necessários durante a criação da instância:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:RunInstances",
"ecs:DescribeInstances",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches",
"ecs:DescribeSecurityGroups"
],
"Resource": "*"
}
]
}
ecs:RunInstances: cria e inicia uma instância ECS.ecs:DescribeInstances: consulta detalhes da instância.vpc:DescribeVpcsevpc:DescribeVSwitches: permitem selecionar uma VPC e um vSwitch durante a criação da instância.ecs:DescribeSecurityGroups: permite selecionar um grupo de segurança durante a criação da instância.
Configuração de rede VPC (permissões mínimas)
Este exemplo concede as permissões mínimas necessárias para criar uma VPC e um vSwitch:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"vpc:CreateVpc",
"vpc:CreateVSwitch",
"vpc:CreateSecurityGroup",
"vpc:DescribeVpcs",
"vpc:DescribeVSwitches"
],
"Resource": "*"
}
]
}
vpc:CreateVpc: cria uma VPC.vpc:CreateVSwitch: cria um vSwitch.vpc:CreateSecurityGroup: cria um grupo de segurança.vpc:DescribeVpcsevpc:DescribeVSwitches: consultam resources de rede.
Solução de problemas de erro de permissão negada
Quando um usuário RAM recebe um erro AccessForbidden ou uma mensagem de permissão negada no console, siga estas etapas para identificar e resolver o problema:
Etapa 1: Use a ferramenta API Troubleshoot para identificar permissões ausentes
Utilize a ferramenta API Troubleshoot da Alibaba Cloud e insira o RequestID da solicitação com falha. A ferramenta identifica exatamente qual AuthAction está faltando, permitindo que você adicione a permissão necessária à sua política personalizada.
Etapa 2: Verifique o escopo de autorização
Certifique-se de que o escopo de autorização corresponde ao tipo de operação:
Operações no nível da conta (como
ram:CreateUser): o escopo de autorização deve ser definido como Entire Alibaba Cloud Account. Restringir o escopo a um grupo de recursos específico faz com que essas operações falhem.Operações cientes de grupo de recursos: verifique se a política está anexada com o escopo de grupo de recursos correto ou defina o escopo como Entire Alibaba Cloud Account.
Etapa 3: Verifique permissões de dependência implícitas
Algumas operações exigem permissões adicionais além da ação principal. Por exemplo:
Consultas do Simple Log Service: além de
log:GetLogStoreLogs, talvez sejam necessárias as permissõeslog:GetProjectelog:GetLogStore.Login no console Milvus: além das ações principais de gerenciamento, são necessárias as permissões
CreateConnectioneDbmConnect.
Consulte a documentação de autorização do RAM para o service correspondente da Alibaba Cloud a fim de identificar todas as permissões necessárias.
Otimizar uma política excessivamente grande
O documento de uma política personalizada não pode exceder 6.144 bytes. Quando esse limite é ultrapassado, a operação CreatePolicy retorna um erro InvalidParameter.PolicyDocument.Length com a mensagem The policy document size is limited to 6144 bytes. Utilize os métodos a seguir para reduzir o tamanho de uma política.
Reduzir o tamanho da política com curingas
Combine várias ações que compartilham o mesmo prefixo em um curinga, o que pode reduzir significativamente o tamanho da política. Por exemplo, altere a seguinte política:
{"Action": ["oss:GetBucket", "oss:GetObject", "oss:GetBucketAcl", "oss:GetBucketLogging"]}
para:
{"Action": ["oss:Get*"]}
Dividir uma política por função
Divida uma política grande que abrange múltiplas funções em políticas separadas e anexe cada uma a um usuário RAM ou grupo de usuários diferente. Por exemplo, separe operações de leitura e escrita em duas políticas:
Política somente leitura:
{"Action": ["oss:Get*", "oss:List*"]}Política de escrita:
{"Action": ["oss:Put*", "oss:Delete*"]}
Dividir uma política por resource
Divida as políticas por resource. Por exemplo, separe as permissões de diferentes buckets do OSS em políticas distintas, de modo que cada política conceda permissões apenas para um bucket específico. Isso evita que uma única política gerencie muitos resources.
Notas de uso
Ao configurar uma política no editor visual, evite selecionar todas as ações. Escolha o conjunto de ações com menor privilégio para manter o documento da política o menor possível.
Após dividir uma política, anexe cada política resultante aos usuários RAM ou grupos de usuários separadamente, o que aumenta a complexidade de gerenciamento.
Combinar ações com curingas pode causar autorização excessiva. Revise cuidadosamente o escopo de permissões para evitar conceder mais privilégios do que o negócio realmente exige.
Uma política entra em vigor imediatamente após ser anexada. Não é necessário aguardar.
Importando uma política
Faça logon no RAM console como administrador do RAM.
No painel de navegação à esquerda, escolha .
Na página Policies, clique em Create Policy.
Na página Create Policy, clique em Import Policy.
-
No canto superior direito da caixa de diálogo Import Policy, selecione Policy Template ou System Policy na lista suspensa.
Selecione um modelo de política ou uma política de sistema.
Para alguns modelos de política, configure os parâmetros de acordo com os requisitos do seu negócio.
-
Escolha uma regra de substituição para a política importada.
Por padrão, o conteúdo da política importada substitui totalmente o conteúdo existente. Também é possível selecionar Do not overwrite, append new statements to the end.
Clique em Import.
No editor visual ou no editor de scripts, visualize e modifique o conteúdo da política importada.
-
No topo da página, clique em Optimize e, em seguida, clique em Perform para aplicar otimizações avançadas à política.
O recurso de otimização avançada de políticas executa as seguintes tarefas:
Divide resources ou condições para ações incompatíveis.
Restringe o escopo dos resources.
Remove instruções duplicadas ou mescla instruções.
Na página Create Policy, clique em OK.
Na caixa de diálogo Create Policy, insira um policy name e uma Description e clique em OK.
Perguntas frequentes
Por que não encontro certas permissões no editor visual ou por que o salvamento da política falha?
Esse problema pode ocorrer pelos seguintes motivos:
A ação não é compatível ou ainda não está listada no editor visual
Algumas ações de API recém-lançadas ou de baixo nível, como oos:StartExecution e padrões com curingas como swas-open:*, podem não estar disponíveis no editor visual. O editor visual também pode não lidar adequadamente com padrões de curinga sob certas restrições de resources. Para resolver esse problema, clique na aba Script Editor e insira o nome da ação manualmente.
O nome da ação está incorreto
Alguns nomes de ações de API possuem diferenças entre singular e plural. Por exemplo, o nome correto da ação é ecs:ReInitDisks, e não ecs:ReInitDisk. Verifique o nome exato da ação na referência da API do service correspondente da Alibaba Cloud.
A política de sistema não está sincronizada
Se não conseguir encontrar uma política de sistema específica, como AliyunAccountCenterFullAccess, localize o conteúdo JSON oficial dessa política de sistema e recrie-a como uma política personalizada usando o Script Editor.
Falha na validação do formato JSON
Verifique se a sintaxe do seu JSON está correta. Erros comuns incluem:
Definir o campo
Resourcemais de uma vez em uma única instrução. Para especificar vários resources, liste-os como um array JSON dentro de um único campoResource. Por exemplo:"Resource": ["acs:ecs:*:*:instance/i-aaa", "acs:ecs:*:*:instance/i-bbb"].Usar formatos de ARN incorretos. Certifique-se de que o ARN segue o padrão
acs:<service>:<region>:<account-id>:<resource-type>/<resource-id>.
Por que não consigo acessar o console ou realizar operações após conceder FullAccess ou uma política personalizada?
Esse problema pode ocorrer pelos seguintes motivos:
Dependência de acesso ao console
Alguns consoles de products exigem permissões básicas de acesso ao console, como PowerUserAccess, além das permissões específicas do negócio. Conceder apenas uma política FullAccess específica do negócio pode não ser suficiente para carregar a página do console. Anexe a política de acesso base necessária ao usuário RAM.
Incompatibilidade de escopo de autorização
Verifique se o escopo de autorização selecionado ao anexar a política corresponde à definição de Resource na política. Por exemplo, operações no nível de instância para services como OceanBase exigem que o escopo de autorização seja definido como Entire Alibaba Cloud Account, com a política especificando o ARN da instância.
Prioridade e conflito de políticas
Verifique se uma instrução Deny em outra política está substituindo a permissão Allow ou se existe algum conflito entre suas políticas personalizadas e as políticas de sistema. Para cenários complexos, como acesso à rede pública MQTT, se uma política personalizada não entrar em vigor, tente usar a política de sistema oficialmente recomendada (como AliyunMQFullAccess) para verificar a conectividade antes de continuar solucionando problemas na sua política personalizada.