Após instalar o plug-in Kubernetes ack-secret-manager, configure-o para buscar periodicamente os valores de segredo mais recentes do Key Management Service (KMS) e armazená-los em cache no cluster do Container Service for Kubernetes (ACK). Isso permite usar segredos dinâmicos do KMS como segredos nativos do Kubernetes, evitando a exposição de dados sensíveis durante os processos de desenvolvimento e build de aplicações.
Procedimento
-
Instale o plug-in
ack-secret-manager.-
Para clusters do Container Service for Kubernetes (ACK)
Acesse o ACK console e localize ack-secret-manager no Marketplace.
Na página ack-secret-manager, clique em Quick Deployment no canto superior direito.
No painel, mantenha os valores padrão para Cluster, Namespace e Release Name. Em seguida, clique em Next.
-
Na página Parameters, configure os parâmetros e clique em OK.
Parâmetro
Descrição
Exemplo
command.backendO backend do sistema externo de gerenciamento de segredos. Atualmente, apenas o Alibaba Cloud KMS é compatível. Defina este parâmetro como
alicloud-kms.alicloud-kmscommand.regionA região da qual os segredos serão recuperados.
cn-hangzhoucommand.disablePollingEspecifica se a sincronização automática dos valores de segredo mais recentes do backend do KMS deve ser desativada. Defina como
truepara desativar a sincronização. Valor padrão:false.falsecommand.pollingIntervalO intervalo de sincronização dos segredos do backend do KMS.
120sConcluída a implantação, você será redirecionado para a página
ack-secret-managerdo cluster. Na página Resources, verifique se os seguintes seis recursos do Kubernetes foram criados:ack-secret-manager(ServiceAccount),externalsecrets.alibabacloud.com(CustomResourceDefinition),ack-secret-manager(ClusterRole),ack-secret-manager(ClusterRoleBinding),ack-secret-manager-auth(ClusterRoleBinding) eack-secret-manager(Deployment).
Para clusters Kubernetes autogerenciados, acesse ack-secret-manager para instalar o plug-in.
-
-
Crie um segredo no KMS.
Todos os tipos de segredo são compatíveis. Para mais informações, consulte Manage and use generic secrets, Manage and use RAM secrets, Manage and use ApsaraDB RDS secrets ou Manage and use ECS secrets.
-
Conceda ao plug-in
ack-secret-manageracesso ao KMS.-
Acesso usando Shared KMS
Este método é adequado para segredos em uma instância do KMS e para segredos que não estão em uma instância do KMS, incluindo os criados em versões anteriores do KMS que não exigiam uma instância.
-
No Resource Access Management (RAM), crie uma política personalizada para conceder acesso aos segredos do KMS. O código a seguir apresenta um exemplo de política. Personalize a política conforme suas necessidades de negócio. Para mais informações, consulte Custom policies for Key Management Service.
{ "Action": [ "kms:GetSecretValue", "kms:Decrypt" ], "Resource": [ "*" ], "Effect": "Allow" } -
Conceda permissões ao workload ou Pod do Container Service.
Método
Descrição
Adicionar permissões à função worker do cluster
Acesse o ACK console. No painel de navegação à esquerda, escolha Clusters.
Localize o cluster de destino e clique em Details na coluna Actions.
Na aba Cluster Resources, clique na função worker chamada KubernetesWorkerRole-. Você será redirecionado para o console do RAM, onde poderá anexar sua política personalizada.
Usar RAM Roles for Service Accounts (RRSA) para autorização em nível de Pod
Crie uma função RAM para a service account especificada, configure uma política de confiança para a função RAM e, em seguida, anexe sua política personalizada.
-
-
Acesso usando um endpoint de instância do KMS (
{kmsInstanceId}.cryptoservice.kms.aliyuncs.com)Este método se aplica apenas a segredos em instâncias do KMS. Recomendamos essa abordagem para restringir o acesso de rede ao KMS dentro de sua Virtual Private Cloud (VPC). Para mais informações, consulte Create an application access point.
NotaAntes de usar um endpoint de instância do KMS, vincule a VPC do workload ou Pod à instância do KMS. Para mais informações, consulte Access a KMS instance from multiple VPCs in the same region.
-
No plug-in
ack-secret-manager, configure parâmetros comoprotocol(o protocolo de acesso ao KMS),endpoint(o ponto de acesso),client key(o método de autenticação) eSecretName(o nome do segredo). Para mais detalhes, consulte a documentação do ack-secret-manager.
Próximas etapas
Para proteger ainda mais os segredos obtidos do KMS e armazenados em cache no cluster, ative a criptografia em repouso para segredos do Kubernetes. Para mais informações, consulte Use KMS to encrypt Kubernetes Secrets at rest.
Esse recurso de criptografia também protege outros segredos estáticos no cluster do Kubernetes, como segredos do sistema.