Executar comandos do PowerShell com as credenciais do Microsoft Entra para acessar dados de blob

O Armazenamento do Microsoft Azure fornece extensões para o PowerShell que permitem que você se conecte e execute comandos de script com as credenciais do Microsoft Entra. Quando você entra no PowerShell com as credenciais do Microsoft Entra, um token de acesso OAuth 2.0 é retornado. Esse token é usado automaticamente pelo PowerShell para autorizar operações de dados posteriores no Armazenamento do blob. Para operações com suporte, você não precisa 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 RBAC do Azure (controle de acesso baseado em função do Azure). Para obter mais informações sobre as funções do Azure no Armazenamento do Azure, confira Atribuir uma função do Azure para acesso a dados de blob.

Operações com suporte

As extensões de armazenamento do Microsoft Azure têm suporte para operações em dados de blob. As operações que podem ser chamadas 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 Microsoft Azure são atribuídas por meio do RBAC do Azure. Por exemplo, se a função Leitor de dados de blob for atribuída a você, será possível executar comandos de script que leem dados de um contêiner. Se a função Colaborador de dados de blob for atribuída a você, será possível executar comandos de script que leem, gravam ou excluem um contêiner ou os dados que ele contém.

Para obter detalhes sobre as permissões para cada operação de Armazenamento do Microsoft Azure em um contêiner, veja Operações de armazenamento de chamada com tokens OAuth.

Importante

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

Chamar comandos do PowerShell usando as credenciais do Microsoft Entra

Para usar o Azure PowerShell para entrar e executar operações posteriores no Armazenamento do Microsoft Azure usando as credenciais do Microsoft Entra, crie um contexto de armazenamento para referenciar a conta de armazenamento e inclua o parâmetro -UseConnectedAccount.

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 dos espaços reservados 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, veja Conectar-se 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 executar uma ação em uma conta de armazenamento, você pode referenciar o contexto em vez de transmitir repetidamente as credenciais. Inclua o parâmetro -UseConnectedAccount para chamar operações de dados posteriores usando suas credenciais do Microsoft Entra:

    $ctx = New-AzStorageContext -StorageAccountName "<storage-account>" -UseConnectedAccount
    
  5. Antes de criar o contêiner, atribua a função Colaborador de Dados do Blob de Armazenamento a si mesmo. Mesmo que você seja o proprietário da conta, precisará 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, confira 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 serem propagadas.

  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óximas etapas