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


Настройка Key Vault для смены управляемых учетных данных в операторе Nexus

Оператор Azure Nexus использует секреты и сертификаты для управления безопасностью компонентов на платформе. Платформа Operator Nexus обрабатывает поворот этих секретов и сертификатов. По умолчанию Оператор Nexus сохраняет учетные данные в управляемом хранилище ключей. Чтобы сохранить повернутые учетные данные в собственном Key Vault, пользователь должен настроить Key Vault для экземпляра Nexus оператора Azure. После создания пользователь должен добавить назначение ролей в Хранилище ключей клиента, чтобы разрешить оператору Nexus Platform записывать обновленные учетные данные, а также связать Хранилище ключей клиента с ресурсом кластера Nexus.

Необходимые компоненты

  • Установка последней версии соответствующих расширений CLI
  • Получение идентификатора подписки клиента

Примечание.

Для любого количества кластеров можно использовать одно хранилище ключей.

Настройка управляемого удостоверения для Диспетчера кластеров

Начиная с API предварительной версии 2024-06-01-public-preview, управляемые удостоверения используются в диспетчере кластеров для записи для смены учетных данных в хранилище ключей. Удостоверение Диспетчера кластеров может быть назначено системой или назначаемое пользователем, и управлять их можно напрямую через API или с помощью ИНТЕРФЕЙСА командной строки.

В этих примерах описывается настройка управляемого удостоверения для диспетчера кластеров.

  • Создание или обновление диспетчера кластеров с помощью назначаемого системой удостоверения
        az networkcloud clustermanager create --name "clusterManagerName" --location "location" \
        --analytics-workspace-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
        --fabric-controller-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/fabricControllerName" \
        --managed-resource-group-configuration name="my-managed-rg" --tags key1="myvalue1" key2="myvalue2" --resource-group "resourceGroupName" --mi-system-assigned
  • Создание или обновление диспетчера кластеров с удостоверением, назначенным пользователем
        az networkcloud clustermanager create --name <Cluster Manager Name> --location <Location> \
        --analytics-workspace-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
        --fabric-controller-id "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedNetworkFabric/networkFabricControllers/fabricControllerName" \
        --managed-resource-group-configuration name="my-managed-rg" --tags key1="myvalue1" key2="myvalue2" \
        --resource-group <Resource Group Name> --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAI"
  • Добавление назначенного системой удостоверения в Cluster Manager
        az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> --mi-system-assigned
  • Добавление назначаемого пользователем удостоверения в Cluster Manager
        az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> \
        --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAI"

Получение идентификатора субъекта для управляемого удостоверения

После настройки управляемого удостоверения используйте интерфейс командной строки для просмотра удостоверения и связанных данных идентификатора субъекта в диспетчере кластеров.

Пример:

az networkcloud clustermanager show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Manager Resource Group Name>/providers/Microsoft.NetworkCloud/clusterManagers/<Cluster Manager Name>

Пример удостоверения, назначаемого системой:

    "identity": {
        "principalId": "2cb564c1-b4e5-4c71-bbc1-6ae259aa5f87",
        "tenantId": "72f988bf-86f1-41af-91ab-2d7cd011db47",
        "type": "SystemAssigned"
    },

Пример удостоверения, назначаемого пользователем:

    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
                "clientId": "e67dd610-99cf-4853-9fa0-d236b214e984",
                "principalId": "8e6d23d6-bb6b-4cf3-a00f-4cd640ab1a24"
            }
        }
    },

Запись обновлений учетных данных в Хранилище ключей клиента в кластере Nexus

  • Назначьте роль службы записи хранилища ключей Nexus. Убедитесь, что управление доступом на основе ролей Azure выбрано в качестве модели разрешений для хранилища ключей в представлении конфигурации Access. Затем в представлении контроль доступа выберите, чтобы добавить назначение роли.
Имя роли Идентификатор определения роли
Роль службы записи хранилища ключей Nexus (предварительная версия) 44f0a1a8-6fea-4b35-980a-8ff50c487c97

Пример:

az role assignment create --assignee <Managed Identity Principal Id> --role 44f0a1a8-6fea-4b35-980a-8ff50c487c97 --scope /subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.KeyVault/vaults/<Key Vault Name>
  • Пользователь связывает Customer Key Vault с кластером Operator Nexus. Идентификатор ресурса хранилища ключей должен быть настроен в кластере и включен для хранения секретов кластера.

Пример:

# Set and enable Customer Key Vault on Nexus cluster
az networkcloud cluster update --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --secret-archive "{key-vault-id:<Key Vault Resource ID>,use-key-vault:true}"

# Show Customer Key Vault setting (secretArchive) on the Nexus cluster
az networkcloud cluster show --ids /subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Nexus Cluster Name> --query secretArchive

Дополнительные сведения:

az networkcloud cluster update --secret-archive ?? --help

Добавление разрешения на удостоверение, назначаемое пользователем

При использовании удостоверения, назначаемого пользователем, добавьте следующее назначение роли в ресурс UAI:

  1. Откройте портал Azure и найдите назначаемое пользователем удостоверение.
  2. В разделе управления доступом (IAM) нажмите кнопку "Добавить назначение ролей".
  3. Выберите роль: оператор управляемых удостоверений. (См. разрешения, которые роль предоставляет оператору managed-identity-.
  4. Назначение доступа: пользователю, группе или субъекту-службе.
  5. Выберите участника: приложение AFOI-NC-MGMT-PME-PROD.
  6. Проверьте и назначьте.