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.
Aprenda a conectarse a Azure Key Vault mediante el controlador CSI en un clúster de Azure Kubernetes Service (AKS) con la ayuda de Conector de servicio. En este tutorial, va a completar las siguientes tareas:
- Creación de un clúster de AKS y una instancia de Azure Key Vault.
- Creación de una conexión entre el clúster de AKS y Azure Key Vault con Conector de servicio.
- Creación de un CRD de
SecretProviderClassy unpodque consuma el proveedor de CSI para probar la conexión. - Limpieza de recursos.
Advertencia
Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación descrito en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Instale la CLI de Azure e inicie sesión en ella mediante el comando az login .
- Instale Docker y kubectl para administrar la imagen de contenedor y los recursos de Kubernetes.
- Conocimientos básicos sobre el contenedor y AKS. Empiece por preparar una aplicación para AKS.
Creación de recursos de Azure
Cree un grupo de recursos para este tutorial.
az group create \ --name MyResourceGroup \ --location eastusCree un clúster de AKS con el comando siguiente o haga referencia al tutorial. Este clúster es donde creamos la conexión de servicio, la definición del pod y donde se implementa la aplicación de ejemplo.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Conéctese al clúster con el comando siguiente.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCree una instancia de Azure Key Vault con el comando siguiente o haga referencia al tutorial. Este servicio de destino está conectado al clúster de AKS y es el servicio desde el que el controlador CSI sincroniza los secretos.
az keyvault create \ --resource-group MyResourceGroup \ --name MyKeyVault \ --location EastUSCree un secreto en Key Vault con el comando siguiente.
az keyvault secret set \ --vault-name MyKeyVault \ --name ExampleSecret \ --value MyAKSExampleSecret
Crear una conexión de servicio en AKS con conector de servicio
Cree una conexión de servicio entre un clúster de AKS y una instancia de Azure Key Vault en Azure Portal o la CLI de Azure.
Abra el servicio Kubernetes en Azure Portal y seleccioneService Connector en el menú de la izquierda.
Seleccione Crear y rellene la siguiente configuración. Deje las otras opciones de configuración con sus valores predeterminados.
Configuración Elección Descripción Espacio de nombres de Kubernetes default Espacio de nombres donde necesita la conexión en el clúster. Tipo de servicio Key Vault (habilitar CSI) Elija Key Vault como tipo de servicio de destino y active la opción habilitar CSI . Nombre de conexión keyvault_conn Use el nombre de conexión proporcionado por Service Connector o elija su propio nombre de conexión. Suscripción <MySubscription>Suscripción para el servicio de destino de Azure Key Vault. Almacén de claves <MyKeyVault>Almacén de claves de destino al que quiere conectarse. Tipo de cliente Python Marco o lenguaje de código que se usa para conectarse al servicio de destino. Una vez creada la conexión, la página Service Connector muestra información sobre la nueva conexión.
Comprobación de la conexión
Clone el repositorio de ejemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.gitVaya a la carpeta de ejemplo del repositorio para Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-providerReemplace los marcadores de posición del archivo
secret_provider_class.yamlen la carpetaazure-keyvault-csi-provider.- Reemplace
<AZURE_KEYVAULT_NAME>por el nombre del almacén de claves que hemos creado y conectado. Puede obtener el valor en el portal de Azure del conector de servicio. - Reemplace
<AZURE_KEYVAULT_TENANTID>por el id. de inquilino del almacén de claves. Puede obtener el valor en el portal de Azure del conector de servicio. - Reemplace
<AZURE_KEYVAULT_CLIENTID>por el id. de cliente de identidad del complementoazureKeyvaultSecretsProvider. Puede obtener el valor en el portal de Azure para Service Connector. - Reemplace
<KEYVAULT_SECRET_NAME>por el nombre del secreto del almacén de claves que hemos creado, por ejemplo,ExampleSecret.
- Reemplace
Implemente los recursos de Kubernetes en el clúster con el comando
kubectl apply. Instalekubectllocalmente mediante el comando az aks install-cli si no está instalado.Implemente la
SecretProviderClassdefinición de recursos personalizados (CRD).kubectl apply -f secret_provider_class.yamlImplemente el
pod. El comando crea un pod denominadosc-demo-keyvault-csien el espacio de nombres predeterminado del clúster de AKS.kubectl apply -f pod.yaml
Visualice el pod con
kubectlpara comprobar que la implementación se realiza correctamente.kubectl get pod/sc-demo-keyvault-csiUna vez que se inicia el pod, el contenido montado en la ruta del volumen especificada en el archivo YAML de implementación estará disponible. Use los siguientes comandos para validar los secretos e imprimir un secreto de prueba.
Muestre los secretos contenidos en el almacén de secretos mediante el comando siguiente.
kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/Muestre un secreto en el almacén mediante el comando siguiente. Este comando de ejemplo muestra el secreto
ExampleSecretde prueba.kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
Limpieza de recursos
Si no necesita volver a usar los recursos que creó en este tutorial, elimine todos los recursos que creó mediante la eliminación del grupo de recursos.
az group delete \
--resource-group MyResourceGroup
Pasos siguientes
Lea los artículos siguientes para obtener más información sobre los conceptos de Service Connector y cómo ayuda a AKS a conectarse a los servicios.