Azure DevOps -> Конвейеры -> Библиотека -> Доступ Azure Хранилище ключей -> Хранилище ключей не разрешает доступ из всех сетей - PullRequest
0 голосов
/ 24 апреля 2020

Мы установили соединение между Azure DevOps и Azure Key Vault через Service Connections (аутентификация субъекта-службы). Однако, чтобы это работало, нам нужно пометить Azure Key Vault -> Networking как Разрешить доступ с: All networks. Учитывая, что мы храним здесь секреты, мы хотели бы использовать опцию Private endpoint and selected networks вместо этого с Allow trusted Microsoft services to bypass this firewall?, установленным на Yes.

Примерно так:

enter image description here

Однако это приводит к ошибке на Azure DevOps -> Конвейеры -> Библиотека:

Указанное Azure служебное соединение должно иметь секрет «Get, List» Разрешения на управление выбранным хранилищем ключей. Нажмите «Авторизовать», чтобы включить Azure Конвейеры, чтобы установить эти разрешения или управлять секретными разрешениями на портале Azure.

enter image description here

Если мы устанавливаем Разрешить доступ с: All networks для Azure хранилища ключей, оно работает, как указано ранее, но мы хотели бы избежать этого, если это возможно.

enter image description here

Настройка Azure Задача хранилища ключей в конвейере

enter image description here

или настройка группы переменных с последующим переключением на Private endpoint and selected networks приводит к похожая ошибка при развертывании.

enter image description here

MyKey: "Адрес клиента не авторизован, а вызывающая сторона не является доверенной службой. \ r \ nКлиент адрес: 111.222.333.44. Звонящий: appid = ; oid = 00000000-0000-0000-0000-000000000000; iss = https://sts.windows.net/ / \ r \ nVault: My-Vault; location = northeurope. Указанное Azure служебное подключение должно иметь разрешения Get, List секретного управления для выбранного хранилища ключей. Чтобы установить эти разрешения s, загрузите сценарий ProvisionKeyVaultPermissions.ps1 из журналов сборки и выпуска и выполните его или установите их с портала Azure. "

enter image description here

Адрес клиента, к сожалению, каждый раз новый, как и ожидалось, но значения oid и iss совпадают. Согласно документации, в брандмауэр можно добавить только IPv4 address or CIDR. Можно ли пометить Azure агентов как надежные службы Microsoft или это плохая практика? Хотя это выглядит намного безопаснее, чем All networks.

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Это все еще открытый вопрос - Проблема

Возможно, некоторые из решений, упомянутых в URL

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

  • WhiteList Azure Список IP-адресов DevOps возможно еженедельно, но опять же это кажется ненадежным

  • То, что предложил @Grand, на самом деле также является одним из решений.

1 голос
/ 24 апреля 2020

(Обновление после комментария автора)

Используете ли вы размещенные на Microsoft агенты? Они являются динамическими c, возможно, вы могли бы вместо этого разместить агент на виртуальной машине в Azure. Вы будете знать IP машины и разрешите это в настройках KV.

Извлечение Агентов, размещенных самостоятельно в документах Microsoft.

...