Поделиться через


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

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

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

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

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

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

Это важно

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

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

Чтобы войти и выполнить последующие операции с помощью Azure PowerShell по отношению к Azure Storage, используя учетные данные 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
    

Дальнейшие действия