Dela via


Bevilja ett Service Fabric-programs hanterade identitet åtkomst till Azure-resurser

Innan programmet kan använda sin hanterade identitet för att få åtkomst till andra resurser måste behörigheter beviljas till den identiteten på den skyddade Azure-resurs som används. Att bevilja behörigheter är vanligtvis en hanteringsåtgärd på kontrollplanet för Azure-tjänsten som äger den skyddade resurs som dirigeras via Azure Resource Manager, vilket framtvingar alla tillämpliga rollbaserade åtkomstkontroller.

Den exakta sekvensen av steg beror sedan på vilken typ av Azure-resurs som används samt det språk/den klient som används för att bevilja behörigheter. Resten av artikeln förutsätter en användartilldelad identitet som tilldelats programmet och innehåller flera typiska exempel för din bekvämlighet, men det är inte på något sätt en fullständig referens för det här ämnet. Läs dokumentationen för respektive Azure-tjänster för att få uppdaterade instruktioner om hur du beviljar behörigheter.

Bevilja åtkomst till Azure Storage

Du kan använda Service Fabric-programmets hanterade identitet (användartilldelad i det här fallet) för att hämta data från en Azure Storage-blob. Ge identiteten de behörigheter som krävs för lagringskontot genom att tilldela rollen Storage Blob Data Reader till programmets hanterade identitet i resursgruppsomfånget .

Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.

Bevilja åtkomst till Azure Key Vault

På samma sätt som vid åtkomst till lagring kan du använda den hanterade identiteten för ett Service Fabric-program för att få åtkomst till ett Azure-nyckelvalv. Stegen för att bevilja åtkomst i Azure-portalen liknar de som anges ovan och upprepas inte här. Se bilden nedan för skillnader.

Åtkomstprincip för nyckelvalvet

I följande exempel visas hur du beviljar åtkomst till ett valv via en malldistribution. lägg till kodfragmenten nedan som en annan post under elementet resources i mallen. Exemplet visar åtkomstbeviljande för både användartilldelade respektive systemtilldelade identitetstyper – välj tillämpligt.

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

Och för systemtilldelade hanterade identiteter:

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

Mer information finns i Valv – Uppdatera åtkomstprincip.

Nästa steg