Ограничение доступа к учетной записи хранения, содержащей большой двоичный объект пакета, для развертывания облачной службы (расширенная поддержка)
Я почти закончил перенос наших облачных служб (классических) на облачные службы (расширенная поддержка). Сейчас я работаю над обновлением конвейеров развертывания. Мой большой двоичный объект пакета находится в учетной записи хранения. Я создаю SAS для большого двоичного объекта и использую вызов API на странице Management.azure.com для создания/обновления развертывания, передавая шаблон ARM в качестве тела запроса.
Это работает правильно, если для учетной записи хранения с большим двоичным объектом пакета настроена сеть «разрешить доступ из всех сетей». Я хочу ограничить этот доступ. Я установил разрешение доступа из:
- конкретные IP-адреса наших devops-серверов
- наши собственные IP-адреса
- частная виртуальная сеть/подсети для облачной службы
Я также устанавливаю флажок «Разрешить службам Azure из списка доверенных служб доступ к этой учетной записи хранения».
Тем не менее, вызов API завершается неудачно с сообщением об ошибке, указывающим, что доступ к большому двоичному объекту запрещен. Когда я меняю конфигурацию сети учетной записи хранения на «разрешить доступ из всех сетей», все работает правильно.
При большом количестве поисков я нашел только одно совпадение, объясняющее ту же проблему — https://github.com/Azure/azure-powershell/issues/20299 — но не было предложено никакого решения, кроме разрешения доступа из всех сетей.
Должно быть, я упускаю какую-то хитрость, но что это? Как ограничить доступ к учетной записи хранения?
1 ответ
Здесь вы можете посмотреть две вещи:
Использование частных IP-адресов вашей виртуальной сети облачного сервиса не будет работать, поскольку учетная запись хранения видит только общедоступный IP-адрес. По умолчанию ваш исходящий общедоступный IP-адрес будет назначен случайным образом, но вы можете сделать его статическим, подключив шлюз Nat к виртуальной сети, а затем разрешив общедоступный IP-адрес этого шлюза брандмауэру хранилища.
В качестве альтернативы вы также можете использовать частную конечную точку для присоединения учетной записи хранения к вашей виртуальной сети. Тогда это будет означать, что облачная служба будет иметь доступ к ней через частный IP-адрес и будет разрешена через брандмауэр. Возможно, это самый простой и дешевый вариант.