Compartir vía


Introducción a la biblioteca de administración de Azure Storage para .NET

En este artículo se muestra cómo conectarse a recursos de Azure Storage mediante la biblioteca de administración de Azure Storage para .NET. Una vez conectado, puede crear, actualizar y eliminar cuentas de almacenamiento y administrar la configuración de la cuenta de almacenamiento. Para obtener información sobre las diferencias entre la administración de recursos y el acceso a datos mediante bibliotecas cliente de Azure Storage, vea Información general de las bibliotecas cliente de Azure Storage.

Referencia de API | NuGet | GitHub | Proporcionar comentarios

Requisitos previos

Configuración del proyecto

En esta sección se explica cómo preparar un proyecto para trabajar con la biblioteca de administración de Azure Storage para .NET.

En el directorio del proyecto, instale paquetes para las bibliotecas cliente de Azure Storage Resource Manager y Azure Identity mediante el comando dotnet add package. El paquete Azure.Identity es necesario para las conexiones sin contraseña a los servicios de Azure.

dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager.Storage

Agregue estas directivas using al principio del archivo de código:

using Azure.Identity;
using Azure.ResourceManager;

Información de la biblioteca de administración:

  • Azure.ResourceManager.Storage: Contiene las clases principales que representan las colecciones, los recursos y los datos para administrar cuentas de almacenamiento.

Autorización del acceso y creación de un cliente

Para conectar una aplicación y administrar los recursos de la cuenta de almacenamiento, cree un objeto ArmClient. Este objeto de cliente es el punto de entrada para todos los clientes de Azure Resource Manager (ARM). Dado que todas las API de administración pasan por el mismo punto de conexión, solo tiene que crear un ArmClient de nivel superior para interactuar con los recursos.

Asignación de permisos de administración con RBAC de Azure

Azure proporciona roles integrados que conceden permisos para llamar a las operaciones de administración. Azure Storage también proporciona roles integrados que se usan específicamente con el proveedor de recursos de Azure Storage. Para obtener más información, vea Roles integrados para las operaciones de administración.

Autorización del acceso mediante DefaultAzureCredential

Puede autorizar un objeto ArmClient mediante un token de autorización de Microsoft Entra. En el ejemplo de código de este artículo, usamos DefaultAzureCredential para autorizar el objeto de cliente. La clase DefaultAzureCredential proporciona un flujo de autenticación TokenCredential predeterminado para las aplicaciones que se implementarán en Azure. Para obtener más información, vea DefaultAzureCredential.

Para autorizar con Microsoft Entra ID, debe usar una entidad de seguridad. El tipo de entidad de seguridad que necesita depende de dónde se ejecute su aplicación. Use la siguiente tabla como guía:

Dónde se ejecuta la aplicación Entidad de seguridad Guía
Máquina local (desarrollo y pruebas) Entidad de servicio Con el fin de descubrir cómo registrar la aplicación, configurar un grupo de Microsoft Entra, asignar roles y configurar variables de entorno, consulte Autorización del acceso mediante entidades de servicio para desarrolladores
Máquina local (desarrollo y pruebas) Identidad del usuario Con el fin de descubrir cómo configurar un grupo de Microsoft Entra, asignar roles e iniciar sesión en Azure, consulte Autorización del acceso mediante credenciales para desarrolladores
Hospedado en Azure Identidad administrada Para obtener información sobre cómo habilitar una identidad administrada y asignar funciones, consulte la guía para autorizar el acceso mediante una identidad administrada asignada por el sistema o una identidad administrada asignada por el usuario
Hospedado fuera de Azure (por ejemplo, aplicaciones locales) Entidad de servicio Para descubrir cómo registrar la aplicación, asignar roles y configurar variables de entorno, vea Autorización del acceso desde aplicaciones locales mediante una entidad de servicio de aplicación.

Una manera sencilla y segura de autorizar el acceso y conectarse a los recursos de la cuenta de almacenamiento es obtener un token de OAuth mediante la creación de una instancia de DefaultAzureCredential. Después, puede usar esa credencial para crear un objeto ArmClient.

En el ejemplo siguiente se crea un objeto ArmClient autorizado mediante DefaultAzureCredential, y a continuación, obtiene el recurso de suscripción para el identificador de suscripción especificado:

ArmClient armClient = new ArmClient(new DefaultAzureCredential());

