#azure-storage #azure-cli
#azure-хранилище #azure-cli
Вопрос:
Мне нужно использовать либо CLI, либо PowerShell (ARM) для извлечения ключа из учетной записи хранилища Azure (classic). Единственная проблема здесь заключается в том, что мне предоставляется только имя учетной записи хранилища и подписка.
С помощью Get-AzStorageAccount и Get-AzStorageAccountKey мне нужно предоставить группу ресурсов, которой у меня нет. az storage account show-connection-string
Команда работает только с ресурсами ARM, но не с классическим хранилищем.
Ответ №1:
вы можете использовать что-то вроде этого:
Get-AzResource -ResourceType "Microsoft.ClassicStorage/StorageAccounts" | Where-Object {
$_.Name -eq $your_storage_account_name
}
чтобы узнать эту информацию
Комментарии:
1. Спасибо. Это вариант, который я, вероятно, могу использовать.
2. Это обеспечивает решение для поиска группы ресурсов, но не для поиска ключа учетной записи. Смотрите Мой ответ для полного решения.
3. тьфу, человек специально спросил, как найти группу ресурсов учетной записи хранилища. если вы действительно прочитали вопрос
Ответ №2:
Я использовал этот скрипт для получения строки подключения всех учетных записей хранилища classic в текущей подписке:
#Requires -Modules Az.Resources, Az.Accounts
$classicAccounts = Get-AzResource -ResourceType "Microsoft.ClassicStorage/StorageAccounts"
$token = (Get-AzAccessToken).Token
foreach ($account in $classicAccounts) {
$keys = Invoke-RestMethod -Method POST -Uri "https://management.azure.com$($account.ResourceId)/listKeys?api-version=2016-11-01" -Headers @{"Authorization"="Bearer $token"}
Write-Host "DefaultEndpointsProtocol=https;AccountName=$($account.Name);AccountKey=$($keys.primaryKey);EndpointSuffix=core.windows.net"
}
Azure PS не поддерживает извлечение ключей из учетных записей хранилища classic; необходимо использовать REST API. Смотрите Выпуск Azure PowerShell GitHub # 10329: [Az.Storage] Get-AzStorageAccount не может получить доступ к учетным записям хранилища классических больших двоичных объектов.
Для учетных записей хранилища ARM существует Get-AzStorageAccountKey
командлет. В более старом пакете AzureRM он вызывался Get-AzureRmStorageAccountKey
. Для классической учетной записи хранилища они оба выдают одну и ту же ошибку:
Get-AzStorageAccountKey: ресурс «Microsoft.Storage / storageAccounts / mystorageaccount» в группе ресурсов «Default-Storage-WestEurope» не найден. Для получения более подробной информации, пожалуйста, перейдите по https://aka.ms/ARMResourceNotFoundFix