Генерация токенов SAS Azure с помощью PowerShell и портала

Есть несколько различных способов делегировать доступ к ресурсам в Azure. Один из способов – через токен Shared Access Signature (SAS). Токен SAS – это способ гранулированного контроля за тем, как клиент может получить доступ к данным в Azure. Вы можете управлять многими вещами, такими как ресурсы, к которым клиент может получить доступ, разрешения клиента, срок действия токена и многое другое.

Один из распространенных способов использования токена SAS – обеспечение безопасности учетных записей хранения Azure с использованием account SAS.

В этой статье вы узнаете, как создать токен SAS Azure как через портал Azure, так и через PowerShell. Когда вы закончите, у вас будет токен SAS, который затем можно передать различным клиентским командам для аутентификации и авторизации управления хранением Azure.

Предварительные требования

В этой статье вы научитесь выполнять несколько различных задач. Если вы хотите следовать за мной, убедитесь, что у вас есть следующие предварительные требования.

  • Подписка Azure. Если у вас ее еще нет, вы можете запросить пробную подписку.
  • Учетная запись хранения Azure. Пожалуйста, обратитесь к Создание учетной записи хранения, чтобы узнать больше.
  • Модуль Az PowerShell (необязательно). Это требуется только в случае, если вы собираетесь создавать токены общего доступа с помощью PowerShell
  • Windows PowerShell 5.1 или PowerShell Core 6+, если создаете токен SAS через PowerShell

Генерация токена SAS с использованием портала Azure

Самый простой способ сгенерировать токен SAS – использовать портал Azure. При использовании портала Azure вы можете навигироваться по различным опциям графически.

Для создания токена через портал Azure сначала перейдите к хранилищу, к которому вы хотите получить доступ, в разделе Настройки, затем нажмите Общий доступ. Ниже вы можете увидеть пример того, как это может выглядеть.

Существует много разрешений, которые вы можете предоставить для токенов SAS, а также времена начала/окончания. В этой статье вы назначите полные разрешения и оставите время истечения по умолчанию – восемь часов. Если вам нужно подробное объяснение каждого разрешения, ознакомьтесь с документацией Microsoft.

Оставьте все флажки по умолчанию и нажмите кнопку Создать токен SAS и строку подключения, как показано ниже.

Generating SAS Token from the Azure Portal

Как только токен будет сгенерирован, вы увидите его в списке ниже кнопки Создать токен SAS и строку подключения, как показано ниже.

Copying the generated SAS token

На этом этапе вы можете скопировать токен SAS и вставить его значение туда, где вам нужно его использовать.

Создание токена SAS с использованием PowerShell

Чтобы избежать необходимости входа в портал Azure или, возможно, если вам нужно сгенерировать токены SAS для множества хранилищных аккаунтов одновременно, вы можете использовать PowerShell. PowerShell использует REST API Azure для вызовов к Azure для генерации токена.

Для создания токена SAS через PowerShell сначала откройте консоль PowerShell и выполните аутентификацию с помощью Connect-AzAccount. После аутентификации найдите хранилищный аккаунт, к которому вы хотите получить доступ. Ниже вы можете увидеть пример запроса к хранилищному аккаунту с именем demo_account в ресурсной группе demo_rg. Используя значение $context, вы передадите его команде генерации токена.

$context = (Get-AzStorageAccount -ResourceGroupName 'demo_rg' -AccountName 'demo_account').context

Как только будет найден контекст хранилищного аккаунта, создайте токен SAS с помощью команды New-AzStorageAccountSASToken. Ниже приведен пример генерации токена SAS с полными правами для хранилищного аккаунта и всех его компонентов.

New-AzStorageAccountSASToken -Context $context -Service Blob,File,Table,Queue -ResourceType Service,Container,Object -Permission racwdlup

При создании токенов SAS с помощью New-AzStorageAccountSASToken токен будет действителен в течение одного часа. Если вы хотите продлить этот срок, вы можете использовать параметр ExpiryTime.

Ограничение разрешений токена SAS

Одна из причин использования токена SAS – предоставление доступа другим сторонам на ограниченный период времени и с определенным набором разрешений. В предыдущем примере был сгенерирован токен SAS с полными правами доступа. Предоставление полного доступа не всегда является оптимальным вариантом.

Параметр Service определяет доступ к сервису или сервисам. Например, используйте blob, чтобы разрешить доступ только к службе хранения блобов Azure. Другие сервисы включают Файл, Таблица и Очередь.

Параметр ResourceType ограничивает доступ к определенным типам ресурсов. Используя значение контейнер, например, разрешается доступ только к ресурсам контейнера. Другие допустимые типы ресурсов Сервис и Объект.

Параметр Permission позволяет определить разрешенные разрешения. Укажите одно или несколько разрешений по мере необходимости. Значение rwd эквивалентно предоставлению разрешений на чтение, запись и удаление. Другие допустимые значения разрешений (l)ist, (a)dd, (u)pdate и (p)rocess.

Использование токена SAS

Существует много способов использования сгенерированного токена SAS. Один из самых распространенных способов – использовать его в контексте хранения. Контекст хранения – это способ упаковки учетных данных, которые затем можно передавать различным командам.

A common way to use the SAS token is via PowerShell. Using the New-AzStorageContext command that’s part of the Az PowerShell module. You can see an example below using the SAS token to upload a file to an existing storage container.

$StorageAccountName = 'foo'
 $ContainerName = 'bar'
 Create a storage context
 $sasToken = ''
 $StorageContext = New-AzStorageContext $StorageAccountName -SasToken $sasToken
 Upload a file
 $storageContainer = Get-AzStorageContainer -Name $ContainerName -Context $StorageContext
 $storageContainer | Set-AzStorageBlobContent –File 'C:\file.txt' –Blob 'file.txt'

Аннотация

Создание токена SAS можно выполнить несколькими разными способами. В этой статье вы узнали о нескольких наиболее распространенных способах. После создания токен SAS может быть использован по-разному, но выбор способа зависит от вас.

Source:
https://adamtheautomator.com/azure-sas-token/