在操作員 Nexus 中設定受控認證輪替的 金鑰保存庫
Azure 操作員 Nexus 會利用秘密和憑證來管理跨平臺的元件安全性。 操作員 Nexus 平台會處理這些秘密和憑證的輪替。 根據預設,Operator Nexus 會將認證儲存在受控 金鑰保存庫 中。 若要將輪替認證保留在自己的 金鑰保存庫 中,用戶必須設定自己的 金鑰保存庫 以接收輪替認證。 此設定需要用戶設定 Azure 操作員 Nexus 實例的 金鑰保存庫。 建立之後,用戶必須在客戶 金鑰保存庫 上新增角色指派,以允許操作員 Nexus Platform 撰寫更新的認證,並另外將客戶 金鑰保存庫 連結至 Nexus 叢集資源。
必要條件
- 安裝最新版本的適當 CLI 延伸模組
- 取得客戶訂用帳戶的訂用帳戶標識碼
注意
單一 金鑰保存庫 可用於任意數目的叢集。
使用叢集管理員的受控識別設定 金鑰保存庫
從 2024-06-01-public-preview API 版本開始,叢集管理員中的受控識別會用來寫入存取,以將輪替認證傳遞至密鑰保存庫。 叢集管理員身分識別可能是系統指派或使用者指派,而且可以直接透過 API 或透過 CLI 進行管理。
這些範例說明如何設定叢集管理員的受控識別。
- 使用系統指派的身分識別建立或更新叢集管理員
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"
- 將系統指派的身分識別新增至叢集管理員
az networkcloud clustermanager update --name <Cluster Manager Name> --resource-group <Resource Group Name> --mi-system-assigned
- 將使用者指派的身分識別新增至叢集管理員
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"
設定 Nexus 叢集秘密封存
將客戶 金鑰保存庫 註冊為 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
取得叢集管理員受控識別的主體標識符
設定受控識別之後,請使用 CLI 來檢視叢集管理員內的身分識別和相關聯的主體標識碼數據。
範例:
az networkcloud clustermanager show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Manager Resource Group Name>/providers/Microsoft.NetworkCloud/clusterManagers/<Cluster Manager Name>
系統指派的身分識別範例:
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"type": "SystemAssigned"
},
使用者指派的身分識別範例:
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionID>/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
"clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
"principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
}
}
},
請參閱將受控識別存取權授與認證輪替 金鑰保存庫,以將適當的角色指派給受控識別主體標識符。
使用叢集的受控識別設定 金鑰保存庫
重要
請注意,針對認證輪替設定密鑰保存庫的這個方法處於預覽狀態。 這個方法只能與未啟用防火牆的密鑰保存庫搭配使用。 如果您的環境需要啟用金鑰保存庫防火牆,請使用現有的 叢集管理員 身分識別方法。
從 2024-10-01-preview API 開始,可以使用 Nexus 叢集資源中的受控識別,而不是叢集管理員。 叢集受控識別可能是系統指派或 使用者指派,而且可以直接透過 API 或透過 CLI 進行管理。
注意
如果為金鑰保存庫設定了 Nexus 叢集受控識別,則這些設定將會取代在設定叢集管理員的受控識別 金鑰保存庫 中設定的設定
設定 Nexus 叢集秘密封存設定
Nexus 叢集 secret-archive-settings 會指定儲存輪替認證的 Azure 金鑰保存庫 URI,以及用來存取它的受控識別。
這些範例說明如何設定 Nexus 叢集的受控識別,並將其設定為 secret-archive-settings 的一部分。
注意
秘密封存設定會指定 金鑰保存庫 URI,而不是 金鑰保存庫 資源識別符,而且必須針對 Nexus 叢集設定指定的受控識別。
- 使用系統指派的身分識別建立 Nexus 叢集,以存取輪替認證的 金鑰保存庫。
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-system-assigned \
--secret-archive-settings identity-type="SystemAssignedIdentity" vault-uri="https://<key vault name>.vault.azure.net/"
...
--subscription "<subscription>"
- 建立具有使用者指派身分識別的 Nexus 叢集,以存取輪替認證的 金鑰保存庫。
az networkcloud cluster create --name "<cluster-name>" \
--resource-group "<cluster-resource-group>" \
...
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--secret-archive-settings identity-type="UserAssignedIdentity" identity-resource-id="<user-assigned-identity-resource-id>" vault-uri="https://<key vault name>.vault.azure.net/"
...
--subscription "<subscription>"
- 使用系統指派的身分識別更新現有的 Nexus 叢集,以存取輪替認證的 金鑰保存庫。
az networkcloud cluster update --ids <cluster-resource-id> \
--mi-system-assigned \
--secret-archive-settings identity-type="SystemAssignedIdentity" vault-uri="https://<key vault name>.vault.azure.net/"
- 使用使用者指派的身分識別更新現有的 Nexus 叢集
az networkcloud cluster update --ids <cluster-resource-id> \
--mi-user-assigned "<user-assigned-identity-resource-id>" \
--secret-archive-settings identity-type="UserAssignedIdentity" identity-resource-id="<user-assigned-identity-resource-id>" vault-uri="https://<key vault name>.vault.azure.net/"
如需更多說明:
az networkcloud cluster update --secret-archive-settings '??' --help
取得叢集受控識別的主體標識碼
設定 Nexus 叢集的受控識別之後,請使用 CLI 來檢視身分識別,並取得 秘密封存設定中所指定受控識別的 principalId 。
範例:
az networkcloud cluster show --ids <cluster-resource-id>
系統指派的身分識別範例:
"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 角色型存取組態檢視上密鑰保存庫的許可權模型。 然後從 存取控制 檢視中,選取以新增角色指派。
角色名稱 | 角色定義標識碼 |
---|---|
操作員 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>
如果使用使用者指派的受控識別,請繼續 將許可權新增至使用者指派的身分識別
將許可權新增至使用者指派的身分識別
使用使用者指派的受控識別來存取 金鑰保存庫 時,客戶必須布建 Nexus 平臺該身分識別的存取權。
具體來說, Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
許可權必須新增至使用者指派的身分識別,才能 AFOI-NC-MGMT-PME-PROD
Microsoft Entra ID。 這是未來將解決之平臺的已知限制。
- 開啟 Azure 入口網站,並找出有問題的使用者指派身分識別。
- 在 [訪問控制][IAM] 底下,按兩下 [新增角色指派]。
- 選取 [角色:受控識別操作員]。 (請參閱角色提供 Managed-identity-operator的許可權。
- 指派存取權給: 使用者、群組或服務主體。
- 選取 成員:AFOI-NC-MGMT-PME-PROD 應用程式。
- 檢閱並指派。