Usar o provedor do Cofre da Chave do Azure para o Driver CSI do Repositório de Segredos em um cluster do Serviço Kubernetes do Azure (AKS)
O provedor do Azure Key Vault for Secrets Store CSI Driver permite a integração de um Azure Key Vault como um armazenamento secreto com um cluster do Azure Kubernetes Service (AKS) por meio de um volume CSI.
Funcionalidades
- Monta segredos, chaves e certificados em um pod usando um volume CSI.
- Suporta volumes em linha CSI.
- Suporta a montagem de vários objetos de armazenamento de segredos como um único volume.
- Suporta portabilidade de pod com o
SecretProviderClass
CRD. - Suporta contêineres do Windows.
- Sincroniza com segredos do Kubernetes.
- Suporta autorotação de conteúdos montados e segredos sincronizados do Kubernetes.
Limitações
Um contêiner usando a montagem de volume do subPath não recebe atualizações secretas quando é girado. Para obter mais informações, consulte Limitações conhecidas do driver CSI do Secrets Store.
Pré-requisitos
- Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
- Verifique se a sua versão da CLI do Azure é 2.30.0 ou posterior. Se for uma versão anterior, instale a versão mais recente.
- Se você estiver restringindo a Entrada ao cluster, verifique se as portas 9808 e 8095 estão abertas.
- A versão mínima recomendada do Kubernetes é baseada na janela de suporte à versão contínua do Kubernetes. Certifique-se de que está a executar a versão N-2 ou posterior.
Criar um cluster AKS com o provedor do Azure Key Vault para suporte ao Driver CSI do Secrets Store
Crie um grupo de recursos do Azure usando o
az group create
comando.az group create --name myResourceGroup --location eastus2
Crie um cluster AKS com o provedor do Azure Key Vault para o recurso de Driver CSI do Secrets Store usando o
az aks create
comando com o--enable-addons azure-keyvault-secrets-provider
parâmetro. O complemento cria uma identidade gerenciada atribuída pelo usuário que você pode usar para autenticar no cofre de chaves. O exemplo a seguir cria um cluster AKS com o provedor do Azure Key Vault para o Driver CSI do Secrets Store habilitado.Nota
Se você quiser usar o ID de carga de trabalho do Microsoft Entra, também deverá usar os
--enable-oidc-issuer
parâmetros e--enable-workload-identity
, como no exemplo a seguir:az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keys
O comando anterior cria uma identidade gerenciada atribuída pelo usuário,
azureKeyvaultSecretsProvider
, para acessar recursos do Azure. O exemplo a seguir usa essa identidade para se conectar ao cofre de chaves que armazena os segredos, mas você também pode usar outros métodos de acesso de identidade. Anote as identidadesclientId
na saída...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Nota
Depois de ativar esse recurso, o AKS cria uma identidade gerenciada nomeada azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e a atribui automaticamente aos Conjuntos de Escala de Máquina Virtual (VMSS). Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é suportado para impedir a criação da identidade.
Atualizar um cluster AKS existente com o provedor do Azure Key Vault para suporte ao Driver CSI do Secrets Store
Atualize um cluster AKS existente com o provedor do Azure Key Vault para o recurso de Driver CSI do Secrets Store usando o
az aks enable-addons
comando e habilite o complementoazure-keyvault-secrets-provider
. O complemento cria uma identidade gerenciada atribuída pelo usuário que você pode usar para autenticar no cofre de chaves.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Nota
Depois de ativar esse recurso, o AKS cria uma identidade gerenciada nomeada azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e a atribui automaticamente aos Conjuntos de Escala de Máquina Virtual (VMSS). Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é suportado para impedir a criação da identidade.
Verifique o provedor do Azure Key Vault para a instalação do Driver CSI do Secrets Store
Obtenha as credenciais do cluster AKS usando o comando [
az aks get-credentials
[az-aks-get-credentials].az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Verifique se a instalação foi concluída usando o
kubectl get pods
comando, que lista todos os pods com ossecrets-store-csi-driver
rótulos esecrets-store-provider-azure
no namespace kube-system.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
Sua saída deve ser semelhante à saída de exemplo a seguir:
NAME READY STATUS RESTARTS AGE aks-secrets-store-csi-driver-4vpkj 3/3 Running 2 4m25s aks-secrets-store-csi-driver-ctjq6 3/3 Running 2 4m21s aks-secrets-store-csi-driver-tlvlq 3/3 Running 2 4m24s aks-secrets-store-provider-azure-5p4nb 1/1 Running 0 4m21s aks-secrets-store-provider-azure-6pqmv 1/1 Running 0 4m24s aks-secrets-store-provider-azure-f5qlm 1/1 Running 0 4m25s
Verifique se cada nó no pool de nós do cluster tem um pod de Driver CSI do Repositório de Segredos e um pod do Azure do Provedor de Repositório de Segredos em execução.
Criar ou usar um Cofre da Chave do Azure existente
Crie ou atualize um cofre de chaves com o controle de acesso baseado em função do Azure (Azure RBAC) habilitado usando o
az keyvault create
comando ou oaz keyvault update
comando com o--enable-rbac-authorization
sinalizador. O nome do cofre de chaves deve ser globalmente exclusivo. Para obter mais detalhes sobre modelos de permissão de cofre de chaves e RBAC do Azure, consulte Fornecer acesso a chaves, certificados e segredos do Cofre de Chaves com um controle de acesso baseado em função do Azure## Create a new Azure key vault az keyvault create --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization ## Update an existing Azure key vault az keyvault update --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization
Seu cofre de chaves pode armazenar chaves, segredos e certificados. Neste exemplo, use o
az keyvault secret set
comando para definir um segredo de texto simples chamadoExampleSecret
.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
Tome nota das seguintes propriedades para uso futuro:
- O nome do objeto secreto no cofre de chaves
- O tipo de objeto (segredo, chave ou certificado)
- O nome do recurso do cofre da chave
- A ID do locatário do Azure da assinatura
Próximos passos
Neste artigo, você aprendeu como usar o provedor do Cofre de Chaves do Azure para o Driver CSI do Repositório de Segredos em um cluster AKS. Agora você precisa fornecer uma identidade para acessar o Cofre da Chave do Azure. Para saber como, continue para o próximo artigo.
Azure Kubernetes Service