Включение безопасных параметров в операциях Интернета вещей Azure
Безопасные параметры для операций Интернета вещей Azure включают настройку управления секретами и назначаемое пользователем управляемое удостоверение для облачных подключений; например, сервер OPC UA или конечные точки потока данных.
В этой статье приведены инструкции по включению безопасных параметров, если вы этого не сделали во время первоначального развертывания.
Необходимые компоненты
Экземпляр операций Интернета вещей Azure, развернутый с параметрами теста. Например, вы выбрали параметры тестирования при выполнении инструкций по развертыванию операций Интернета вещей Azure в кластере Kubernetes с поддержкой Arc.
Azure CLI, установленный на компьютере разработки. Для этого сценария требуется Azure CLI версии 2.53.0 или более поздней. Используйте
az --version
для проверки версии иaz upgrade
обновления при необходимости. Дополнительные сведения см. в статье "Установка Azure CLI".Последняя версия расширения connectedk8s для Azure CLI. Используйте следующую команду, чтобы добавить расширение или обновить его до последней версии:
az extension add --upgrade --name connectedk8s
Расширение операций Интернета вещей Azure для Azure CLI. Используйте следующую команду, чтобы добавить расширение или обновить его до последней версии:
az extension add --upgrade --name azure-iot-ops
Включение кластера для безопасных параметров
Чтобы включить синхронизацию секретов для экземпляра операций Интернета вещей Azure, кластер должен быть включен в качестве издателя OIDC и федерации удостоверений рабочей нагрузки. Эта конфигурация необходима для синхронизации секретов из хранилища ключей Azure и хранения их на границе как секреты Kubernetes.
Для кластеров Служба Azure Kubernetes (AKS) функция издателя OIDC и удостоверений рабочей нагрузки может быть включена только во время создания кластера. Для кластеров в AKS Edge Essentials автоматический скрипт включает эти функции по умолчанию. Для кластеров AKS в Локальной среде Azure выполните действия по развертыванию и настройке удостоверения рабочей нагрузки в кластере AKS, включенном кластером Azure Arc, чтобы создать новый кластер, если у вас нет необходимых функций.
Для кластеров k3s в Kubernetes можно обновить существующий кластер. Чтобы включить и настроить эти функции, выполните следующие действия.
Обновите кластер, чтобы включить издателя OIDC и удостоверение рабочей нагрузки.
az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
Если вы включили функции издателя OIDC и удостоверений рабочей нагрузки при создании кластера, вам не нужно снова выполнить предыдущую команду. Используйте следующую команду, чтобы проверить состояние издателя OIDC и функций удостоверений рабочей нагрузки для кластера:
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
Получите URL-адрес издателя кластера.
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Запишите выходные данные этой команды, которые будут использоваться в следующих шагах.
Создайте файл конфигурации k3s:
sudo nano /etc/rancher/k3s/config.yaml
Добавьте в файл следующее содержимое
config.yaml
, заменив<SERVICE_ACCOUNT_ISSUER>
заполнитель URL-адресом издателя кластера, который вы записали ранее:kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Сохраните файл и закройте редактор nano.
Перезапустите службу k3s:
sudo systemctl restart k3s
Настройка управления секретами
Управление секретами для операций Интернета вещей Azure использует расширение Secret Store для синхронизации секретов из хранилища ключей Azure и хранения их в пограничном режиме как секреты Kubernetes. Для расширения Secret Store требуется управляемое удостоверение, назначаемое пользователем, с доступом к хранилищу ключей Azure, в котором хранятся секреты. Дополнительные сведения см. в статье "Что такое управляемые удостоверения для ресурсов Azure?".
Чтобы настроить управление секретами, выполните следующие действия.
Создайте хранилище ключей Azure, используемое для хранения секретов, и предоставьте учетным записям пользователя разрешения на управление секретами с
Key Vault Secrets Officer
помощью роли.Создайте управляемое удостоверение , назначаемое пользователем, для расширения Secret Store.
Используйте команду az iot ops secretsync, чтобы настроить экземпляр Операций Интернета вещей Azure для синхронизации секретов. Команда:
- Создает учетные данные федеративного удостоверения с помощью управляемого удостоверения, назначаемого пользователем.
- Добавляет назначение роли в управляемое удостоверение, назначаемое пользователем, для доступа к хранилищу ключей Azure.
- Добавляет минимальный класс поставщика секретов, связанный с экземпляром Операций Интернета вещей Azure.
# Variable block AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>" RESOURCE_GROUP="<RESOURCE_GROUP>" USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>" KEYVAULT_NAME="<KEYVAULT_NAME>" #Get the resource ID of the user-assigned managed identity USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Get the resource ID of the key vault KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Enable secret synchronization az iot ops secretsync enable --instance $AIO_INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \ --kv-resource-id $KEYVAULT_RESOURCE_ID
Теперь, когда настройка синхронизации секретов завершена, см. раздел "Управление секретами для развертывания операций Интернета вещей Azure", чтобы узнать, как использовать секреты с операциями Интернета вещей Azure.
Настройка управляемого удостоверения, назначаемого пользователем для облачных подключений
Некоторые компоненты операций Интернета вещей Azure, такие как конечные точки потока данных, используют управляемое удостоверение, назначаемое пользователем, для облачных подключений. Рекомендуется использовать отдельное удостоверение от используемого для настройки управления секретами.
Создайте управляемое удостоверение , назначаемое пользователем, которое используется для облачных подключений.
Примечание.
Вам потребуется предоставить удостоверению разрешение на любой облачный ресурс, для которого будет использоваться управляемое удостоверение.
Используйте команду az iot ops identity assign, чтобы назначить удостоверение экземпляру Операций Интернета вещей Azure. Эта команда также создает федеративные учетные данные удостоверения с помощью издателя OIDC указанного подключенного кластера и учетной записи службы операций Интернета вещей Azure.
# Variable block AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>" RESOURCE_GROUP="<RESOURCE_GROUP>" USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>" #Get the resource ID of the user-assigned managed identity USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Assign the identity to the Azure IoT Operations instance az iot ops identity assign --name $AIO_INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
Теперь вы можете использовать это управляемое удостоверение в конечных точках потока данных для облачных подключений.