Menambahkan identitas terkelola ke jenis node kluster yang dikelola oleh Service Fabric

Setiap jenis node dalam klaster yang dikelola Service Fabric didukung oleh set skala komputer virtual. Untuk memungkinkan identitas terkelola digunakan dengan jenis node klaster terkelola, properti vmManagedIdentity telah ditambahkan ke definisi jenis node yang berisi daftar identitas yang dapat digunakan, userAssignedIdentities. Fungsionalitas mencerminkan bagaimana identitas terkelola dapat digunakan dalam klaster yang tidak dikelola, seperti menggunakan identitas terkelola dengan ekstensi set skala komputer virtual Azure Key Vault.

Untuk contoh penyebaran kluster yang dikelola Service Fabric yang menggunakan identitas terkelola pada jenis simpul, lihat templat ini. Contohnya memiliki dua templat:

  1. Identitas terkelola dan penetapan peran: Template untuk membuat identitas terkelola dan menetapkan peran untuk memungkinkan Service Fabric RP menetapkan identitas ke set skala komputer virtual kluster yang terkelola. Hal ini harus disebarkan hanya sekali sebelum menggunakan identitas terkelola pada sumber daya jenis simpul.

  2. Jenis simpul dan kluster terkelola: Template untuk sumber daya jenis kluster dan simpul terkelola service fabric menggunakan identitas terkelola yang dibuat sebelumnya.

Catatan

Hanya identitas yang ditetapkan pengguna yang saat ini didukung untuk fitur ini.

Prasyarat

Sebelum Anda mulai:

  • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
  • Jika Anda berencana menggunakan PowerShell, instal Azure CLI untuk menjalankan perintah referensi CLI.

1. Membuat identitas dan Tugas peran

Buat identitas terkelola yang ditetapkan pengguna.

Identitas terkelola yang ditetapkan pengguna dapat ditentukan di bagian sumber daya dari templat Azure Resource Manager (ARM) untuk dibuat saat penyebaran:

{
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
  "name": "[parameters('userAssignedIdentityName')]",
  "apiVersion": "2023-01-31",
  "location": "[resourceGroup().location]"
}

atau dibuat melalui PowerShell:

New-AzResourceGroup -Name <managedIdentityRGName> -Location <location>
New-AzUserAssignedIdentity -ResourceGroupName <managedIdentityRGName> -Name <userAssignedIdentityName>

Menambahkan penetapan peran dengan Penyedia Sumber Daya Service Fabric

Tambahkan penetapan peran ke identitas terkelola dengan aplikasi Penyedia Sumber Daya Service Fabric. Penugasan ini memungkinkan Penyedia Sumber Daya Service Fabric untuk menetapkan identitas, yang dibuat pada langkah sebelumnya, ke set skala komputer virtual kluster yang terkelola. Ini adalah tindakan sekaligus

Dapatkan perwakilan layanan untuk aplikasi Penyedia Sumber Daya Service Fabric:

Login-AzAccount
Select-AzSubscription -SubscriptionId <SubId>
Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"

Catatan

Pastikan Anda berada di langganan yang benar, ID utama akan berubah jika langganan berada di penyewa yang berbeda.

ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2}
ApplicationId         : 74cb6831-0dbb-4be1-8206-fd4df301cdc2
ObjectType            : ServicePrincipal
DisplayName           : Azure Service Fabric Resource Provider
Id                    : 00000000-0000-0000-0000-000000000000

Gunakan Id dari output sebelumnya sebagai principalId dan ID definisi peran di bawah sebagai roleDefinitionId jika berlaku pada templat atau perintah PowerShell:

Nama definisi peran ID definisi peran
Operator Identitas Terkelola f1a07417-d97a-45cb-824c-7a7467783830

Penetapan peran ini dapat ditentukan di templat bagian sumber daya menggunakan Id Utama dan Id definisi peran:

