Выполнение команд 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. Не забудьте заменить значения заполнителей в угловых скобках собственными значениями.
Войдите в учетную запись Azure с помощью команды Connect-AzAccount.
Connect-AzAccount
Дополнительные сведения о входе в Azure с помощью PowerShell см. в разделе Вход с помощью Azure PowerShell.
Создайте группу ресурсов Azure с помощью командлета New-AzResourceGroup.
$resourceGroup = "sample-resource-group-ps" $location = "eastus" New-AzResourceGroup -Name $resourceGroup -Location $location
Создайте учетную запись хранения с помощью командлета New-AzStorageAccount.
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup ` -Name "<storage-account>" ` -SkuName Standard_LRS ` -Location $location ` -AllowBlobPublicAccess $false
Получите контекст учетной записи хранения, который указывает новую учетную запись хранения, вызвав New-AzStorageContext. Действуя в учетной записи хранения, можно сослаться на контекст, вместо того чтобы многократно передавать учетные данные.
-UseConnectedAccount
Включите параметр для вызова любых последующих операций с данными с помощью учетных данных Microsoft Entra:$ctx = New-AzStorageContext -StorageAccountName "<storage-account>" -UseConnectedAccount
Прежде чем создавать контейнер, назначьте себе роль Участник данных в хранилище BLOB-объектов. Даже при том, что вы являетесь владельцем учетной записи, вам потребуются явные разрешения для выполнения операций с данными в учетной записи хранения. Дополнительные сведения о назначении ролей Azure см. в разделе Назначение роли Azure для доступа к данным BLOB-объектов.
Важно!
Назначение ролей Azure может занимать несколько минут.
Создайте контейнер, выполнив командлет New-AzStorageContainer. Так как этот вызов использует контекст, созданный на предыдущих шагах, контейнер создается с помощью учетных данных Microsoft Entra.
$containerName = "sample-container" New-AzStorageContainer -Name $containerName -Context $ctx