Escolha como autorizar o acesso aos dados do blob com a CLI do Azure

O armazenamento do Azure fornece extensões para CLI do Azure que permitem especificar como você deseja autorizar operações em dados de blob. Você pode autorizar operações de dados das seguintes maneiras:

  • Com uma entidade de segurança do Microsoft Entra. A Microsoft recomenda usar as credenciais do Microsoft Entra para maior segurança e facilidade de uso.
  • Com a chave de acesso da conta ou um token SAS (Assinatura de Acesso Compartilhado).

Especifique como as operações de dados são autorizadas

Os comandos da CLI do Azure para ler e gravar dados de blob incluem o --auth-mode parâmetro opcional. Especifique esse parâmetro para indicar como uma operação de dados deve ser autorizada:

  • Defina o parâmetro --auth-mode como login para se conectar usando uma entidade de segurança do Microsoft Entra (recomendado).
  • Defina o parâmetro --auth-mode como o valor de key herdado para tentar recuperar a chave de acesso da conta a ser usada para autorização. Se você omitir o --auth-mode parâmetro, a CLI do Azure também tentará recuperar a chave de acesso.

Para usar o --auth-mode parâmetro, certifique-se de que tenha instalada a CLI do Azure, versão 2.0.46 ou posterior. Execute az --version para verificar sua versão instalada.

Observação

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.

Importante

Se você omitir o --auth-mode parâmetro ou defini-lo como key, o CLI do Azure tentará usar a chave de acesso da conta para autorização. Nesse caso, a Microsoft recomenda que você forneça a chave de acesso no comando ou na variável de ambiente AZURE_STORAGE_KEY. Para obter mais informações sobre variáveis de ambiente, consulte a seção intitulada Definir variáveis de ambiente para parâmetros de autorização.

Se você não fornecer a chave de acesso, a CLI do Azure tentará chamar o provedor de recursos do Armazenamento do Azure para recuperá-la para cada operação. A execução de muitas operações de dados que exigem uma chamada ao provedor de recursos pode resultar em limitação. Para obter mais informações sobre os limites do provedor de recursos, consulte Escalabilidade e metas de desempenho para o provedor de recursos de armazenamento do Azure.

Autorizar com credenciais do Microsoft Entra

Quando você entra na CLI do Azure com as credenciais do Microsoft Entra, um token de acesso OAuth 2.0 é retornado. Esse token é usado automaticamente pela CLI do Azure para autorizar operações de dados subsequentes no armazenamento de blobs ou filas. 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.

Permissões para operações de dados de chamada

As extensões de armazenamento do 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 na CLI do Azure. As permissões para contêineres de armazenamento do Azure são atribuídas por meio do RBAC do Azure. Por exemplo, se a função Leitor de dados do blob de armazenamento for atribuída a você, você poderá executar comandos de script que leem dados de contêiner. Se a função Colaborador de dados do blob de armazenamento for atribuída a você, você poderá 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, consulte Operações de armazenamento de chamada com tokens OAuth.

Exemplo: autorizar uma operação para criar um contêiner com as credenciais do Microsoft Entra

O exemplo a seguir mostra como criar um contêiner por meio da CLI do Azure usando as credenciais do Microsoft Entra. Para criar o contêiner, você precisará entrar na CLI do Azure, e precisará de um grupo de recursos e uma conta de armazenamento. Para saber como criar esses recursos, consulte Início Rápido: criar, baixar e listar blobs com a CLI do Azure.

  1. 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.

  2. Chame o comando az storage container create com o parâmetro --auth-mode definido como login para criar o contêiner usando suas credenciais do Microsoft Entra. Lembre-se de substituir os valores dos espaços reservados entre colchetes angulares pelos seus próprios valores:

    az storage container create \
        --account-name <storage-account> \
        --name sample-container \
        --auth-mode login
    

Autorização com a chave de acesso da conta

Se você tem a chave da conta, chame qualquer operação de dados do Armazenamento do Azure. Em geral, o uso da chave da conta é menos seguro. Se a chave da conta for comprometida, todos os dados em sua conta poderão ser comprometidos.

O exemplo a seguir mostra como criar um contêiner usando a chave de acesso da conta. Especifique a chave da conta e forneça o --auth-mode parâmetro com o key valor:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --account-key <key>
    --auth-mode key

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 devem acessar os dados com as credenciais do Microsoft Entra.

Autorização com um token SAS

Se você tem um token SAS, poderá chamar operações de dados que são permitidas pela SAS. O exemplo a seguir mostra como criar um contêiner usando um token SAS:

az storage container create \
    --account-name <storage-account> \
    --name sample-container \
    --sas-token <token>

Defina variáveis de ambiente para parâmetros de autorização

Você pode especificar parâmetros de autorização em variáveis de ambiente para evitar incluí-los em cada chamada a uma operação de dados do Armazenamento do Azure. A tabela a seguir descreve as variáveis de ambiente disponíveis.

Variável de ambiente Descrição
AZURE_STORAGE_ACCOUNT O nome da conta de armazenamento. Essa variável deve ser usada em conjunto com a chave de conta de armazenamento ou um token SAS. Se nenhum deles estiver presente, a CLI do Azure tentará recuperar a chave de acesso da conta de armazenamento usando a conta autenticada do Microsoft Entra. Se um grande número de comandos for executado ao mesmo tempo, a marca de limitação do provedor de recursos do armazenamento do Azure poderá ser atingida. Para obter mais informações sobre os limites do provedor de recursos, consulte Escalabilidade e metas de desempenho para o provedor de recursos de armazenamento do Azure.
AZURE_STORAGE_KEY A chave da conta de armazenamento. Essa variável precisa ser usada em conjunto com o nome da conta de armazenamento.
AZURE_STORAGE_CONNECTION_STRING Uma cadeia de conexão que inclui a chave de conta de armazenamento ou um token SAS. Essa variável precisa ser usada em conjunto com o nome da conta de armazenamento.
AZURE_STORAGE_SAS_TOKEN Um token SAS (Assinatura de Acesso Compartilhado). Essa variável precisa ser usada em conjunto com o nome da conta de armazenamento.
AZURE_STORAGE_AUTH_MODE O modo de autorização com o qual o comando deve ser executado. Os valores permitidos são login (recomendado) ou key. Se você especificar login, a CLI do Azure usará suas credenciais do Microsoft Entra para autorizar a operação de dados. Se você especificar o modo key herdado, a CLI do Azure tentará consultar a chave de acesso da conta e autorizar o comando com a chave.

Próximas etapas