Проблема с аутентификацией AzCopy для токена SAS Azure

Может ли кто-нибудь помочь с ошибкой при использовании ключа SAS для выполнения azCopy?

Я подключаюсь к своей виртуальной машине Azure по SSH и получаю токен, используя его управляемую идентификацию:

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fmanagement.azure.com '-H Метаданные : true

Затем я создаю запрос почтальона с заголовком «Авторизация» «Bearer tokenFromAbove» и телом JSON из:

{

"signedServices": "b",

"signedResourceTypes": "co",

"signedPermission": "rwc",

"signedProtocol": "https",

"signedExpiry": "2020-02-22T00: 06: 00Z"

}

Это сообщение отправляется по адресу: https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/listAccountSas/?api-version=2019-06-01

И возвращает токен sas. Этот токен позволяет мне создать контейнер с помощью команды «azcopy make».

Но я также хочу использовать «azcopy copy» для перемещения файлов с моей виртуальной машины в новый контейнер. Я пытаюсь сделать это с помощью команды:

azcopy copy 'mySourceDirectory' 'https://myStorageAccountName.blob.core.windows.net/myContainer?sv=2015-04-05&ss=b&srt=co&sp=rwc&se=2020-02-22T00:06:00Z&spr=https&sig=redcted '- рекурсивно

Но это не удается в следующих случаях:

ИНФОРМАЦИЯ: не удалось выполнить аутентификацию, либо она неверна, либо срок ее действия истек, либо отсутствует правильное разрешение -> github.com/Azure/azure-storage-blob-go/azblob.newStorageError, / home / vsts / go / pkg / мод / github.com /! azure/[email protected]/azblob/zc_storage_error.go: 42

===== ОШИБКА ОТВЕТА (ServiceCode = AuthenticationFailed) =====

Описание = Серверу не удалось аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись.

RequestId: ef37087d-501e-0050-650b-e81cb4000000 Время: 2020-02-20T16: 35: 50.6651356Z, Подробности:

AuthenticationErrorDetail: Подпись не соответствует. Используемая строка для подписи: myStorageAccountName rwc b co 2020-02-22T00: 06: 00Z https 2015-04-05

Код: AuthenticationFailed

Обратите внимание: если я создаю аналогичный токен SAS на портале Azure, он работает. Моя виртуальная машина является владельцем учетной записи хранения.


person Tester_123    schedule 20.02.2020    source источник
comment
Не могли бы вы рассказать, как вы используете azcopy?   -  person Gaurav Mantri    schedule 20.02.2020
comment
Обновил пост, спасибо.   -  person Tester_123    schedule 20.02.2020
comment
Можете попробовать добавить разрешение list (l) к SAS? Таким образом, ваши разрешения будут rwcl.   -  person Gaurav Mantri    schedule 20.02.2020
comment
К сожалению, без изменений. Я перепробовал все варианты SignedServices, SignedResourceType и SignedPermission.   -  person Tester_123    schedule 20.02.2020
comment
Это ошибка в azcopy: github.com/Azure/azure-storage-azcopy / issues / 122   -  person Hong Ooi    schedule 20.02.2020


Ответы (1)


Благодаря ответам выше. Это действительно открытая проблема с командой «azcopy copy», которая не может интерпретировать формат даты, возвращаемый в токене SAS, когда этот токен был сгенерирован из остального API.

Мы найдем обходной путь - я думаю, мы можем временно использовать токен, сгенерированный на портале.

person Tester_123    schedule 21.02.2020