Usar o provedor do Azure Key Vault para o Driver CSI do Armazenamento de Segredos em um cluster do Serviço de Kubernetes do Azure (AKS)
O provedor do Azure Key Vault para o Driver CSI do Armazenamento de Segredos permite a integração de um Azure Key Vault como um repositório secreto com um cluster do Serviço de Kubernetes do Azure (AKS) por um volume de CSI.
Recursos
- Monta segredos, chaves e certificados em um pod usando um volume de CSI.
- Dá suporte a volumes em linha de CSI.
- Dá suporte à montagem de vários objetos de armazenamento de segredos como um único volume.
- Dá suporte à portabilidade de pods com o CRD
SecretProviderClass
. - Suporte aos contêineres do Windows.
- Faz a sincronização com os segredos do Kubernetes.
- Dá suporte à rotação automática de conteúdo montado e segredos do Kubernetes sincronizados.
Limitações
Um contêiner que usa montagem de volume de SubPath não recebe atualizações secretas quando gira. Para obter mais informações, confira Limitações conhecidas do Driver CSI do Repositório de Segredos.
Pré-requisitos
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Verifique se sua versão da CLI do Azure é 2.30.0 ou posterior. Se ela for uma versão anterior, instale a última versão.
- 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 baseia-se na janela de suporte deversão com rolagem do Kubernetes. Verifique se você está executando a versão N-2 ou posterior.
Criar um cluster do AKS com o provedor do Azure Key Vault para suporte ao Driver do CSI do Armazenamento de Segredos
Crie um grupo de recursos do Azure usando o comando
az group create
.az group create --name myResourceGroup --location eastus2
Crie um cluster AKS com o fornecedor Azure Key Vault para a capacidade do Secrets Store CSI Driver utilizando 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 se autenticar no seu cofre de chaves. O exemplo a seguir cria um cluster do AKS com o provedor do Azure Key Vault para o Driver de CSI do Repositório de Segredos habilitado.Observação
Se você quiser usar a ID de carga de trabalho do Microsoft Entra, também deverá usar os parâmetros
--enable-oidc-issuer
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 aclientId
da identidade na saída...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Observação
Depois de habilitar este recurso, o AKS cria uma identidade gerenciada nomeada azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e a atribui automaticamente aos Conjuntos de Dimensionamento de Máquinas Virtuais (VMSS). Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não há suporte para impedir a criação da identidade.
Atualizar um cluster do AKS existente com o provedor do Azure Key Vault para o suporte do Driver CSI do Armazenamento de Segredos
Atualize um cluster do AKS existente com o provedor do Azure Key Vault para a funcionalidade de Driver do CSI do Armazenamento de Segredos usando o comando
az aks enable-addons
e habilite o complementoazure-keyvault-secrets-provider
. O complemento cria uma identidade gerenciada atribuída pelo usuário que você pode usar para se autenticar no seu cofre de chaves.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Observação
Depois de habilitar este recurso, o AKS cria uma identidade gerenciada nomeada azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e a atribui automaticamente aos Conjuntos de Dimensionamento de Máquinas Virtuais (VMSS). Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não há suporte para impedir a criação da identidade.
Verificar o provedor do Azure Key Vault para a instalação do Driver do CSI do Armazenamento de Segredos
Obtenha as credenciais de cluster do 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 comando
kubectl get pods
, que lista todos os pods com os rótulossecrets-store-csi-driver
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)'
Seu resultado deve ser semelhante ao seguinte exemplo de saída:
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 do Driver de CSI do Repositório de Segredos e um pod do Azure do Provedor do Repositório de Segredos em execução.
Criar ou usar um Azure Key Vault existente
Crie ou atualize um cofre de chaves com o RBAC (controle de acesso baseado em função) do Azure habilitado usando o comando
az keyvault create
ou o comandoaz keyvault update
com o sinalizador--enable-rbac-authorization
. O nome do cofre de chaves deve ser globalmente exclusivo. Para obter mais detalhes sobre os modelos de permissão do cofre de chaves e o RBAC do Azure, consulte Fornecer acesso a chaves, certificados e segredos do Key Vault 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 comando
az keyvault secret set
para definir um segredo de texto sem formatação chamadoExampleSecret
.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
Anote as 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 seu recurso do cofre de chaves
- A ID do locatário do Azure da assinatura
Próximas etapas
Neste artigo, você aprendeu a usar o provedor do Azure Key Vault para o Driver do CSI do Armazenamento de Segredos com um cluster do AKS. Agora, você precisa fornecer uma identidade para acessar o Azure Key Vault. Para saber como, prossiga para o próximo artigo.
Azure Kubernetes Service