Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Поставщик Azure Key Vault для драйвера CSI хранилища секретов позволяет интегрировать Azure Key Vault как хранилище секретов с кластером Azure Kubernetes Service (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 для драйвера CSI Хранилища секретов.Примечание.
Если вы хотите использовать Microsoft Entra Workload ID, необходимо также использовать параметры
--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
в группе ресурсов узла AKS и автоматически назначает его наборам виртуальных машин с автоматическим масштабированием (VMSS). Это управляемое удостоверение или собственное управляемое удостоверение можно использовать для доступа к хранилищу ключей. Предотвращение создания удостоверения не поддерживается.
Обновление существующего кластера AKS с поддержкой драйвера CSI для хранилища секретов с помощью провайдера Azure Key Vault
Обновите существующий кластер 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
, которая перечисляет все поды с метками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