Udostępnij za pośrednictwem


Dodawanie tożsamości zarządzanej do typu węzła klastra zarządzanego usługi Service Fabric

Każdy typ węzła w klastrze zarządzanym usługi Service Fabric jest wspierany przez zestaw skalowania maszyn wirtualnych. Aby umożliwić używanie tożsamości zarządzanych z typem węzła klastra zarządzanego, właściwość vmManagedIdentity została dodana do definicji typów węzłów zawierających listę tożsamości, które mogą być używane, userAssignedIdentities. Funkcja odzwierciedla sposób używania tożsamości zarządzanych w klastrach niezarządzanych, takich jak używanie tożsamości zarządzanej z rozszerzeniem zestawu skalowania maszyn wirtualnych platformy Azure Key Vault.

Aby zapoznać się z przykładem wdrożenia klastra zarządzanego usługi Service Fabric, które korzysta z tożsamości zarządzanej w typie węzła, zobacz te szablony. Przykład zawiera dwa szablony:

  1. Tożsamość zarządzana i przypisanie roli: szablon umożliwiający utworzenie tożsamości zarządzanej i przypisania roli w celu umożliwienia dostawcy usługi Service Fabric przypisywania tożsamości do zestawu skalowania maszyn wirtualnych klastra zarządzanego. Należy je wdrożyć tylko raz przed użyciem tożsamości zarządzanej w zasobie typu węzła.

  2. Typ klastra zarządzanego i węzła: szablon dla klastra zarządzanego usługi Service Fabric i zasobów typu węzła przy użyciu utworzonej wcześniej tożsamości zarządzanej.

Uwaga

W przypadku tej funkcji są obecnie obsługiwane tylko tożsamości przypisane przez użytkownika.

Wymagania wstępne

Przed rozpoczęciem:

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Jeśli planujesz używać programu PowerShell, zainstaluj interfejs wiersza polecenia platformy Azure, aby uruchomić polecenia referencyjne interfejsu wiersza polecenia.

1. Tworzenie tożsamości i przypisania roli

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

Tożsamość zarządzana przypisana przez użytkownika można zdefiniować w sekcji zasobów szablonu usługi Azure Resource Manager (ARM) do tworzenia podczas wdrażania:

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

lub utworzony za pomocą programu PowerShell:

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

Dodawanie przypisania roli za pomocą dostawcy zasobów usługi Service Fabric

Dodaj przypisanie roli do tożsamości zarządzanej za pomocą aplikacji dostawcy zasobów usługi Service Fabric. To przypisanie umożliwia dostawcy zasobów usługi Service Fabric przypisanie tożsamości utworzonej w poprzednim kroku do zestawu skalowania maszyn wirtualnych klastra zarządzanego. Jest to jednorazowa akcja

Pobierz jednostkę usługi dla aplikacji dostawcy zasobów usługi Service Fabric:

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

Uwaga

Upewnij się, że jesteś w prawidłowej subskrypcji, identyfikator podmiotu zabezpieczeń zmieni się, jeśli subskrypcja znajduje się w innej dzierżawie.

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

Użyj identyfikatora poprzednich danych wyjściowych jako principalId i identyfikatora definicji roli jako roleDefinitionId , jeśli ma to zastosowanie w szablonie lub poleceniu programu PowerShell:

Nazwa definicji roli Identyfikator definicji roli
Operator tożsamości zarządzanej f1a07417-d97a-45cb-824c-7a7467783830

To przypisanie roli można zdefiniować w szablonie sekcji zasobów przy użyciu identyfikatora podmiotu zabezpieczeń i identyfikatora definicji roli:

{
  "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>"
  }
}

Uwaga

vmIdentityRoleNameGuid powinien być prawidłowym identyfikatorem GUID. Jeśli ponownie wdrożysz ten sam szablon, w tym to przypisanie roli, upewnij się, że identyfikator GUID jest taki sam jak pierwotnie używany lub usuń ten zasób, ponieważ należy go utworzyć tylko raz.

lub utworzony za pomocą programu PowerShell przy użyciu identyfikatora podmiotu zabezpieczeń i nazwy definicji roli:

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

Wdrażanie tożsamości zarządzanej i przypisania roli.

Uruchom polecenie cmdlet New-AzResourceGroupDeployment, aby utworzyć tożsamość zarządzaną i dodać przypisanie roli:

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

2. Przypisywanie tożsamości do zasobu typu węzła

Dodawanie właściwości tożsamości zarządzanej do definicji typu węzła

Na koniec dodaj vmManagedIdentity właściwości i userAssignedIdentities do definicji typu węzła klastra zarządzanego z pełnym identyfikatorem zasobu tożsamości utworzonej w pierwszym kroku. Pamiętaj, aby użyć polecenia 2021-05-01 lub nowszego dla polecenia 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')]"
      ]
    }
  }
}

Wdrażanie zasobu typu węzła, który przypisuje tożsamość

Uruchom polecenie cmdlet New-AzResourceGroupDeployment, aby wdrożyć szablon klastrów zarządzanych usługi Service Fabric, który przypisuje tożsamość zarządzaną do zasobu typu węzła.

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

Po wdrożeniu utworzona tożsamość zarządzana została dodana do zestawu skalowania maszyn wirtualnych określonego typu węzła i może być używana zgodnie z oczekiwaniami, podobnie jak w przypadku każdego klastra niezarządzanego.

Rozwiązywanie problemów

Błąd poprawnego dodania przypisania roli zostanie spełniony z powodu następującego błędu podczas wdrażania:

Azure Portal błąd wdrożenia przedstawiający klienta z identyfikatorem obiektu/aplikacji SFRP, który nie ma uprawnień do wykonywania działań związanych z zarządzaniem tożsamościami

W takim przypadku upewnij się, że przypisanie roli zostało utworzone pomyślnie z rolą "Operator tożsamości zarządzanej". Przypisanie roli można znaleźć na Azure Portal pod kontrolą dostępu zasobu tożsamości zarządzanej, jak pokazano poniżej.

Właściwości przypisania roli dla dostawcy zasobów usługi Service Fabric w tożsamości zarządzanej przypisanej przez użytkownika widocznej w Azure Portal

Następne kroki