Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El proveedor de Azure Key Vault para el controlador CSI de almacén de secretos permite la integración de Azure Key Vault como almacén de secretos con un clúster de Azure Kubernetes Service (AKS) mediante un volumen CSI.
Características
- Monta secretos, claves y certificados en un pod mediante un volumen CSI.
- Admite volúmenes CSI en línea.
- Admite el montaje de varios objetos de almacenamiento de secretos como un solo volumen.
- Admite la portabilidad de pods con el CRD
SecretProviderClass. - Admite contenedores de Windows.
- Se sincroniza con secretos de Kubernetes.
- Admite la rotación automática de contenido montado y secretos de Kubernetes sincronizados.
Limitaciones
- Un contenedor que usa
ConfigMapoSecretcomo montaje de volumensubPathno recibe actualizaciones automatizadas cuando se gira el secreto. Se trata de una limitación de Kubernetes. Para que los cambios surtan efecto, la aplicación debe volver a cargar el archivo modificado viendo los cambios en el sistema de archivos o reiniciando el pod. Para obtener más información, consulte Limitaciones conocidas del controlador CSI del almacén de secretos. - El complemento crea una identidad administrada denominada
azurekeyvaultsecretsprovider-xxxen el grupo de recursos del nodo y la asigna automáticamente a virtual Machine Scale Sets (VMSS). Puede usar esta identidad administrada o su propia identidad administrada para acceder al almacén de claves. No se admite para evitar la creación de la identidad.
Requisitos previos
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Compruebe que la versión de la CLI de Azure es 2.30.0 o posterior. Si es una versión anterior, instale la más reciente.
Red
- Si usa clústeres aislados de red, se recomienda configurar el punto de conexión privado para acceder a Azure Key Vault.
- Si el clúster tiene un tipo
userDefinedRoutingde salida y usa un dispositivo de firewall que puede controlar el tráfico saliente en función de los nombres de dominio, como Azure Firewall, asegúrese de que se permiten las reglas de red de salida y los FQDN necesarios. - Si restringe la entrada al clúster, asegúrese de que los puertos 9808 y 8095 estén abiertos.
Funciones
- La identidad utilizada con el
SecretProviderClassnecesita tenerKey Vault Certificate Userpara acceder akeyo acertificatelos tipos de objeto. - La identidad usada con el
SecretProviderClassnecesita tenerKey Vault Secrets Userpara acceder alsecrettipo de objeto.
Creación de un clúster de AKS con el proveedor de Azure Key Vault para la compatibilidad con el controlador CSI de almacén de secretos
Cree un grupo de recursos de Azure con el comando
az group create.az group create --name myResourceGroup --location eastus2Cree un clúster de AKS con la funcionalidad del proveedor de Azure Key Vault para el controlador CSI del almacén de secretos mediante el comando
az aks createcon el parámetro--enable-addons azure-keyvault-secrets-provider. El complemento crea una identidad administrada asignada por el usuario, que se puede usar para autenticarse en el almacén de claves. En el ejemplo siguiente se crea un clúster de AKS con el proveedor de Azure Key Vault para el controlador CSI del almacén de secretos habilitado.Nota
Si desea usar la identidad de carga de trabajo de Microsoft Entra, también debe usar los
--enable-oidc-issuerparámetros y--enable-workload-identity, como en el ejemplo siguiente:az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity --generate-ssh-keysaz aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keysEl comando anterior crea una identidad administrada asignada por el usuario,
azureKeyvaultSecretsProvider, para acceder a los recursos de Azure. En este ejemplo se usa esta identidad para conectar con el almacén de claves donde se almacenan los secretos. No obstante, también puede usar otros métodos de acceso de identidad. Tome nota delclientIdde la identidad en la salida...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Nota
Después de habilitar esta característica, AKS crea una identidad administrada llamada azurekeyvaultsecretsprovider-xxx en el grupo de recursos del nodo y la asigna automáticamente a Virtual Machine Scale Sets (VMSS). Puede usar esta identidad administrada o su propia identidad administrada para acceder al almacén de claves. No se admite para evitar la creación de la identidad.
Actualización de un clúster de AKS existente con el proveedor de Azure Key Vault para la compatibilidad con el controlador CSI de almacén de secretos
Actualice un clúster de AKS existente con la funcionalidad del proveedor de Azure Key Vault para el controlador CSI de almacén de secretos mediante el comando
az aks enable-addonsy habilite el complementoazure-keyvault-secrets-provider. El complemento crea una identidad administrada asignada por el usuario, que se puede usar para autenticarse en el almacén de claves.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Nota
Después de habilitar esta característica, AKS crea una identidad administrada llamada azurekeyvaultsecretsprovider-xxx en el grupo de recursos del nodo y la asigna automáticamente a Virtual Machine Scale Sets (VMSS). Puede usar esta identidad administrada o su propia identidad administrada para acceder al almacén de claves. No se admite para evitar la creación de la identidad.
Comprobación de la instalación del proveedor de Azure Key Vault para el controlador CSI de almacén de secretos
Obtenga las credenciales del clúster de AKS mediante el comando
az aks get-credentials.az aks get-credentials --name myAKSCluster --resource-group myResourceGroupCompruebe que la instalación ha finalizado mediante el comando
kubectl get pods, que enumera todos los pods con las etiquetassecrets-store-csi-driverysecrets-store-provider-azureen el espacio de nombres kube-system.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'El resultado debería ser similar al ejemplo siguiente:
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 4m25sAsegúrese de que cada nodo del grupo de nodos de clúster tenga un pod del controlador CSI del almacén de secretos y un pod de Azure del proveedor de almacén de secretos ejecutándose.
Creación o uso de una instancia de Azure Key Vault
Cree o actualice un almacén de claves con el control de acceso basado en roles de Azure (Azure RBAC) habilitado mediante el comando
az keyvault createo el comandoaz keyvault updatecon la marca--enable-rbac-authorization. El nombre del almacén de claves debe ser único globalmente. Para obtener más información sobre los modelos de permisos del almacén de claves y Azure RBAC, consulte Acceso a las claves, los certificados y los secretos de Key Vault con un control de acceso basado en rol de 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 --enable-rbac-authorizationEl almacén de claves puede almacenar claves, secretos y certificados. En este ejemplo, use el comando
az keyvault secret setpara establecer un secreto de texto sin formato denominadoExampleSecret.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecretTome nota de las siguientes propiedades, ya que las usará más adelante:
- Nombre del objeto secreto en el almacén de claves
- Tipo de objeto (secreto, clave o certificado)
- Nombre del recurso del almacén de claves
- Identificador de inquilino de Azure de la suscripción
Pasos siguientes
En este artículo, ha aprendido a usar el proveedor de Azure Key Vault para el controlador CSI de almacén de secretos con un clúster de AKS. Ahora debe proporcionar una identidad para acceder a Azure Key Vault. Para saber cómo, avance al siguiente artículo.