Руководство. Использование поставщика Azure Key Vault для драйвера CSI хранилища секретов в кластере Служба Azure Kubernetes (AKS)
Узнайте, как подключиться к Azure Key Vault с помощью драйвера CSI в кластере Служба Azure Kubernetes (AKS) с помощью соединителя службы. В этом руководстве выполняются следующие задачи:
- Создайте кластер AKS и Azure Key Vault.
- Создайте подключение между кластером AKS и Azure Key Vault с помощью соединителя службы.
SecretProviderClass
Создайте CRD иpod
поставщик CSI для проверки подключения.- Очистите ресурсы.
Внимание
Подключение к службе в AKS в настоящее время находится в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.
Предупреждение
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как управляемые удостоверения, не являются жизнеспособными.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Установите Azure CLI и войдите в Azure CLI с помощью команды az login .
- Установите Dockerи kubectl, чтобы управлять образом контейнера и ресурсами Kubernetes.
- Базовое представление о контейнере и AKS. Начало работы с подготовкой приложения для AKS.
Создание ресурсов Azure
Создайте группу ресурсов для этого руководства.
az group create \ --name MyResourceGroup \ --location eastus
Создайте кластер AKS со следующей командой или ознакомьтесь с руководством. Это кластер, в котором мы создадим подключение службы, определение pod и развертывание примера приложения в.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
Подключитесь к кластеру с помощью следующей команды.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Создайте Azure Key Vault со следующей командой или ознакомьтесь с руководством. Это целевая служба, подключенная к кластеру AKS, и драйвер CSI синхронизирует секреты из.
az keyvault create \ --resource-group MyResourceGroup \ --name MyKeyVault \ --location EastUS
Создайте секрет в Key Vault с помощью следующей команды.
az keyvault secret set \ --vault-name MyKeyVault \ --name ExampleSecret \ --value MyAKSExampleSecret
Создание подключения службы в AKS с помощью соединителя службы (предварительная версия)
Создайте подключение службы между кластером AKS и Azure Key Vault с помощью портал Azure или Azure CLI.
Откройте службу Kubernetes в портал Azure и выберите соединитель службы в меню слева.
Выберите "Создать " и заполните параметры, как показано ниже. Оставьте другие параметры значениями по умолчанию.
Параметр Выбранный вариант Description Пространство имен Kubernetes default Пространство имен, в котором требуется подключение в кластере. тип услуги; Key Vault (включение CSI) Выберите Key Vault в качестве целевого типа службы и проверьте параметр, чтобы включить CSI. Имя подключения keyvault_conn Используйте имя подключения, предоставленное соединителем службы, или выберите собственное имя подключения. Подписка <MySubscription>
Подписка для целевой службы Azure Key Vault. Key vault <MyKeyVault>
Целевое хранилище ключей, к которому требуется подключиться. Тип клиента Python Язык кода или платформа, используемая для подключения к целевой службе. После создания подключения на странице соединителя служб отображаются сведения о новом подключении.
Проверка подключения
Клонируйте репозиторий примера.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Перейдите в пример папки репозитория для Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
Замените заполнители в
secret_provider_class.yaml
файле в папкеazure-keyvault-csi-provider
.- Замените
<AZURE_KEYVAULT_NAME>
именем созданного и подключенного хранилища ключей. Вы можете получить значение из портал Azure соединителя службы. - Замените
<AZURE_KEYVAULT_TENANTID>
идентификатором клиента хранилища ключей. Вы можете получить значение из портал Azure соединителя службы. - Замените
<AZURE_KEYVAULT_CLIENTID>
идентификатором клиента удостоверения надстройкиazureKeyvaultSecretsProvider
. Вы можете получить значение из портал Azure соединителя службы. - Замените
<KEYVAULT_SECRET_NAME>
на созданное имя секрета хранилища ключей, напримерExampleSecret
- Замените
Разверните ресурсы Kubernetes в кластере
kubectl apply
с помощью команды. Установитеkubectl
локально с помощью команды az aks install-cli , если она не установлена.SecretProviderClass
Разверните CRD.
kubectl apply -f secret_provider_class.yaml
pod
Разверните . Команда создает pod с именемsc-demo-keyvault-csi
в пространстве имен по умолчанию кластера AKS.
kubectl apply -f pod.yaml
Проверьте, успешно ли развертывание выполнено, просматривая модуль pod с
kubectl
помощью .kubectl get pod/sc-demo-keyvault-csi
После запуска модуля будет доступно подключенное содержимое по пути к тому, указанному в YAML развертывания. Используйте следующие команды, чтобы проверить секреты и распечатать секрет теста.
- Отображение секретов, содержащихся в хранилище секретов, с помощью следующей команды.
kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
- Отображение секрета в хранилище с помощью следующей команды. В этом примере команды показан секрет
ExampleSecret
теста.
kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
Очистка ресурсов
Если вам не нужно повторно использовать ресурсы, созданные в этом руководстве, удалите все ресурсы, созданные путем удаления группы ресурсов.
az group delete \
--resource-group MyResourceGroup
Следующие шаги
Ознакомьтесь со следующими статьями, чтобы узнать больше о концепциях соединителя служб и о том, как это помогает AKS подключаться к службам.