Azure Проблема аутентификации SAS-токена AzCopy - PullRequest
0 голосов
/ 20 февраля 2020

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

IS SH на моей виртуальной машине Azure и получения токена с использованием его управляемого удостоверения:

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

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

{

"signatureServices": "b",

"signatureResourceTypes": "co",

"signaturePermission": "rw c",

"signatureProtocol": "https",

"signatureExpiry": "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 = redacted ' --recursive

Но это не удается с следующее:

ИНФОРМАЦИЯ: Аутентификация не удалась, она либо неверна, либо истекла, либо не имеет правильного разрешения -> github.com/Azure/azure-storage-blob-go/azblob. newStorageError, /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.7.0/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 портал, это работает. Моя виртуальная машина является владельцем учетной записи хранения.

1 Ответ

0 голосов
/ 21 февраля 2020

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

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

...