Udělení přístupu spravované identity aplikace Service Fabric k prostředkům Azure

Aby aplikace mohl použít spravovanou identitu pro přístup k jiným prostředkům, musí být této identitě udělena oprávnění pro přístup k chráněnému prostředku Azure. Udělení oprávnění je obvykle akce správy na "řídicí rovině" služby Azure, která vlastní chráněný prostředek směrovaný přes Azure Resource Manager, což vynutí jakoukoli platnou kontrolu přístupu na základě role.

Přesná posloupnost kroků pak bude záviset na typu přístupu k prostředku Azure a také na jazyce nebo klientovi použitém k udělení oprávnění. Zbývající část článku předpokládá, že identita přiřazená uživatelem přiřazená k aplikaci a obsahuje několik typických příkladů pro vaše pohodlí, ale není žádným způsobem vyčerpávajícím odkazem na toto téma; Aktuální pokyny k udělení oprávnění najdete v dokumentaci příslušných služeb Azure.

Udělení přístupu ke službě Azure Storage

Spravovanou identitu aplikace Service Fabric (v tomto případě přiřazenou uživatelem) můžete použít k načtení dat z objektu blob úložiště Azure. Udělte identitě požadovaná oprávnění pro účet úložiště tím, že přiřadíte roli Čtenář dat objektů blob služby Storage spravované identitě aplikace v oboru skupiny prostředků.

Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.

Udělení přístupu ke službě Azure Key Vault

Podobně s přístupem k úložišti můžete využít spravovanou identitu aplikace Service Fabric pro přístup k trezoru klíčů Azure. Postup udělení přístupu na webu Azure Portal je podobný výše uvedeným krokům a nebude se zde opakovat. Rozdíly najdete na následujícím obrázku.

Key Vault access policy

Následující příklad ukazuje udělení přístupu k trezoru prostřednictvím nasazení šablony; Přidejte fragmenty kódu níže jako další položku pod resources prvek šablony. Ukázka ukazuje udělení přístupu pro uživatelem přiřazené i systémem přiřazené typy identit , v uvedeném pořadí – zvolte příslušnou.

    # 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"]
                    }
                }
            ]
        }
    },

A pro spravované identity přiřazené systémem:

    # under 'variables':
  "variables": {
        "sfAppSystemAssignedIdentityResourceId": "[concat(resourceId('Microsoft.ServiceFabric/clusters/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"
                        ]
                    }
            },
        ]
        }
    }

Další podrobnosti najdete v tématu Trezory – Aktualizace zásad přístupu.

Další kroky