你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure IoT 操作中启用安全设置
Azure IoT 操作的安全设置包括设置机密管理和用于云连接的用户分配的托管标识,例如 OPC UA 服务器或数据流终结点。
如果你在初始部署期间没有启用安全设置,则可参阅本文提供的有关如何启用安全设置的说明。
先决条件
使用测试设置部署的 Azure IoT 操作实例。 例如,按照将 Azure IoT 操作部署到已启用 Arc 的 Kubernetes 群集中的说明,选择“测试设置”。
已在开发计算机上安装的 Azure CLI。 此场景需要 Azure CLI 2.64.0 或更高版本。 如有必要,请使用
az --version
检查版本,使用az upgrade
进行更新。 有关详细信息,请参阅 如何安装 Azure CLI。适用于 Azure CLI 的 Azure IoT 操作扩展。 使用以下命令添加扩展或将其更新到最新版本:
az extension add --upgrade --name azure-iot-ops
设置机密管理
Azure IoT 操作的机密管理使用机密存储扩展从 Azure Key Vault 同步机密并将它们作为 Kubernetes 机密存储在边缘。 机密存储扩展需要用户分配的托管标识,该标识有权访问存储机密的 Azure Key Vault。 有关详细信息,请参阅什么是 Azure 资源的托管标识?。
要设置机密管理,请执行以下操作:
创建用于存储机密的 Azure Key Vault,并使用“
Key Vault Secrets Officer
”角色向用户帐户授予管理机密的权限。使用 az iot ops secretsync enable 命令设置 Azure IoT 操作实例以进行机密同步。 此命令:
- 使用用户分配的托管标识创建联合标识凭据。
- 向用户分配的托管标识添加角色分配,以访问 Azure Key Vault。
- 添加与 Azure IoT 操作实例关联的最小机密提供程序类。
# 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 IoT 操作部署管理机密”来了解如何将机密与 Azure IoT 操作配合使用。
设置用户分配的托管标识以进行云连接
一些 Azure IoT 操作组件(例如数据流终结点)使用用户分配的托管标识进行云连接。 建议使用与设置机密管理所用的不同的标识。
-
注意
你需要向要使用托管标识的云资源授予标识权限。
使用 az iot ops identity assign 命令将标识分配给 Azure IoT 操作实例。 此命令还使用指示的已连接群集的 OIDC 颁发者和 Azure IoT 操作服务帐户创建联合标识凭据。
# 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
现在可以在数据流终结点中使用此托管标识进行云连接了。