Para aplicar o princípio do menor privilégio, atribua uma função personalizada do Resource Access Management (RAM) a pools de nós específicos em seu cluster ACK. Em vez de compartilhar uma única função padrão entre todos os nós, o que pode gerar excesso de permissões, as funções personalizadas isolam as permissões no nível do pool de nós.
Atribua uma função RAM de worker personalizada apenas ao criar um cluster ou um novo pool de nós. Não é possível modificar a função RAM de worker de um pool de nós existente.
Pré-requisitos
Antes de começar, certifique-se de atender aos seguintes requisitos:
Versão do cluster: um cluster ACK gerenciado que execute o Kubernetes 1.22 ou posterior. Consulte Crie um cluster ACK gerenciado.
-
Permissões do operador: o usuário RAM ou a função RAM usada para criar o pool de nós deve ter a permissão
ram:PassRole.NotaSe o usuário RAM ou a função RAM já tiver a permissão
AliyunCSFullAccess, a permissãoram:PassRolenão é necessária.
Etapa 1: Crie uma função RAM personalizada
Crie a função RAM que deseja atribuir ao seu pool de nós. A função RAM deve atender a dois requisitos:
Nomenclatura: o nome da função não deve começar com
KubernetesMasterRole-ouKubernetesWorkerRole-.Entidade de confiança: o serviço confiável deve ser Cloud Service.
Utilize um dos métodos a seguir para criar a função.
Console
Siga as instruções em Crie uma função de serviço regular.
OpenAPI ou Terraform
Crie a função por meio do OpenAPI ou do Terraform e configure a política de confiança da seguinte forma. Para obter detalhes sobre a edição da política de confiança, consulte Edite a política de confiança de uma função RAM.
{
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"ecs.aliyuncs.com"
]
}
}
],
"Version": "1"
}
Etapa 2: Atribua a função a um novo pool de nós
Depois de criar a função, anexe-a ao criar um cluster ou um pool de nós.
Faça login no console do ACK.
Acesse a página de criação de cluster ou de pool de nós.
Expanda a seção Advanced Options e defina Worker RAM Role como a função criada em Etapa 1.
Para obter instruções detalhadas, consulte:
Próximos passos
Por padrão, uma função RAM recém-criada não possui permissões. Conceda as permissões exigidas por cada pool de nós e revogue as desnecessárias.
Conceder permissões
Console: Crie uma política personalizada e Conceda permissões a uma função RAM
OpenAPI: CreatePolicy e AttachPolicyToRole
Terraform: Crie uma função RAM e conceda permissões usando o Terraform
Revogar permissões
Revogue assim que possível as permissões que não forem mais necessárias. Consulte Revogar permissões de uma função RAM.