WedX - журнал о программировании и компьютерных науках

Ошибка 403 при создании контейнера больших двоичных объектов службы хранилища Azure (брандмауэр хранилища включен

Обновлять:

После комментария Морада я нашел журнал, который показывает мне, что операции «CreateContainer», похоже, выполняются под другим IP ???????? Есть идеи, почему это могло произойти?

введите здесь описание изображения


Исходное сообщение:

У меня есть учетная запись хранения Azure с включенным брандмауэром, и я пытаюсь создать контейнер больших двоичных объектов в учетной записи, используя конвейер сборки VSTS.

Конвейер управляется агентом, размещенным в Microsoft, и поэтому в рамках моего процесса я добавляю IP-адрес машины к брандмауэру перед созданием контейнера и удаляю его сразу после этого.

Проблема в том, что я получаю сообщение об ошибке 403 при запуске команды create blob.

Я попытался добавить время ожидания после добавления IP в брандмауэр, но даже если я подожду 5 минут, я все равно получаю 403.

Это сценарий, который я запускаю:

$MyIP = (Invoke-WebRequest 'https://ifconfig.me/ip' -Method Get).Content

Try {
    Add-AzStorageAccountNetworkRule -ResourceGroupName $ResourceGroupName `
        -Name $StorageAccountName `
        -IPAddressOrRange $MyIP

    $ctx = (Get-AzStorageAccount -ResourceGroupName $ResourceGroupName `
            -Name $StorageAccountName).Context

    New-AzStorageContainer -Name $ContainerName `
        -Context $ctx
}
Finally {
    Remove-AzStorageAccountNetworkRule -ResourceGroupName $ResourceGroupName `
        -Name $StorageAccountName `
        -IPAddressOrRange $MyIP
}

и это результат, который я получаю (вы можете видеть, что ip агента правильно добавлен)

Action IPAddressOrRange
------ ----------------
 Allow 127.0.0.1
 Allow 104.40.203.123 # This is the build agent IP

New-AzStorageContainer: C:\Users\Desktop\Test.ps1:15
Line |
  15 |      New-AzStorageContainer -Name $ContainerName `
     |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | This request is not authorized to perform this operation. HTTP Status Code: 403 - HTTP Error Message:
     | This request is not authorized to perform this operation.
ErrorCode: AuthorizationFailure
     | ErrorMessage: This request is not authorized to perform this operation.
     | RequestId:9112d81a-e01e-002a-7935-331d33000000
Time:2020-05-26T08:11:04.9195569Z

Action IPAddressOrRange
------ ----------------
 Allow 127.0.0.1

Примечание. Отключение брандмауэра работает, но я не могу этого сделать в продукте


  • Если вы настроили аналитику хранилища для своей учетной записи хранения, вы можете проверить журналы аналитики, чтобы узнать, с какого IP-адреса поступает запрос на создание контейнера больших двоичных объектов. 26.05.2020
  • Я этого не сделал, но я могу это сделать. Я постараюсь обновить свои выводы. Спасибо 26.05.2020
  • Я не вижу информации об исходных IP-адресах в своей аналитике. Только показатели использования. 26.05.2020
  • Вы видите $logs контейнер в своей учетной записи хранения (вам потребуется использовать Microsoft Storage Explorer)? Здесь вы увидите журналы аналитики. Дополнительную информацию см. Здесь: docs.microsoft .com / ru-ru / rest / api / storageservices /. 26.05.2020
  • Нашел! Спасибо! Кажется, вы правы ????, по какой-то действительно странной причине операция CreateContainer имеет другой IP-адрес, чем ВСЕ другие операции. Есть идеи, почему это должно быть? 26.05.2020
  • Без понятия. Но вы можете проверить этот IP-адрес в списке общедоступных IP-адресов VSTS. 27.05.2020

Ответы:


1

У меня есть ответ от Microsoft по этому поводу.

Происходит следующее: когда мы создаем организацию Azure DevOps, нам нужно сообщить об этом регион, но эти регионы являются подмножеством регионов Azure. Каждый раз, когда я запускал конвейер с помощью Microsoft Hosted Agent, этот агент запускается в каком-то регионе Azure.

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

Итак, нет никакого обходного пути, чтобы исправить это с помощью Microsoft Hosted Agents.

Альтернатива

Согласно предложению Microsoft, вам нужно будет использовать собственный агент, чтобы гарантировать, что эта проблема не возникнет. Другой известной альтернативы нет.

Долгосрочное решение

Существует запрос функции на включение Azure DevOps в качестве одного из возможных вариантов для доверенных служб в учетной записи хранения. Это исправит проблему надлежащим образом, однако сроки реализации этой функции отсутствуют.

Надеюсь, это поможет кому-то еще с той же проблемой.

????‍♀️

24.06.2020
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]