Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Key Vault provider para o Secrets Store CSI Driver permite a integração de um Azure Key Vault como um repositório de segredos com um cluster do Azure Kubernetes Service (AKS) através de um volume CSI.
Funcionalidades
- Monta segredos, chaves e certificados em um pod usando um volume CSI.
- Suporta os volumes em linha do 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 contentor que use um
ConfigMap
ouSecret
como montagem de volumesubPath
não é atualizado automaticamente quando o segredo é alterado. Esta é uma limitação do Kubernetes. Para que as alterações entrem em vigor, o aplicativo precisa recarregar o arquivo alterado observando as alterações no sistema de arquivos ou reiniciando o pod. Para obter mais informações, consulte Limitações conhecidas do driver CSI do Secrets Store. - O complemento cria uma identidade gerida nomeada
azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e a atribui automaticamente aos Conjuntos de Escalabilidade 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 é possível impedir a criação da identidade.
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.
Rede
- Se estiver usando clusters isolados de rede, é recomendável configurar o ponto de extremidade privado para acessar o Cofre da Chave do Azure.
- Se o cluster tiver o tipo
userDefinedRouting
de saída e usar um dispositivo de firewall que possa controlar o tráfego de saída com base em nomes de domínio, como o Firewall do Azure, verifique se as regras de rede de saída e os FQDNs necessários são permitidos. - Se você estiver restringindo a Entrada ao cluster, verifique se as portas 9808 e 8095 estão abertas.
Funções
- A identidade usada com o
SecretProviderClass
precisa ter permissão para acessarkey
oucertificate
tipos de objetos. - A identidade usada com o
SecretProviderClass
precisa terKey Vault Secrets User
para aceder aosecret
tipo de objeto.
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 a funcionalidade do Secrets Store CSI Driver, utilizando o comando
az aks create
com o parâmetro--enable-addons azure-keyvault-secrets-provider
. 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 Azure Key Vault como provedor do Secrets Store CSI Driver habilitado.Nota
Se pretender usar o ID de carga de trabalho do Microsoft Entra, deverá também usar os parâmetros
--enable-oidc-issuer
e--enable-workload-identity
, como no seguinte exemplo: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. Tome nota da identidadeclientId
na saída...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Nota
Depois de ativar este recurso, o AKS cria uma identidade gerida nomeada azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e atribui-a aos Conjuntos de Escala de Máquina Virtual (VMSS) automaticamente. Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é possível 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 este recurso, o AKS cria uma identidade gerida nomeada azurekeyvaultsecretsprovider-xxx
no grupo de recursos do nó e atribui-a aos Conjuntos de Escala de Máquina Virtual (VMSS) automaticamente. Você pode usar essa identidade gerenciada ou sua própria identidade gerenciada para acessar o cofre de chaves. Não é possível 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
az aks get-credentials
comando.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)'
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 do Secrets Store CSI Driver e um pod do Secrets Store Provider Azure a correr.
Criar ou usar um Cofre da Chave do Azure existente
Crie ou atualize um cofre de chaves com o controlo de acesso baseado em função do Azure (Azure RBAC) habilitado usando os comandos
az keyvault create
ouaz keyvault update
com o parâmetro--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 Forneça acesso às 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 de chaves
- O ID do inquilino 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