Accorder à l’identité managée d’une application Service Fabric l’accès à des ressources AzureGranting a Service Fabric application's managed identity access to Azure resources

Pour que l’application puisse utiliser son identité managée et accéder à d’autres ressources, les autorisations doivent être accordées à cette identité sur la ressource Azure protégée faisant l’objet d’un accès.Before the application can use its managed identity to access other resources, permissions must be granted to that identity on the protected Azure resource being accessed. L’octroi d’autorisations est généralement une action de gestion sur le « plan de contrôle » du service Azure propriétaire de la ressource protégée routée via Azure Resource Manager, ce qui permet d’appliquer toute vérification d’accès en fonction du rôle applicable.Granting permissions is typically a management action on the 'control plane' of the Azure service owning the protected resource routed via Azure Resource Manager, which will enforce any applicable role-based access checking.

La séquence exacte d’étapes dépend ensuite du type de ressource Azure qui fait l’objet de l’accès, ainsi que de la langue/du client utilisé pour accorder des autorisations.The exact sequence of steps will then depend on the type of Azure resource being accessed, as well as the language/client used to grant permissions. Le reste de cet article suppose qu’une identité affectée par l’utilisateur est attribuée à l’application et comprend plusieurs exemples typiques pour votre commodité, mais il ne s’agit en aucun cas d’une référence exhaustive pour cette rubrique ; consultez la documentation des services Azure respectifs pour obtenir des instructions à jour sur l’octroi d’autorisations.The remainder of the article assumes a user-assigned identity assigned to the application and includes several typical examples for your convenience, but it is in no way an exhaustive reference for this topic; consult the documentation of the respective Azure services for up-to-date instructions on granting permissions.

Octroi de l’accès au Stockage AzureGranting access to Azure Storage

Vous pouvez utiliser l’identité managée de l’application Service Fabric (affectée par l’utilisateur dans ce cas) pour récupérer les données à partir d’un objet blob de stockage Azure.You can use the Service Fabric application's managed identity (user-assigned in this case) to retrieve the data from an Azure storage blob. Accordez à l’identité les autorisations requises dans le Portail Azure en procédant comme suit :Grant the identity the required permissions in the Azure portal with the following steps:

  1. Accédez au compte de stockage.Navigate to the storage account
  2. Cliquez sur le lien (IAM) de contrôle d’accès dans le panneau de gauche.Click the Access control (IAM) link in the left panel.
  3. (facultatif) Vérifier l’accès existant : sélectionnez l’identité managée affectée par le système ou par l’utilisateur dans le contrôle « Rechercher » ; sélectionnez l’identité appropriée dans la liste de résultats(optional) Check existing access: select System- or User-assigned managed identity in the 'Find' control; select the appropriate identity from the ensuing result list
  4. Cliquez sur + Ajouter une attribution de rôle en haut de la page pour ajouter une nouvelle attribution de rôle à l’identité de l'application.Click + Add role assignment on top of the page to add a new role assignment for the application's identity. Sous Rôle, dans la liste déroulante, sélectionnez Lecteur des données Blob du stockage.Under Role, from the dropdown, select Storage Blob Data Reader.
  5. Dans la liste déroulante suivante, sous Attribuer l’accès à, choisissez User assigned managed identity.In the next dropdown, under Assign access to, choose User assigned managed identity.
  6. Ensuite, assurez-vous que l’abonnement approprié est répertorié dans la liste déroulante Abonnement, puis définissez Groupe de ressources sur Tous les groupes de ressources.Next, ensure the proper subscription is listed in Subscription dropdown and then set Resource Group to All resource groups.
  7. Sous Sélectionner, choisissez l’UAI correspondant à l’application Service Fabric et cliquez sur Enregistrer.Under Select, choose the UAI corresponding to the Service Fabric application and then click Save.

La prise en charge des identités managées Service Fabric affectées par le système n’inclut pas l’intégration dans le Portail Azure ; si votre application utilise une identité affectée par le système, vous devez rechercher d’abord l’ID client de l’identité de l’application, puis répéter les étapes ci-dessus, mais en sélectionnant l’option Azure AD user, group, or service principal dans le contrôle Rechercher.Support for system-assigned Service Fabric managed identities does not include integration in the Azure portal; if your application uses a system-assigned identity, you will have to find first the client ID of the application's identity, and then repeat the steps above but selecting the Azure AD user, group, or service principal option in the Find control.

Octroi de l’accès à Azure Key VaultGranting access to Azure Key Vault

De même que pour l’accès au stockage, vous pouvez tirer parti de l’identité managée d’une application Service Fabric pour accéder à un coffre de clés Azure.Similarly with accessing storage, you can leverage the managed identity of a Service Fabric application to access an Azure key vault. Les étapes permettant d’accorder l’accès dans le Portail Azure sont similaires à celles répertoriées ci-dessus et ne sont pas répétées ici.The steps for granting access in the Azure portal are similar to those listed above, and won't be repeated here. Reportez-vous à l’image ci-dessous pour connaître les différences.Refer to the image below for differences.

Stratégie d’accès au coffre de clés

L’exemple suivant illustre l’octroi d’accès à un coffre par le biais d’un déploiement de modèle. Ajoutez le ou les extraits de code ci-dessous comme une autre entrée sous l’élément resources du modèle.The following example illustrates granting access to a vault via a template deployment; add the snippet(s) below as another entry under the resources element of the template. L’exemple montre l’octroi d’accès pour les types d’identité attribués par l’utilisateur et attribués par le système, respectivement. Choisissez celui qui convient.The sample demonstrates access granting for both user-assigned and system-assigned identity types, respectively - choose the applicable one.

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

Et pour les identités managées attribuées par le système :And for system-assigned managed identities:

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

Pour plus d’informations, consultez Coffres - Mettre à jour la stratégie d’accès.For more details, please see Vaults - Update Access Policy.

Étapes suivantesNext steps