使用受控識別進行 Azure 負載測試
本文內容
本文說明如何建立受控識別進行 Azure 負載測試。 您可以使用受控識別,在負載測試中安全地從 Azure Key Vault 讀取祕密或憑證。
來自 Microsoft Entra ID 的受控識別,可讓您的負載測試資源輕鬆存取 Microsoft Entra 保護的 Azure Key Vault。 身分識別由 Azure 平台負責管理,因此您不需要管理或輪替任何祕密。 如需有關 Microsoft Entra ID 中受控識別的詳細資訊,請參閱 Azure 資源的受控識別 。
Azure 負載測試支援兩種身分識別:
系統指派的身分識別 會與您的負載測試資源相關聯,並在資源遭到刪除時隨之刪除。 資源只能有一個系統指派的身分識別。
使用者指派的身分識別 是可以指派給負載測試資源的獨立 Azure 資源。 當您刪除負載測試資源時,受控識別仍可供使用。 您可以將多個使用者指派的身分識別指派給負載測試資源。
目前,您只能將受控識別用於存取 Azure Key Vault。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶 。
Azure 負載測試資源。 如果您需要建立 Azure 負載測試資源,請參閱快速入門建立和執行負載測試 。
若要建立使用者指派的受控識別,您的帳戶需要受控識別參與者 角色指派。
將系統指派的身分識別指派給負載測試資源
若要為 Azure 負載測試資源指派系統指派的身分識別,請在資源上啟用屬性。 您可以使用 Azure 入口網站或使用 Azure Resource Manager (ARM) 範本來設定此屬性。
若要在入口網站中設定受控身分識別,您需先建立 Azure 負載測試資源,然後再啟用此功能。
在 Azure 入口網站 中,移至您的 Azure 負載測試資源。
在左窗格上,選取身分識別 。
在 [系統指派] 索引標籤中,將 [狀態] 切換成 [開啟] ,然後選取 [儲存] 。
在確認視窗上,選取 [是] 以確認要指派受控識別。
此作業完成之後,頁面會顯示受控識別的 [物件識別碼] ,並可讓您為其指派權限。
執行 az load update
命令搭配 --identity-type SystemAssigned
,將系統指派的身分識別新增至負載測試資源:
az load update --name <load-testing-resource-name> --resource-group <group-name> --identity-type SystemAssigned
您可以使用 ARM 範本來自動部署 Azure 資源。 如需搭配 Azure 負載測試使用 ARM 範本的詳細資訊,請參閱 Azure 負載測試 ARM 參考文件 。
當您建立類型為 Microsoft.LoadTestService/loadtests
的資源時,您可以指派系統指派的受控識別。 請在資源定義中使用 SystemAssigned
的值來設定 identity
屬性:
"identity": {
"type": "SystemAssigned"
}
藉由新增系統指派的身分識別類型,您會指示 Azure 為您的資源建立和管理身分識別。 例如,Azure 負載測試資源應如下所示:
{
"type": "Microsoft.LoadTestService/loadtests",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"identity": {
"type": "SystemAssigned"
}
}
資源建立完成後,系統會為資源設定下列屬性:
"identity": {
"type": "SystemAssigned",
"tenantId": "00000000-0000-0000-0000-000000000000",
"principalId": "00000000-0000-0000-0000-000000000000"
}
tenantId
屬性會識別受控識別所屬的 Microsoft Entra 租用戶。 principalId
屬性是資源新身分識別的唯一識別碼。 在 Microsoft Entra ID 內,服務主體具有與 Azure 負載測試資源相同的名稱。
將使用者指派的身分識別指派給負載測試資源
在您可以將使用者指派的受控識別新增至 Azure 負載測試資源之前,必須先在 Microsoft Entra ID 中建立此身分識別。 然後,您可以使用其資源識別碼來指派身分識別。
您可以將多個使用者指派的受控識別新增至您的資源。 例如,如果您需要存取多個 Azure 資源,便可以將不同的權限授與給每個身分識別。
遵循建立使用者指派的受控識別 中所提到的指示,建立使用者指派的受控識別。
在 Azure 入口網站 中,移至您的 Azure 負載測試資源。
在左窗格上,選取身分識別 。
選取 [使用者指派] 索引標籤,然後選取 [新增] 。
搜尋並選取先前建立的受控識別。 然後,選取 [新增] 將其新增至 Azure 負載測試資源。
建立使用者指派的身分識別。
az identity create --resource-group <group-name> --name <identity-name>
執行 az load update
命令搭配 --identity-type UserAssigned
,將使用者指派的身分識別新增至負載測試資源:
az load update --name <load-testing-resource-name> --resource-group <group-name> --identity-type UserAssigned --user-assigned <identity-id>
您可以使用 ARM 範本和資源類型 Microsoft.LoadTestService/loadtests
來建立 Azure 負載測試資源。 如需搭配 Azure 負載測試使用 ARM 範本的詳細資訊,請參閱 Azure 負載測試 ARM 參考文件 。
遵循建立使用者指派的受控識別 中所提到的指示,建立使用者指派的受控識別。
在資源定義的 identity
區段中指定使用者指派的受控識別。
將 <RESOURCEID>
文字預留位置更換為使用者指派受控識別的資源識別碼:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
下列程式碼片段會顯示具有使用者指派身分識別的 Azure 負載測試 ARM 資源定義範例:
{
"type": "Microsoft.LoadTestService/loadtests",
"apiVersion": "2021-09-01-preview",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"tags": "[parameters('tags')]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {}
}
}
建立負載測試資源之後,Azure 會在輸出中提供 principalId
和 clientId
屬性:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"<RESOURCEID>": {
"principalId": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000"
}
}
}
針對用於 Microsoft Entra 管理的身分識別,principalId
是唯一識別碼。 clientId
是資源新身分識別的唯一識別碼,用於指定執行階段呼叫期間要使用的身分識別。
您可能必須設定目標資源,才能允許從負載測試資源存取。 例如,如果您從 Azure Key Vault 讀取祕密或憑證 ,或如果您使用客戶自控金鑰進行加密 ,則亦須新增包含資源受控識別的存取原則。 否則,即使您使用有效權杖,仍會拒絕您呼叫 Key Vault。
同樣地,如果您想要在 伺服器計量 上設定失敗準則,您應該指定要擷取計量的計量參考識別。 您應該設定目標資源,讓身分識別可以從資源讀取計量。
相關內容