Udostępnij za pośrednictwem


Udzielanie aplikacji usługi Service Fabric dostępu do zasobów platformy Azure w klastrze usługi Service Fabric

Zanim aplikacja będzie mogła używać swojej tożsamości zarządzanej do uzyskiwania dostępu do innych zasobów, przyznaj tej tożsamości uprawnienia do chronionego zasobu platformy Azure. Udzielanie uprawnień to zazwyczaj akcja zarządzania na płaszczyźnie sterowania usługi platformy Azure, która jest właścicielem chronionego zasobu kierowanego przez usługę Azure Resource Manager. Ta usługa wymusza wszelkie odpowiednie sprawdzanie dostępu oparte na rolach.

Dokładna sekwencja kroków zależy od typu używanego zasobu platformy Azure oraz języka i klienta używanego do udzielania uprawnień. W tym artykule przyjęto założenie, że tożsamość przypisana przez użytkownika jest przypisana do aplikacji i zawiera kilka przykładów. Zapoznaj się z dokumentacją odpowiednich usług platformy Azure, aby uzyskać aktualne instrukcje dotyczące udzielania uprawnień.

Udzielanie dostępu do usługi Azure Storage

W tym przypadku możesz użyć tożsamości zarządzanej aplikacji usługi Service Fabric, która jest przypisana przez użytkownika, aby pobrać dane z obiektu blob usługi Azure Storage. Udziel tożsamości wymaganych uprawnień w witrynie Azure Portal , wykonując następujące czynności:

  1. Przejdź do konta magazynu.
  2. Wybierz link Kontrola dostępu (IAM) w panelu po lewej stronie.
  3. (Opcjonalnie) Sprawdź istniejący dostęp: wybierz pozycję Tożsamość zarządzana przypisana przez system lub Przypisana przez użytkownika w kontrolce Znajdź . Wybierz odpowiednią tożsamość z listy wyników.
  4. Wybierz pozycję Dodaj>przypisanie roli w górnej części strony, aby dodać nowe przypisanie roli dla tożsamości aplikacji.
  5. W obszarze Rola z listy rozwijanej wybierz pozycję Czytelnik danych obiektu blob usługi Storage.
  6. Na następnej liście rozwijanej w obszarze Przypisz dostęp do wybierz pozycję Tożsamość zarządzana przypisana przez użytkownika.
  7. Następnie upewnij się, że na liście rozwijanej Subskrypcja znajduje się odpowiednia subskrypcja, a następnie ustaw pozycję Grupa zasobów na Wszystkie grupy zasobów.
  8. W obszarze Wybierz wybierz interfejs użytkownika odpowiadający aplikacji usługi Service Fabric, a następnie wybierz pozycję Zapisz.

Obsługa tożsamości zarządzanych przypisanych przez system w usłudze Service Fabric nie obejmuje integracji w witrynie Azure Portal. Jeśli aplikacja używa tożsamości przypisanej przez system, znajdź identyfikator klienta tożsamości aplikacji, a następnie powtórz powyższe kroki, ale wybierając opcję Microsoft Entra user, group lub service principal w kontrolce Znajdź .

Udzielanie dostępu do usługi Azure Key Vault

Podobnie jak w przypadku uzyskiwania dostępu do magazynu, możesz użyć tożsamości zarządzanej aplikacji usługi Service Fabric, aby uzyskać dostęp do usługi Azure Key Vault. Kroki udzielania dostępu w witrynie Azure Portal są podobne do kroków wymienionych powyżej.

Poniższy przykład ilustruje udzielanie dostępu do magazynu przy użyciu wdrożenia szablonu. Dodaj poniższe fragmenty kodu jako kolejny wpis pod resources elementem szablonu. W przykładzie pokazano przyznanie dostępu dla typów tożsamości przypisanych przez użytkownika i przypisanych przez system odpowiednio. Wybierz odpowiedni.

    # under 'variables':
  "variables": {
        "userAssignedIdentityResourceId" : "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]",
    }
    # under 'resources':
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [
                {
                    "tenantId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').tenantId]",
                    "objectId": "[reference(variables('userAssignedIdentityResourceId'), '2018-11-30').principalId]",
                    "dependsOn": [
                        "[variables('userAssignedIdentityResourceId')]"
                    ],
                    "permissions": {
                        "keys":         ["get", "list"],
                        "secrets":      ["get", "list"],
                        "certificates": ["get", "list"]
                    }
                }
            ]
        }
    },

W przypadku tożsamości zarządzanych przypisanych przez system:

    # under 'variables':
  "variables": {
        "sfAppSystemAssignedIdentityResourceId": "[concat(resourceId('Microsoft.ServiceFabric/managedClusters/applications/', parameters('clusterName'), parameters('applicationName')), '/providers/Microsoft.ManagedIdentity/Identities/default')]"
    }
    # under 'resources':
    {
        "type": "Microsoft.KeyVault/vaults/accessPolicies",
        "name": "[concat(parameters('keyVaultName'), '/add')]",
        "apiVersion": "2018-02-14",
        "properties": {
            "accessPolicies": [
            {
                    "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
                    "tenantId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').tenantId]",
                    "objectId": "[reference(variables('sfAppSystemAssignedIdentityResourceId'), '2018-11-30').principalId]",
                    "dependsOn": [
                        "[variables('sfAppSystemAssignedIdentityResourceId')]"
                    ],
                    "permissions": {
                        "secrets": [
                            "get",
                            "list"
                        ],
                        "certificates": 
                        [
                            "get", 
                            "list"
                        ]
                    }
            },
        ]
        }
    }

Aby uzyskać więcej informacji, zobacz Magazyny — aktualizowanie zasad dostępu.

Następne kroki