De beheerde identiteit van een Service Fabric-toepassing toegang verlenen tot Azure-resources

Voordat de toepassing de beheerde identiteit kan gebruiken voor toegang tot andere resources, moeten machtigingen worden verleend aan die identiteit voor de beveiligde Azure-resource waartoe toegang wordt verkregen. Het verlenen van machtigingen is doorgaans een beheeractie op het 'besturingsvlak' van de Azure-service die eigenaar is van de beveiligde resource die wordt gerouteerd via Azure Resource Manager, waardoor eventuele toepasselijke op rollen gebaseerde toegangscontrole wordt afgedwongen.

De exacte reeks stappen is vervolgens afhankelijk van het type Azure-resource dat wordt geopend, evenals de taal/client die wordt gebruikt om machtigingen te verlenen. In de rest van het artikel wordt ervan uitgegaan dat een door de gebruiker toegewezen identiteit aan de toepassing is toegewezen en een aantal typische voorbeelden voor uw gemak bevat, maar het is op geen enkele manier een volledige verwijzing voor dit onderwerp; raadpleeg de documentatie van de respectieve Azure-services voor actuele instructies over het verlenen van machtigingen.

Toegang verlenen tot Azure Storage

U kunt de beheerde identiteit van de Service Fabric-toepassing (in dit geval door de gebruiker toegewezen) gebruiken om de gegevens op te halen uit een Azure Storage-blob. Verdeel de identiteit de vereiste machtigingen voor het opslagaccount door de rol Opslagblobgegevenslezer toe te wijzen aan de beheerde identiteit van de toepassing binnen het bereik van de resourcegroep .

Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

Toegang verlenen tot Azure Key Vault

Net als bij toegang tot opslag kunt u gebruikmaken van de beheerde identiteit van een Service Fabric-toepassing voor toegang tot een Azure-sleutelkluis. De stappen voor het verlenen van toegang in Azure Portal zijn vergelijkbaar met de stappen die hierboven worden vermeld en worden hier niet herhaald. Raadpleeg de onderstaande afbeelding voor verschillen.

Key Vault access policy

In het volgende voorbeeld ziet u hoe u toegang verleent tot een kluis via een sjabloonimplementatie; voeg de onderstaande fragmenten toe als een andere vermelding onder het resources element van de sjabloon. In het voorbeeld ziet u hoe toegang wordt verleend voor respectievelijk door de gebruiker toegewezen en door het systeem toegewezen identiteitstypen: kies de toepasselijke.

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

En voor door het systeem toegewezen beheerde identiteiten:

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

Zie kluizen - Toegangsbeleid bijwerken voor meer informatie.

Volgende stappen