{
  "type": "Microsoft.Authorization/roleAssignments",
  "apiVersion": "2022-04-01",
  "name": "[parameters('vmIdentityRoleNameGuid')]",
  "scope": "[concat('Microsoft.ManagedIdentity/userAssignedIdentities', '/', parameters('userAssignedIdentityName'))]",
  "dependsOn": [
    "[concat('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
  ],
  "properties": {
    "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', 'f1a07417-d97a-45cb-824c-7a7467783830')]",
    "principalId": "<Service Fabric Resource Provider ID>"
  }
}

Catatan

vmIdentityRoleNameGuid harus menjadi GUID yang valid. Jika Anda kembali menyebarkan templat yang sama termasuk penetapan peran ini, pastikan bahwa GUID sama dengan GUID yang awalnya digunakan atau hapus sumber daya ini karena hanya perlu dibuat sekali.

atau dibuat melalui PowerShell menggunakan Id utama dan nama definisi peran:

New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Managed Identity Operator" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>"

Menyebarkan identitas yang dikelola dan penetapan peran.

Jalankan cmdlet New-AzResourceGroupDeployment untuk membuat identitas terkelola dan menambahkan penetapan peran:

New-AzResourceGroupDeployment -ResourceGroupName <managedIdentityRGName> -TemplateFile ".\MangedIdentityAndSfrpRoleAssignment.json" -TemplateParameterFile ".\MangedIdentityAndSfrpRoleAssignment.Parameters.json" -Verbose

2. Menetapkan identitas ke sumber daya tipe simpul

Tambahkan properti identitas terkelola ke definisi jenis node

Terakhir, tambahkan properti vmManagedIdentity dan userAssignedIdentities ke definisi jenis simpul kluster terkelola dengan ID sumber daya lengkap dari identitas yang dibuat pada langkah pertama. Pastikan untuk menggunakan 2021-05-01 atau yang lebih baru untuk apiVersion.

{
  "type": "Microsoft.ServiceFabric/managedClusters/nodeTypes",
  "apiVersion": "2022-01-01",
  "properties": {
    "isPrimary": true,
    "vmInstanceCount": 5,
    "dataDiskSizeGB": 100,
    "vmSize": "Standard_D2_v2",
    "vmImagePublisher": "MicrosoftWindowsServer",
    "vmImageOffer": "WindowsServer",
    "vmImageSku": "2019-Datacenter",
    "vmImageVersion": "latest",
    "vmManagedIdentity": {
      "userAssignedIdentities": [
        "[parameters('userAssignedIdentityResourceId')]"
      ]
    }
  }
}

Menyebarkan sumber daya jenis simpul yang menetapkan identitas

Jalankan cmdlet New-AzResourceGroupDeployment untuk menyebarkan templat kluster terkelola service fabric yang menetapkan identitas terkelola ke sumber daya jenis simpul.

New-AzResourceGroupDeployment -ResourceGroupName <sfmcRGName> -TemplateFile ".\SfmcVmMangedIdentity.json" -TemplateParameterFile ".\SfmcVmMangedIdentity.Parameters.json" -Verbose

Setelah penyebaran, identitas terkelola yang dibuat telah ditambahkan ke set skala komputer virtual jenis node yang ditunjuk dan dapat digunakan seperti yang diharapkan, layaknya dalam klaster yang tidak dikelola.

Pemecahan Masalah

Kegagalan untuk menambahkan penetapan peran dengan benar akan diikutii dengan kesalahan berikut pada penyebaran:

Kesalahan penyebaran portal Azure yang menunjukkan klien dengan ID objek/aplikasi SFRP yang tidak memiliki izin untuk melakukan aktivitas manajemen identitas

Dalam hal ini, pastikan penetapan peran berhasil dibuat dengan Peran "Operator Identitas Terkelola". Penetapan peran dapat ditemukan di portal Microsoft Azure di bawah kontrol akses sumber daya identitas terkelola seperti yang ditunjukkan di bawah ini.

Properti penetapan peran untuk penyedia Sumber Daya Service Fabric pada identitas terkelola yang ditetapkan pengguna yang ditampilkan di portal Microsoft Azure

Langkah berikutnya