O compartilhamento de uma conta Alibaba Cloud entre membros da equipe aumenta o risco de exposição de pares de AccessKey. Em vez disso, conceda aos usuários e funções do Resource Access Management (RAM) apenas as permissões necessárias no Service Mesh (ASM), como criar instâncias, atualizar configurações ou gerenciar autorizações RBAC.
Quando usar este guia
Defina o escopo das permissões conforme as tarefas que a identidade RAM precisa executar:
|
Cenário |
Permissões necessárias |
|
Gerenciar apenas instâncias ASM |
Siga este tópico para anexar políticas de sistema ou personalizadas ao ASM. |
|
Gerenciar instâncias ASM e clusters ACK (por exemplo, adicionar ou remover clusters de uma malha) |
Conceda as permissões de ASM descritas neste tópico e as permissões de ACK seguindo o procedimento em Usar o RAM para autorizar acesso a clusters e recursos de nuvem. |
Pré-requisitos
Antes de começar, verifique se você tem:
Um usuário RAM e uma função RAM
Conhecimento básico sobre a estrutura e sintaxe de políticas do RAM
Políticas de sistema
O ASM oferece duas políticas de sistema integradas:
|
Política |
Permissões |
|
AliyunASMReadOnlyAccess |
Acesso somente leitura às instâncias ASM. A identidade RAM pode visualizar informações da instância, mas não pode modificar configurações. |
|
AliyunASMFullAccess |
Acesso total às instâncias ASM. A identidade RAM tem as mesmas permissões de ASM que a conta Alibaba Cloud. |
Anexar uma política de sistema
Os passos a seguir usam a AliyunASMReadOnlyAccess como exemplo. Para anexar outra política de sistema, substitua o nome da política no passo 4.
Para mais informações, consulte Conceder permissões a um usuário RAM e Conceder permissões a uma função RAM.
No painel de navegação à esquerda, escolha .
-
No painel Grant Permission, configure os seguintes parâmetros:
-
Selecione System Policy na lista suspensa All Types, insira AliyunASMReadOnlyAccess na caixa de pesquisa e selecione AliyunASMReadOnlyAccess.
NotaÉ possível anexar até cinco políticas por vez. Para anexar mais, repita este procedimento.
Clique em OK.
Clique em Close.
Faça login no console RAM como administrador 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 padrão de política 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 documento de política no editor e clique em OK.
O exemplo abaixo concede todas as permissões de ASM, exceto a autorização RBAC. Uma identidade RAM com esta política pode executar todas as operações em instâncias ASM, mas não pode conceder permissões RBAC a outras identidades.
Cada campo da política tem uma finalidade específica:
Campo
Descrição
EffectDefine se as ações especificadas serão permitidas ou negadas.
ActionEspecifica as operações de API a autorizar. Caracteres curinga (
*) correspondem a múltiplas operações.ResourceIndica os recursos de destino. Use
*para todos os recursos ou especifique um ARN para limitar a política a um único recurso.ConditionCondições opcionais necessárias para que a política entre em vigor.
{ "Statement": [ { "Effect": "Allow", "Action": [ "servicemesh:Add*", "servicemesh:CRBatchDeletion", "servicemesh:Create*", "servicemesh:Delete*", "servicemesh:Describe*", "servicemesh:Enable*", "servicemesh:Disable*", "servicemesh:Get*", "servicemesh:InvokeApiServer", "servicemesh:List*", "servicemesh:Modify*", "servicemesh:Re*", "servicemesh:Run*", "servicemesh:Set*", "servicemesh:Sync*", "servicemesh:Update*", "servicemesh:Upgrade*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "log:ListLogStores", "log:ListDashboard", "log:GetDashboard", "log:ListSavedSearch", "log:ListProject" ], "Resource": "*" }, { "Effect": "Allow", "Action": "log:GetLogStoreLogs", "Resource": "acs:log:*:*:project/*/logstore/audit-*" }, { "Effect": "Allow", "Action": "log:GetLogStoreLogs", "Resource": "acs:log:*:*:project/*/logstore/istio-*" }, { "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "ram:ServiceName": "servicemesh.aliyuncs.com" } } } ], "Version": "1" }Para mais detalhes sobre a sintaxe de políticas, consulte Estrutura e sintaxe de políticas.
Na seção Basic Information, insira um nome no campo Name (por exemplo, ASMPolicy1) e clique em OK.
Faça login no console RAM como administrador RAM.
No painel de navegação à esquerda, escolha .
-
No painel Add Permissions, configure os seguintes parâmetros:
Selecione Custom Policy na lista suspensa All Types, insira
ASMPolicy1na caixa de pesquisa e selecione ASMPolicy1.
Clique em OK.
A primeira instrução concede todas as ações
servicemesh:*, mas apenas no ARN da instância especificada.A segunda instrução concede
servicemesh:DescribeServiceMeshesem todos os recursos, necessário para listar malhas no console.As duas últimas instruções concedem acesso a logs restrito à instância especificada.
Políticas personalizadas
Use políticas personalizadas para controle de acesso refinado, como conceder todas as permissões de ASM exceto a autorização RBAC.
Passo 1: Criar uma política personalizada
Passo 2: Anexar a política personalizada
Para anexar a política personalizada a uma função RAM em vez de um usuário RAM, consulte Conceder permissões a uma função RAM.
Exemplos de políticas personalizadas
Os exemplos a seguir abrangem cenários comuns de permissão. Substitua os valores de espaço reservado pelos identificadores reais dos seus recursos antes de aplicar essas políticas.
Conceder permissões em uma única instância ASM
Restrinja uma identidade RAM para gerenciar apenas uma instância ASM específica.
Substitua <ServicemeshId> pelo ID da instância ASM de destino.
{
"Statement": [
{
"Effect": "Allow",
"Action": "servicemesh:*",
"Resource": "acs:servicemesh:*:*:servicemesh/<ServicemeshId>"
},
{
"Effect": "Allow",
"Action": "servicemesh:DescribeServiceMeshes",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/audit-<ServicemeshId>"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/istio-<ServicemeshId>"
}
],
"Version": "1"
}
Como esta política funciona:
Conceder acesso de leitura e gravação a recursos Istio
Permita que uma identidade RAM gerencie recursos Istio pelo console ASM sem alterar outras configurações do ASM, como definições de recursos.
Esta política complementa a AliyunASMReadOnlyAccess ao adicionar a ação servicemesh:InvokeApiServer, que habilita o gerenciamento de recursos Istio.
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:List*",
"servicemesh:Describe*",
"servicemesh:Get*",
"servicemesh:InvokeApiServer"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"log:ListLogStores",
"log:ListDashboard",
"log:GetDashboard",
"log:ListSavedSearch"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "log:GetLogStoreLogs",
"Resource": "acs:log:*:*:project/*/logstore/audit-*"
}
],
"Version": "1"
}
Conceder permissões de autorização RBAC
Habilite uma identidade RAM a gerenciar permissões RBAC de outros usuários e funções RAM pelo console ASM, sem conceder acesso para gerenciar instâncias ASM.
{
"Statement": [
{
"Effect": "Allow",
"Action": [
"servicemesh:DescribeUserPermissions",
"servicemesh:GrantUserPermissions",
"servicemesh:DescribeServiceMeshes",
"servicemesh:DescribeUsersWithPermissions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ims:ListUserBasicInfos",
"Resource": "*"
}
],
"Version": "1"
}