Поделиться через


Руководство. Использование поставщика 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

  1. Создайте группу ресурсов для этого руководства.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Создайте кластер AKS со следующей командой или ознакомьтесь с руководством. Это кластер, в котором мы создадим подключение службы, определение pod и развертывание примера приложения в.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Подключитесь к кластеру с помощью следующей команды.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Создайте Azure Key Vault со следующей командой или ознакомьтесь с руководством. Это целевая служба, подключенная к кластеру AKS, и драйвер CSI синхронизирует секреты из.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Создайте секрет в Key Vault с помощью следующей команды.

    az keyvault secret set \
        --vault-name MyKeyVault \
        --name ExampleSecret \
        --value MyAKSExampleSecret
    

Создание подключения службы в AKS с помощью соединителя службы (предварительная версия)

Создайте подключение службы между кластером AKS и Azure Key Vault с помощью портал Azure или Azure CLI.

  1. Откройте службу Kubernetes в портал Azure и выберите соединитель службы в меню слева.

  2. Выберите "Создать " и заполните параметры, как показано ниже. Оставьте другие параметры значениями по умолчанию.

    Параметр Выбранный вариант Description
    Пространство имен Kubernetes default Пространство имен, в котором требуется подключение в кластере.
    тип услуги; Key Vault (включение CSI) Выберите Key Vault в качестве целевого типа службы и проверьте параметр, чтобы включить CSI.
    Имя подключения keyvault_conn Используйте имя подключения, предоставленное соединителем службы, или выберите собственное имя подключения.
    Подписка <MySubscription> Подписка для целевой службы Azure Key Vault.
    Key vault <MyKeyVault> Целевое хранилище ключей, к которому требуется подключиться.
    Тип клиента Python Язык кода или платформа, используемая для подключения к целевой службе.
  3. После создания подключения на странице соединителя служб отображаются сведения о новом подключении.

    Снимок экрана: портал Azure, просмотр ресурсов Kubernetes, созданных соединителем службы.

Проверка подключения

  1. Клонируйте репозиторий примера.

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Перейдите в пример папки репозитория для Azure Key Vault:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. Замените заполнители в 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
  4. Разверните ресурсы Kubernetes в кластере kubectl apply с помощью команды. Установите kubectl локально с помощью команды az aks install-cli , если она не установлена.

    1. SecretProviderClass Разверните CRD.
    kubectl apply -f secret_provider_class.yaml
    
    1. podРазверните . Команда создает pod с именем sc-demo-keyvault-csi в пространстве имен по умолчанию кластера AKS.
    kubectl apply -f pod.yaml
    
  5. Проверьте, успешно ли развертывание выполнено, просматривая модуль pod с kubectlпомощью .

    kubectl get pod/sc-demo-keyvault-csi
    
  6. После запуска модуля будет доступно подключенное содержимое по пути к тому, указанному в 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 подключаться к службам.