Em um cluster ACK Edge Pro, use chaves do Alibaba Cloud Key Management Service (KMS) para criptografar Secrets do Kubernetes em repouso e fortalecer a proteção de dados. Este tópico explica como ativar a criptografia de Secrets em repouso com chaves gerenciadas pelo KMS.ACK Edge Pro cluster com chaves do Key Management Service (KMS) para proteger dados confidenciais armazenados no etcd.
Pré-requisitos
|
Item |
Descrição |
|
Chave do KMS |
Você criou uma chave do KMS no console do Key Management Service e a chave está na mesma região do cluster ACK Pro de destino. Os clusters ACK Pro aceitam chaves padrão, chaves de software e chaves de hardware. Selecione um tipo de chave. Para obter mais informações sobre o gerenciamento de chaves e operações relacionadas, consulte Key management quick start. Para obter detalhes sobre o faturamento do KMS, consulte billing. Importante
Após ativar a criptografia em repouso, não use o console ou a API do KMS para desativar ou excluir a chave usada para criptografia e descriptografia de Secrets. Caso contrário, o servidor de API do cluster ficará indisponível. Como resultado, não será possível recuperar objetos como Secrets e ServiceAccounts, o que interromperá suas aplicações. |
|
Regras de ACL de rede do cluster |
Quando a criptografia em repouso está ativada, o plug-in do KMS no plano de controle precisa acessar as APIs do Alibaba Cloud KMS para criptografar e descriptografar Secrets. Para permitir isso, adicione regras que permitam o tráfego para o bloco CIDR |
|
Autorização |
Certifique-se de que as permissões necessárias foram concedidas com base no tipo da sua conta.
|
Criptografia de Secrets
Em um cluster Kubernetes, informações confidenciais de aplicações, como senhas, certificados TLS e credenciais de imagens docker, geralmente são armazenadas e gerenciadas por meio de objetos Secret. O Kubernetes armazena todos os dados de objetos Secret no banco de dados etcd do cluster. Para obter mais informações sobre Secrets, consulte Secrets.
Em um ACK Edge Pro cluster, é possível criptografar Secrets do Kubernetes armazenados no etcd com uma chave do KMS. O processo usa o Kubernetes KMS Encryption Provider com criptografia de envelope:
Ao armazenar um Secret, o servidor de API gera uma chave de criptografia de dados (DEK) para criptografá-lo e, em seguida, criptografa a DEK com a chave do KMS. Tanto o Secret criptografado quanto a DEK criptografada são armazenados no etcd.
Ao recuperar um Secret, o servidor de API chama o KMS para descriptografar a DEK e, em seguida, usa a DEK em texto simples para descriptografar e retornar os dados do Secret.
Para obter mais informações, consulte KMS Encryption Provider mechanism e Use a KMS key for envelope encryption.
Ative a criptografia de Secrets em repouso em um ACK Edge Pro cluster
Novos clusters
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em Create Kubernetes Cluster.
-
Clique na aba ACK Edge. Expanda Advanced Options (Optional). Para Secret Encryption, selecione Select Key e escolha um ID de chave do KMS.
Se você não tiver uma chave do KMS, clique em Create Key para create one no console do KMS.
Para outros parâmetros do ACK Edge Pro cluster, consulte Create a cluster.
Para verificação, acesse o console do ActionTrail e clique em Cluster Events Query. Na página Cluster Events Query, verifique se há eventos de criptografia e descriptografia que usam a função de sistema
aliyuncsmanagedsecurityrole.
Clusters existentes
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
-
Na página Clusters, clique no nome do cluster de destino. Na página de detalhes do cluster, clique na aba Basic Information. Na seção Security and Auditing, ative o botão Secret Encryption.
Ao ativar a criptografia de Secrets em repouso pela primeira vez, siga o prompt e clique em Go to RAM console para acessar a página Cloud Resource Access Authorization e, em seguida, clique em Confirm para concluir a autorização.
NotaPara ativar a criptografia em repouso, certifique-se de que o usuário ou função do RAM atualmente conectado tenha as permissões RBAC de administrador ou engenheiro de O&M no cluster. Para obter mais informações, consulte Authorize operations on in-cluster resources with RBAC.
Para autorizar o AliyunCSManagedSecurityRole, certifique-se de estar conectado com uma conta Alibaba Cloud ou com um usuário ou função do RAM que tenha permissões de gerenciamento do RAM.
-
Na caixa de diálogo Secret Encryption exibida, selecione uma chave do KMS existente e clique em OK.
Se você não tiver criado uma chave do KMS, clique em Create Key e acesse o console do Key Management Service para criar uma chave. Para obter mais informações, consulte Create a key.
Quando o status do cluster mudar de Updating para Running, a criptografia de Secrets em repouso estará ativada para o cluster.
Se você não precisar mais da criptografia de Secrets em repouso, na seção Security and Auditing, desative o botão Secret Encryption.
Rotação automática de chaves
Use o recurso de rotação automática de chaves do KMS para criptografar Secrets em repouso. Quando uma chave é girada automaticamente, os Secrets existentes permanecem criptografados com a versão anterior da chave. Os novos Secrets são criptografados com a nova versão da chave. Para obter mais informações sobre a rotação automática de chaves, consulte Key rotation.
Para garantir que os Secrets existentes também sejam criptografados com a nova versão da chave, execute o comando a seguir para criptografar novamente todos os Secrets existentes após a rotação automática da chave.
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - encryption-key-rotation-time="$(date -u +'%Y-%m-%dT%H:%M:%S%z')"
Perguntas frequentes
Os Secrets recuperados pelo kubectl são criptografados?
Não. A criptografia em repouso criptografa os dados brutos do Secret no etcd, que são então armazenados como texto criptografado. No entanto, ao usar a API de Secrets por meio do servidor de API, você recebe os dados do Secret em texto simples.
Como impedir que um usuário ou função do RAM ative ou desative a criptografia de Secrets em repouso em um cluster ACK Edge cluster existente
Anexe a seguinte política do RAM com efeito de negação (Deny) a um usuário ou função do RAM para impedir que eles ativem ou desativem a criptografia em repouso para um cluster ACK Edge existente.ACK Edge Pro cluster. Consulte Use RAM to grant permissions to access clusters and cloud resources.
{
"Action": [
"cs:UpdateKMSEncryption"
],
"Effect": "Deny",
"Resource": [
"*"
]
}