Выполнение команд PowerShell с учетными данными Microsoft Entra для доступа к данным очереди

служба хранилища Azure предоставляет расширения для PowerShell, которые позволяют выполнять команды сценариев и выполнять их с помощью учетных данных Microsoft Entra. При входе в PowerShell с помощью учетных данных Microsoft Entra возвращается маркер доступа OAuth 2.0. PowerShell автоматически использует его для авторизации последующих операций с данными в Хранилище очередей. Для поддерживаемых операций больше не требуется передавать ключ учетной записи или маркер SAS с помощью команды.

Вы можете назначить разрешения для очередей данных субъекту безопасности Microsoft Entra с помощью управления доступом на основе ролей Azure (Azure RBAC). Дополнительные сведения о ролях Azure в службе хранилища Azure см. в статье Назначение роли Azure для доступа к большим двоичным объектам и данным очереди с помощью портала Azure.

Поддерживаемые операции

Для операций с данными очереди поддерживаются расширения службы хранилища Azure. Какие операции можно вызывать, зависят от разрешений, предоставленных субъекту безопасности Microsoft Entra, с помощью которого вы входите в PowerShell. Разрешения для очередей назначаются через RBAC Azure. Например, если вам назначена роль Читатель данных очереди, то вы можете выполнять команды сценария, которые считывают данные из очереди. Если вам назначена роль Участник для данных очереди, то вы можете выполнять команды сценария, которые считывают, записывают или удаляют очередь либо содержащиеся в ней данные.

Дополнительные сведения о разрешениях, необходимых для каждой операции службы хранилища Azure с очередью, см. в разделе Вызов операций хранилища с помощью токенов OAuth.

Важно!

Если учетная запись хранения заблокирована с использованием блокировки Azure Resource Manager ReadOnly, операция Список ключей не разрешена для этой учетной записи хранения. Список ключей — операция POST, и все операции POST блокируются, если для учетной записи настроена блокировка ReadOnly. По этой причине, когда учетная запись заблокирована с блокировкой ReadOnly , пользователи, которые еще не обладают ключами учетной записи, должны использовать учетные данные Microsoft Entra для доступа к данным очереди. В PowerShell включите -UseConnectedAccount параметр для создания объекта Azure служба хранилища Context с учетными данными Microsoft Entra.

Вызов команд PowerShell с помощью учетных данных Microsoft Entra

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Чтобы использовать Azure PowerShell для входа и выполнения последующих операций с служба хранилища Azure с помощью учетных данных Microsoft Entra, создайте контекст хранилища для ссылки на учетную запись хранения и включите -UseConnectedAccount этот параметр.

В следующем примере показано, как создать очередь в новой учетной записи хранения из Azure PowerShell с помощью учетных данных Microsoft Entra. Не забудьте заменить значения заполнителей в угловых скобках собственными значениями.

  1. Войдите в учетную запись Azure с помощью команды Connect-AzAccount.

    Connect-AzAccount
    

    Дополнительные сведения о входе в Azure с помощью PowerShell см. в разделе Вход с помощью Azure PowerShell.

  2. Создайте группу ресурсов Azure с помощью командлета New-AzResourceGroup.

    $resourceGroup = "sample-resource-group-ps"
    $location = "eastus"
    New-AzResourceGroup -Name $resourceGroup -Location $location
    
  3. Создайте учетную запись хранения с помощью командлета New-AzStorageAccount.

    $storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
      -Name "<storage-account>" `
      -SkuName Standard_LRS `
      -Location $location `
    
  4. Получите контекст учетной записи хранения, который указывает новую учетную запись хранения, вызвав New-AzStorageContext. Действуя в учетной записи хранения, можно сослаться на контекст, вместо того чтобы многократно передавать учетные данные. -UseConnectedAccount Включите параметр для вызова любых последующих операций с данными с помощью учетных данных Microsoft Entra:

    $ctx = New-AzStorageContext -StorageAccountName "<storage-account>" -UseConnectedAccount
    
  5. Прежде чем создавать очередь, назначьте себе роль Участник для данных очереди хранилища. Даже при том, что вы являетесь владельцем учетной записи, вам потребуются явные разрешения для выполнения операций с данными в учетной записи хранения. Дополнительные сведения о назначении ролей Azure см. в разделе Назначение роли Azure для доступа к данным очереди.

    Важно!

    Назначение ролей Azure может занимать несколько минут.

  6. Создайте очередь, вызвав New-AzStorageQueue. Так как этот вызов использует контекст, созданный на предыдущих шагах, очередь создается с помощью учетных данных Microsoft Entra.

    $queueName = "sample-queue"
    New-AzStorageQueue -Name $queueName -Context $ctx
    

Следующие шаги