Ejecución de comandos de PowerShell con credenciales de Microsoft Entra para acceder a los datos de blob

Azure Storage proporciona extensiones para PowerShell que le permiten iniciar sesión y ejecutar comandos de scripting con credenciales de Microsoft Entra. Al iniciar sesión en PowerShell con credenciales de Microsoft Entra, se devuelve un token de acceso OAuth 2.0. PowerShell usa automáticamente ese token para autorizar las operaciones de datos posteriores en Blob Storage. Para las operaciones admitidas, ya no necesita pasar una clave de cuenta o token SAS con el comando.

Puede asignar permisos a los datos de blobs a una entidad de seguridad de Microsoft Entra a través del control de acceso basado en rol de Azure (RBAC de Azure). Para más información sobre los roles de Azure en Azure Storage, vea Asignación de roles de Azure para el acceso a datos de blobs.

Operaciones compatibles

Las extensiones de Azure Storage se admiten para las operaciones en datos de blob. Las operaciones a las que pueda llamar dependerán de los permisos que se concedan a la entidad de seguridad de Microsoft Entra con la que inicie sesión en PowerShell. Los permisos para contenedores de Azure Storage se asignan mediante Azure RBAC. Por ejemplo, si se le asigna el rol de lector de datos de blob, puede ejecutar comandos de scripting que lean datos de un contenedor. Si se le asigna el rol de colaborador de datos de blob, podrá ejecutar comandos de scripting que lean, escriban o eliminen un contenedor, o los datos que estos contienen.

Para más información sobre los permisos requeridos para cada operación de Azure Storage en un contenedor, consulte la sección Llamadas a operaciones de almacenamiento con tokens de OAuth.

Importante

Cuando una cuenta de almacenamiento está bloqueada con un bloqueo ReadOnly de Azure Resource Manager, no se permite la operación Crear lista de claves para esa cuenta de almacenamiento. Crear lista de claves es una operación POST y todas las operaciones POST se impiden cuando se configura un bloqueo ReadOnly para la cuenta. Por este motivo, cuando la cuenta está bloqueada con un bloqueo de ReadOnly, los usuarios que aún no posean las claves de la cuenta deben utilizar las credenciales de Microsoft Entra para acceder a los datos blob. En PowerShell, incluya el parámetro -UseConnectedAccount para crear un objeto AzureStorageContext con sus credenciales de Microsoft Entra.

Llamada a comandos de PowerShell mediante credenciales de Microsoft Entra

Si quiere usar Azure PowerShell para iniciar sesión y ejecutar operaciones posteriores en Azure Storage mediante credenciales de Microsoft Entra, cree un contexto de almacenamiento para hacer referencia a la cuenta de almacenamiento e incluya el parámetro -UseConnectedAccount.

En el ejemplo siguiente se muestra cómo crear un contenedor en una nueva cuenta de almacenamiento desde Azure PowerShell mediante las credenciales de Microsoft Entra. No olvide reemplazar los valores del marcador de posición entre corchetes angulares por sus propios valores:

  1. Inicie sesión en su cuenta de Azure con el comando Connect-AzAccount:

    Connect-AzAccount
    

    Para obtener más información sobre cómo iniciar sesión en Azure con PowerShell, consulte Inicio de sesión con Azure PowerShell.

  2. Cree un grupo de recursos de Azure mediante una llamada a New-AzResourceGroup.

    $resourceGroup = "sample-resource-group-ps"
    $location = "eastus"
    New-AzResourceGroup -Name $resourceGroup -Location $location
    
  3. Cree una cuenta de almacenamiento mediante una llamada a New-AzStorageAccount.

    $storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
      -Name "<storage-account>" `
      -SkuName Standard_LRS `
      -Location $location `
      -AllowBlobPublicAccess $false
    
  4. Obtenga el contexto de la cuenta de almacenamiento que especifica la nueva cuenta de almacenamiento mediante una llamada a New-AzStorageContext. Cuando actúe en una cuenta de almacenamiento, puede hacer referencia al contexto en lugar de proporcionar varias veces las credenciales. Incluya el parámetro -UseConnectedAccount para llamar a las operaciones de datos posteriores con sus credenciales de Microsoft Entra:

    $ctx = New-AzStorageContext -StorageAccountName "<storage-account>" -UseConnectedAccount
    
  5. Antes de crear el contenedor, asígnese a sí mismo el rol Colaborador de datos de Storage Blob. Aunque sea el propietario de la cuenta, necesita permisos explícitos para realizar operaciones de datos en la cuenta de almacenamiento. Para más información sobre la asignación de roles de Azure, consulte Asignación de roles de Azure para el acceso a datos de blobs.

    Importante

    La propagación de las asignaciones de roles de Azure puede tardar unos minutos.

  6. Cree un contenedor mediante una llamada a New-AzStorageContainer. Dado que esta llamada usa el contexto creado en los pasos anteriores, el contenedor se crea con sus credenciales de Microsoft Entra.

    $containerName = "sample-container"
    New-AzStorageContainer -Name $containerName -Context $ctx
    

Pasos siguientes