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. Funkcje dubluje 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 usługi 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. W przykładzie istnieją 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 typu węzła przy użyciu tożsamości zarządzanej utworzonej wcześniej.

Uwaga

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

Uwaga

Aby uzyskać informacje na temat konfiguracji aplikacji, zobacz Konfigurowanie i używanie aplikacji z tożsamością zarządzaną w klastrze zarządzanym usługi Service Fabric.

Wymagania wstępne

Przed rozpoczęciem:

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) na potrzeby tworzenia po wdrożeniu:

{
  "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 odpowiedniej 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 bellow identyfikator definicji roli jako roleDefinitionId, jeśli ma to zastosowanie w szablonie lub w 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 ten, który został pierwotnie użyty 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 elementu 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 przypisania tożsamości

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 wyznaczonego 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

Niepowodzenie prawidłowego dodawania przypisania roli zostanie spełnione z powodu następującego błędu podczas wdrażania:

Błąd wdrażania witryny Azure Portal 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 za pomocą roli "Operator tożsamości zarządzanej". Przypisanie roli można znaleźć w witrynie Azure Portal pod kontrolą dostępu do 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 witrynie Azure Portal

Następne kroki