Partager via


Accorder à une application Service Fabric l’accès à des ressources Azure sur un cluster Service Fabric

Pour permettre à une application d’utiliser son identité managée afin d’accéder à d’autres ressources, vous devez accorder des autorisations à cette identité au niveau de la ressource Azure protégée faisant l’objet d’un accès. L’octroi d’autorisations est généralement une action de gestion au niveau du plan de contrôle du service Azure propriétaire de la ressource protégée routée par Azure Resource Manager. Ce service met en œuvre la vérification d’accès en fonction du rôle applicable.

Le séquence exacte des étapes dépend du type de ressource Azure faisant l’objet de l’accès ainsi que de la langue et du client utilisés pour accorder les autorisations. Cet article part du principe qu’une identité affectée par l’utilisateur est affectée à l’application et comprend plusieurs exemples. Consultez la documentation des services Azure respectifs pour obtenir des instructions à jour sur l’octroi d’autorisations.

Accorder l’accès à Stockage Azure

Vous pouvez utiliser l’identité managée de l’application Service Fabric, qui est affectée par l’utilisateur dans ce cas, pour obtenir les données à partir d’un objet blob de stockage Azure. Accordez à l’identité les autorisations nécessaires sur le portail Azure en effectuant les étapes suivantes :

  1. Accédez au compte de stockage.
  2. Sélectionnez le lien Access Control (IAM) dans le panneau de gauche.
  3. (Facultatif) Vérifiez l’accès existant : sélectionnez une identité managée Affectée par le système ou Affectée par l’utilisateur dans le contrôle Rechercher. Sélectionnez l’identité appropriée dans la liste de résultats obtenue.
  4. Sélectionnez Ajouter>Ajouter une attribution de rôle en haut de la page pour ajouter une nouvelle attribution de rôle à l’identité de l'application.
  5. Sous Rôle, dans la liste déroulante, sélectionnez Lecteur des données Blob du stockage.
  6. Dans la liste déroulante suivante, sous Attribuer l’accès à, choisissez Identité managée affectée par l’utilisateur.
  7. Ensuite, vérifiez que l’abonnement approprié figure dans la liste déroulante Abonnement, puis définissez Groupe de ressources sur Tous les groupes de ressources.
  8. Sous Sélectionner, choisissez l’UAI correspondant à l’application Service Fabric, puis sélectionnez Enregistrer.

La prise en charge des identités managées Service Fabric affectées par le système n’inclut pas l’intégration sur le portail Azure. Si votre application utilise une identité affectée par le système, recherchez l’ID client de l’identité de l’application, puis répétez les étapes ci-dessus, mais en sélectionnant l’option Utilisateur, groupe ou principal du service Microsoft Entra dans le contrôle Rechercher.

Accorder l’accès à Azure Key Vault

De même que pour l’accès au stockage, vous pouvez utiliser l’identité managée d’une application Service Fabric pour accéder à un coffre de clés Azure. Les étapes permettant d’accorder l’accès sur le portail Azure sont similaires à celles listées ci-dessus. Reportez-vous à l’image ci-dessous pour connaître les différences.

Capture d’écran montrant le coffre Key Vault avec sélection de Stratégies d’accès.

L’exemple suivant illustre l’octroi de l’accès à un coffre en utilisant un déploiement de modèle. Ajoutez les extraits de code ci-dessous comme autre entrée sous l’élément resources du modèle. L’exemple est une démonstration de l’octroi d’accès pour le type d’identité affectée par l’utilisateur et le type d’identité affectée par le système, respectivement. Choisissez l’option qui convient.

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

Pour les identités managées affectées par le système :

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

Pour plus d’informations, consultez Coffres – Mettre à jour la stratégie d’accès.

Étapes suivantes