共用方式為


在 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 金鑰保存庫的秘密,並將其儲存在邊緣做為 Kubernetes 秘密。 秘密存放區擴充功能需要使用者指派的受控識別,且可存取儲存秘密的 Azure 金鑰保存庫。 若要深入瞭解,請參閱 什麼是 Azure 資源的受控識別?

若要設定秘密管理:

  1. 建立用來儲存秘密的 Azure 金鑰保存庫,並提供您的使用者帳戶許可權,以使用Key Vault Secrets Officer角色管理秘密

  2. 為秘密存放區擴充功能建立使用者指派的受控識別

  3. 使用 az iot ops secretsync enable 命令來設定 Azure IoT 作業實例以進行秘密同步處理。 此命令:

    • 使用使用者指派的受控識別來建立同盟身分識別認證。
    • 將角色指派新增至使用者指派的受控識別,以存取 Azure 金鑰保存庫。
    • 新增與 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 作業元件,例如數據流端點,會針對雲端連線使用使用者指派的受控識別。 建議您使用與用來設定秘密管理的不同身分識別。

  1. 建立用於雲端連線的使用者指派受控識別

    注意

    您必須將身分識別許可權授與您使用受控識別的雲端資源。

  2. 使用 az iot ops identity assign 命令,將身分識別指派給 Azure IoT Operations 實例。 此命令也會使用所指出叢集的 OIDC 簽發者和 Azure IoT Operations 服務帳戶的 OIDC 簽發者來建立同盟身分識別認證。

    # 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
    

現在,您可以在數據流端點中使用此受控識別來進行雲端連線。