Executar comandos do PowerShell com credenciais do Microsoft Entra para aceder a dados de blobs

O Armazenamento do Azure fornece extensões para o PowerShell que permitem entrar e executar comandos de script com credenciais do Microsoft Entra. Quando você entra no PowerShell com credenciais do Microsoft Entra, um token de acesso OAuth 2.0 é retornado. Esse token é usado automaticamente pelo PowerShell para autorizar operações de dados subsequentes no armazenamento de Blob. Para operações suportadas, você não precisa mais passar uma chave de conta ou token SAS com o comando.

Você pode atribuir permissões para dados de blob a uma entidade de segurança do Microsoft Entra por meio do controle de acesso baseado em função do Azure (Azure RBAC). Para obter mais informações sobre funções do Azure no Armazenamento do Azure, consulte Atribuir uma função do Azure para acesso a dados de blob.

Operações suportadas

As extensões de Armazenamento do Azure têm suporte para operações em dados de blob. As operações que você pode chamar dependem das permissões concedidas à entidade de segurança do Microsoft Entra com a qual você entra no PowerShell. As permissões para contêineres de Armazenamento do Azure são atribuídas por meio do Azure RBAC. Por exemplo, se você tiver recebido a função Leitor de Dados de Blob , poderá executar comandos de script que leem dados de um contêiner. Se você tiver recebido a função de Colaborador de Dados de Blob, poderá executar comandos de script que leem, gravam ou excluem um contêiner ou os dados que eles contêm.

Para obter detalhes sobre as permissões necessárias para cada operação de Armazenamento do Azure em um contêiner, consulte Chamar operações de armazenamento com tokens OAuth.

Importante

Quando uma conta de armazenamento é bloqueada com um bloqueio Somente Leitura do Azure Resource Manager, a operação Listar Chaves não é permitida para essa conta de armazenamento. List Keys é uma operação POST e todas as operações POST são impedidas quando um bloqueio ReadOnly é configurado para a conta. Por esse motivo, quando a conta é bloqueada com um bloqueio ReadOnly , os usuários que ainda não possuem as chaves da conta devem usar as credenciais do Microsoft Entra para acessar dados de blob. No PowerShell, inclua o -UseConnectedAccount parâmetro para criar um objeto AzureStorageContext com suas credenciais do Microsoft Entra.

Chamar comandos do PowerShell usando credenciais do Microsoft Entra

Para usar o Azure PowerShell para entrar e executar operações subsequentes no Armazenamento do Azure usando credenciais do Microsoft Entra, crie um contexto de armazenamento para fazer referência à conta de armazenamento e inclua o -UseConnectedAccount parâmetro.

O exemplo a seguir mostra como criar um contêiner em uma nova conta de armazenamento do Azure PowerShell usando suas credenciais do Microsoft Entra. Lembre-se de substituir os valores de espaço reservado entre colchetes angulares pelos seus próprios valores:

  1. Entre na sua conta do Azure com o comando Connect-AzAccount :

    Connect-AzAccount
    

    Para obter mais informações sobre como entrar no Azure com o PowerShell, consulte Entrar com o Azure PowerShell.

  2. Crie um grupo de recursos do Azure chamando New-AzResourceGroup.

    $resourceGroup = "sample-resource-group-ps"
    $location = "eastus"
    New-AzResourceGroup -Name $resourceGroup -Location $location
    
  3. Crie uma conta de armazenamento chamando New-AzStorageAccount.

    $storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
      -Name "<storage-account>" `
      -SkuName Standard_LRS `
      -Location $location `
      -AllowBlobPublicAccess $false
    
  4. Obtenha o contexto da conta de armazenamento que especifica a nova conta de armazenamento chamando New-AzStorageContext. Ao agir em uma conta de armazenamento, você pode fazer referência ao contexto em vez de passar repetidamente as credenciais. Inclua o -UseConnectedAccount parâmetro para chamar quaisquer operações de dados subsequentes usando suas credenciais do Microsoft Entra:

    $ctx = New-AzStorageContext -StorageAccountName "<storage-account>" -UseConnectedAccount
    
  5. Antes de criar o contêiner, atribua a função de Colaborador de Dados de Blob de Armazenamento a si mesmo. Mesmo que você seja o proprietário da conta, você precisa de permissões explícitas para executar operações de dados na conta de armazenamento. Para obter mais informações sobre como atribuir funções do Azure, consulte Atribuir uma função do Azure para acesso a dados de blob.

    Importante

    As atribuições de função do Azure podem levar alguns minutos para se propagar.

  6. Crie um contêiner chamando New-AzStorageContainer. Como essa chamada usa o contexto criado nas etapas anteriores, o contêiner é criado usando suas credenciais do Microsoft Entra.

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

Próximos passos