// Create a resource identifier, then get the subscription resource
ResourceIdentifier resourceIdentifier = new($"/subscriptions/{subscriptionId}");
SubscriptionResource subscription = armClient.GetSubscriptionResource(resourceIdentifier);

Si sabe exactamente qué tipo de credencial usa para autenticar a los usuarios, puede obtener un token de OAuth mediante otras clases de la Biblioteca cliente de Azure Identity para .NET. Estas clases derivan de la clase TokenCredential.

Para más información sobre cómo autorizar las operaciones de administración, vea Asignación de permisos de administración con Azure RBAC.

Registro de un proveedor de recursos de Storage con una suscripción

Un proveedor de recursos debe registrarse con su suscripción de Azure para poder trabajar con él. Este paso solo debe realizarse una vez por suscripción y solo se aplica si el proveedor de recursos Microsoft.Storage no está registrado actualmente en la suscripción.

Puede registrar el proveedor de recursos de Storage o comprobar el estado de registro mediante Azure Portal, la CLI de Azure o Azure PowerShell.

También puede usar las bibliotecas de administración de Azure para comprobar el estado de registro y registrar el proveedor de recursos de Storage, como se muestra en el ejemplo siguiente:

public static async Task RegisterSRPInSubscription(SubscriptionResource subscription)
{
    ResourceProviderResource resourceProvider =
        await subscription.GetResourceProviderAsync("Microsoft.Storage");

    // Check the registration state of the resource provider and register, if needed
    if (resourceProvider.Data.RegistrationState == "NotRegistered")
        resourceProvider.Register();
}

Nota:

Para realizar la operación de registro, necesita permisos para la siguiente acción de Azure RBAC: Microsoft.Storage/register/action. Este permiso se incluye mediante los roles integrados Colaborador y Propietario.

Creación de un cliente para administrar recursos de cuenta de almacenamiento

Después de crear un objeto ArmClient y registrar el proveedor de recursos Storage, puede crear objetos de cliente en los niveles de grupo de recursos y de cuenta de almacenamiento. En el ejemplo de código siguiente se muestra cómo crear objetos de cliente para un grupo de recursos y una cuenta de almacenamiento determinada:

// Get a resource group
ResourceGroupResource resourceGroup = await subscription.GetResourceGroupAsync(rgName);

// Get a collection of storage account resources
StorageAccountCollection accountCollection = resourceGroup.GetStorageAccounts();

// Get a specific storage account resource
StorageAccountResource storageAccount = await accountCollection.GetAsync(storageAccountName);

Descripción de la jerarquía de recursos de cliente

Para reducir el número de clientes necesarios para realizar tareas comunes y el número de parámetros redundantes que toma cada uno de esos clientes, el SDK de administración proporciona una jerarquía de objetos que refleja la jerarquía de objetos en Azure. Cada cliente de recursos del SDK tiene métodos para acceder a los clientes de recursos de sus elementos secundarios, que ya está limitado a la suscripción y el grupo de recursos adecuados.

Hay tres niveles estándar de jerarquía para cada tipo de recurso. En el caso de los recursos de la cuenta de almacenamiento, la jerarquía es la siguiente:

  • StorageAccountCollection: Representa las operaciones que puede realizar en una colección de cuentas de almacenamiento que pertenecen a un recurso primario específico, como un grupo de recursos.
  • StorageAccountResource: Representa un objeto de cliente de cuenta de almacenamiento completo y contiene una propiedad Data que expone los detalles como un tipo StorageAccountData. Una instancia de clase tiene acceso a todas las operaciones de ese recurso sin necesidad de pasar parámetros de ámbito, como el identificador de suscripción o el nombre del recurso.
  • StorageAccountData: Representa el modelo que compone un recurso determinado. Normalmente, esta clase es los datos de respuesta de una llamada de servicio y proporciona detalles sobre el recurso.

Compilación de la aplicación

En la siguiente guía se muestra cómo administrar recursos y realizar acciones específicas mediante la biblioteca de administración de Azure Storage para .NET:

Guía Descripción
Administración de una cuenta de almacenamiento Obtenga información sobre cómo crear y administrar una cuenta de almacenamiento, administrar las claves de la cuenta de almacenamiento y configurar las opciones de cliente para crear una directiva de reintento personalizada.