Share via


Concesión de acceso para una aplicación de Service Fabric a otros recursos de Azure en un clúster de Service Fabric

Para que la aplicación pueda acceder a otros recursos mediante su identidad administrada, es necesario conceder permisos a la identidad en el recurso de Azure protegido al que se va a acceder. La concesión de permisos suele ser una acción de administración en el plano de control del servicio de Azure propietario del recurso protegido enrutado por Azure Resource Manager. Ese servicio aplica cualquier comprobación de acceso basada en roles vigente.

La secuencia exacta de pasos dependerá del tipo de recurso de Azure al que se acceda, así como del lenguaje o del cliente que se use para conceder los permisos. En este artículo se asume una identidad asignada por el usuario a la aplicación se incluyen varios ejemplos. Consulte la documentación de los servicios de Azure respectivos para instrucciones actualizadas sobre la concesión de permisos.

Concesión de acceso a Azure Storage

Puede usar la identidad administrada de la aplicación de Service Fabric (en este caso, asignada por el usuario) para obtener los datos de un blob de Azure Storage. Conceda a la identidad los permisos necesarios en Azure Portal mediante los pasos siguientes:

  1. Navegue a la cuenta de almacenamiento.
  2. Seleccione el vínculo Control de acceso (IAM) en el panel izquierdo.
  3. (Opcional) Compruebe el acceso existente: seleccione la identidad administrada Asignación del sistema o Asignación del usuario en el control Buscar. Seleccione la identidad adecuada en la lista de resultados subsiguiente.
  4. Seleccione Agregar>Adición de asignación de roles en la parte superior de la página para agregar una asignación de roles nueva para la identidad de la aplicación.
  5. En la lista desplegable de Rol, seleccione Lector de datos de Storage Blob.
  6. En la lista desplegable siguiente, en Asignar acceso a, elija Identidad administrada asignada por el usuario.
  7. Después, asegúrese de que la suscripción adecuada aparece en el menú desplegable Suscripción y establezca Grupo de recursos en Todos los grupos de recursos.
  8. En Seleccionar, elija la identidad asignada por el usuario correspondiente a la aplicación de Service Fabric y seleccione Guardar.

La compatibilidad con las identidades administradas de Service Fabric asignadas por el sistema no incluye la integración en Azure Portal. Si la aplicación usa una identidad asignada por el sistema, busque el identificador de cliente de la identidad de la aplicación y repita los pasos anteriores, pero seleccione la opción Usuario, grupo o entidad de servicio de Microsoft Entra en el control Buscar.

Concesión de acceso a Azure Key Vault

De forma similar al proceso para acceder al almacenamiento, puede usar la identidad administrada de una aplicación de Service Fabric para acceder a una instancia de Azure Key Vault. Los pasos para conceder acceso en Azure Portal son semejantes a los indicados anteriormente. Consulte la imagen siguiente para ver las diferencias.

Screenshot shows the Key Vault with Access policies selected.

En el ejemplo siguiente se muestra cómo conceder acceso a un almacén mediante una implementación de plantilla. Agregue los fragmentos de código siguientes como otra entrada en el elemento resources de la plantilla. En el ejemplo se muestra cómo conceder acceso tanto a los tipos de identidad asignados por el usuario como a los asignados por el sistema, respectivamente. Elija el que proceda.

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

Para las identidades administradas asignadas por el sistema:

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

Para más información, consulte Almacenes: actualización de la directiva de acceso.

Pasos siguientes