Выполнение команд PowerShell с учетными данными Microsoft Entra для доступа к данным больших двоичных объектов

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

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

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

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

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

Важно!

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

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

Чтобы использовать 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 `
      -AllowBlobPublicAccess $false
    
  4. Получите контекст учетной записи хранения, который указывает новую учетную запись хранения, вызвав New-AzStorageContext. Действуя в учетной записи хранения, можно сослаться на контекст, вместо того чтобы многократно передавать учетные данные. -UseConnectedAccount Включите параметр для вызова любых последующих операций с данными с помощью учетных данных Microsoft Entra:

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

    Важно!

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

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

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

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