it-swarm.com.ru

Не удается получить доступ к секретам хранилища ключей через конечную точку службы в выпуске VSTS

Мы пытаемся загрузить секреты с помощью задачи загрузить секретные ключи хранилища релиз в VSTS. 

Принципал службы добавляется в политики доступа к хранилищу ключей, проверяются все права, включая получение, список секретов. 

Я создал конечную точку службы с этим субъектом службы и использую ее для развертывания в Azure, но я получаю следующее error при попытке получить секреты keyvault: 

2018-05-21T12: 18: 53.9240364Z ## [ошибка] Получить секреты не удалось. Ошибка: Доступ закрыт. Указанная конечная точка Azure должна иметь Get, List secret разрешения на управление выбранным хранилищем ключей. Чтобы установить эти permissions, скачайте скрипт ProvisionKeyVaultPermissions.ps1 из создавать и выпускать журналы и выполнять их OR, устанавливать их на портале Azure.

5
fvl

0) Зайдите в свою библиотеку переменных

1) Отметьте Link secrets from an Azure key vault as variables

2) Выберите подписку

3) Выберите хранилище ключей

4) Нажмите Authorize

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

Я уверен, что когда-то была кнопка Authorize при выборе хранилища ключей в задаче, но я могу ошибаться. Просто потратил 2 часа, чтобы понять это ....

 enter image description here

Проблема отслежена здесь

2
Mardoxx

Вам необходимо установить предварительную настройку для правильного принципала, выбранного . И формат тарифа:

account-<VSTS project name you are build/deploy>-ID

Deatil шаги, чтобы установить разрешение, как показано ниже:

В Azure protal -> перейдите в хранилище ключей Azure -> Политики доступа -> Добавить новый -> выберите табличку и задайте права доступа (должны быть установлены параметры Get и Listpermission) -> выберите участника -> найдите начало участника с помощью account-VSTSProjectName (например, мое имя проекта VSTS MyTest в примере ниже) -> Select -> Ok.

 enter image description here

Затем снова разверните его в выпуске VSTS, чтобы успешно загрузить хранилище ключей Azure.

1
Marina Liu - MSFT

Сервер Dev Ops также должен иметь возможность доступа к хранилищу ключей через брандмауэр, если он включен («Разрешить доступ из ...» на странице брандмауэров и виртуальных сетей). 

Я полагаю, что сетевой доступ к keyvault для переменных осуществляется через неагентскую часть AzDevOps, но я не выяснил, как занести эти серверы в белый список. 

Включение «Разрешить доверенным службам Microsoft обходить этот брандмауэр» не работает

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

Другой параметр безопаснее , использующий задачу агента, а не группу переменных, - это ..

  1. Создайте собственный пул агентов на виртуальной машине Azure.
  2. Или..
    1. Подключите это к частной виртуальной сети, которая также подключена к KeyVault или ...
    2. Белый список публичной конечной точки агента в keyvault
  3. Считайте переменные из секретов keyvault во время процесса агента, используя задачу KayVault (то есть считайте секреты как часть конвейера).

Надеюсь, что это поможет ... Марк.

0
MarkD