Использование поставщика Azure Key Vault для драйвера CSI хранилища секретов в кластере Служба Azure Kubernetes (AKS)
Поставщик Azure Key Vault для драйвера CSI хранилища секретов позволяет интегрировать Azure Key Vault в качестве хранилища секретов с кластером Служба Azure Kubernetes (AKS) через том CSI.
Функции
- Подключает секреты, ключи и сертификаты к pod с помощью тома CSI.
- Поддерживает встроенные тома CSI.
- Поддерживает подключение нескольких объектов хранилища секретов в виде одного тома.
- Поддерживает переносимость pod с помощью
SecretProviderClass
CRD. - Поддерживает контейнеры Windows.
- Синхронизируется с секретами Kubernetes.
- Поддерживает авторотацию подключенного содержимого и синхронизированных секретов Kubernetes.
Ограничения
Контейнер, использующий подключение тома subPath, не получает секретных обновлений при повороте. Дополнительные сведения см. в разделе "Известные ограничения для хранилища секретов CSI Driver".
Необходимые компоненты
- Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
- Убедитесь, что версия Azure CLI — 2.30.0 или более поздняя. Если вы используете более раннюю версию, установите последний выпуск.
- Если вы ограничиваете входящий трафик в кластер, убедитесь, что открыты порты 9808 и 8095 .
- Минимальная рекомендуемая версия Kubernetes определяется скользящим окном поддержки версий Kubernetes. Убедитесь, что вы используете версию N-2 или более позднюю.
Создание кластера AKS с помощью поставщика Azure Key Vault для поддержки драйвера CSI хранилища секретов
Создайте группу ресурсов Azure с помощью
az group create
команды.az group create --name myResourceGroup --location eastus2
Создайте кластер AKS с поставщиком Azure Key Vault для возможности драйвера CSI хранилища секретов с помощью команды с параметром
az aks create
--enable-addons azure-keyvault-secrets-provider
. Надстройка создает управляемое удостоверение, назначаемое пользователем, можно использовать для проверки подлинности в хранилище ключей. В следующем примере создается кластер AKS с включенным поставщиком Azure Key Vault для драйвера CSI хранилища секретов.Примечание.
Если вы хотите использовать Идентификация рабочей нагрузки Microsoft Entra, необходимо также использовать
--enable-oidc-issuer
параметры и--enable-workload-identity
параметры, например в следующем примере: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
Предыдущая команда создает управляемое удостоверение, назначаемое пользователем,
azureKeyvaultSecretsProvider
для доступа к ресурсам Azure. В следующем примере используется это удостоверение для подключения к хранилищу ключей, в которой хранятся секреты, но также можно использовать другие методы доступа к удостоверениям. Запишите идентификаторclientId
в выходных данных...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
Примечание.
После включения этой функции AKS создает управляемое удостоверение с именем azurekeyvaultsecretsprovider-xxx
в группе ресурсов узла и автоматически назначает его Масштабируемые наборы виртуальных машин (VMSS). Это управляемое удостоверение или собственное управляемое удостоверение можно использовать для доступа к хранилищу ключей. Он не поддерживается, чтобы предотвратить создание удостоверения.
Обновление существующего кластера AKS с помощью поставщика Azure Key Vault для поддержки драйвера CSI хранилища секретов
Обновите существующий кластер AKS с помощью поставщика Azure Key Vault для возможности драйвера CSI хранилища секретов с помощью
az aks enable-addons
команды и включите надстройкуazure-keyvault-secrets-provider
. Надстройка создает управляемое удостоверение, назначаемое пользователем, можно использовать для проверки подлинности в хранилище ключей.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Примечание.
После включения этой функции AKS создает управляемое удостоверение с именем azurekeyvaultsecretsprovider-xxx
в группе ресурсов узла и автоматически назначает его Масштабируемые наборы виртуальных машин (VMSS). Это управляемое удостоверение или собственное управляемое удостоверение можно использовать для доступа к хранилищу ключей. Он не поддерживается, чтобы предотвратить создание удостоверения.
Проверка установки драйвера CSI хранилища секретов для поставщика Azure Key Vault
Получите учетные данные кластера AKS с помощью команды [
az aks get-credentials
][az-aks-get-credentials].az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Убедитесь, что установка завершена с помощью
kubectl get pods
команды, в которой перечислены все модули pod сsecrets-store-csi-driver
метками иsecrets-store-provider-azure
метками в пространстве имен kube-system.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
Выходные данные должны выглядеть примерно так:
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
Убедитесь, что каждый узел в пуле узлов кластера содержит pod драйвера CSI Хранилища секретов и модуль pod Поставщика хранилища секретов Azure.
Создание или использование существующей службы Azure Key Vault
Создайте или обновите хранилище ключей с помощью управления доступом на основе ролей Azure (Azure RBAC) с помощью
az keyvault create
команды илиaz keyvault update
команды с флагом--enable-rbac-authorization
. Имя хранилища ключей должно быть глобально уникальным. Дополнительные сведения о моделях разрешений хранилища ключей и Azure RBAC см. в статье "Предоставление доступа к ключам Key Vault, сертификатам и секретам с помощью управления доступом на основе ролей 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
Хранилище ключей может хранить ключи, секреты и сертификаты. В этом примере используйте
az keyvault secret set
команду для задания открытогоExampleSecret
текстового секрета.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
Запишите следующие свойства для дальнейшего использования:
- Имя объекта секрета в хранилище ключей
- Тип объекта (секрет, ключ или сертификат)
- Имя ресурса хранилища ключей
- Идентификатор клиента Azure подписки
Следующие шаги
Из этой статьи вы узнали, как использовать поставщик Azure Key Vault для драйвера CSI Хранилища секретов в кластере AKS. Теперь необходимо предоставить удостоверение для доступа к Azure Key Vault. Чтобы узнать, как, перейдите к следующей статье.
Azure Kubernetes Service