SHH! У Проводника есть секреты!

Мы очень рады объявить о последней возможности облачной версии Netflix Conductor от Orkes. Теперь это больше не секрет — мы поддерживаем использование секретов в определениях ваших рабочих процессов! Теперь вы можете быть уверены, что ваши секретные ключи, токены и значения, которые вы используете в своих рабочих процессах, надежно защищены!

Что вы подразумеваете под секретами?

Во многих современных приложениях часто происходит взаимодействие с приложениями третьих сторон. Как правило, для получения доступа к ним требуется определенная форма аутентификации. Когда вы пишете код, существует концепция локального защищенного хранилища, где хранятся конфиденциальные значения (и, соответственно, не передаются на GitHub и т.д.) Это предотвращает случайное раскрытие ваших секретов при размещении кода на GitHub или при передаче кода другим командам.

До сих пор не было способа безопасно использовать любое конфиденциальное значение в рабочем процессе Conductor. Почти у каждого разработчика есть история о случайном размещении секретного значения на GitHub. Вот моя история о том, как я случайно поделился конфиденциальным значением с рабочим процессом Conductor:

В коделабе выполнение заказов рабочий процесс сбоя имеет токен Slack, который является уникальным, и если бы он был общедоступен, его можно было бы использовать для спама на канале Slack. При написании руководства я поделился определением задачи в документации — с токеном Slack.

Slack поймал это:

Очень неловко, но без серьезных последствий (в данном случае).

Не позволяйте этому случиться с вами!

В размещенных в Orkes экземплярах Netflix Conductor теперь есть функция секретов. Вы можете сохранить свой секрет на сервере Conductor, и Conductor будет использовать это значение, когда потребуется, но не будет раскрывать его ни в каких выводах рабочего процесса.

Это очень простая настройка — просто войдите в свой экземпляр Netflix Conductor в Orkes (или попробуйте нашу игровую площадку бесплатно!). В левой навигации нажмите Secrets. Это приведет к появлению таблицы ваших секретов (которая, вероятно, пуста).

Нажмите Добавить секрет, дайте ему имя, вставьте свое значение и нажмите сохранить. Вот и все.

Использование секрета

В рабочих процессах Conductor секреты используют формат, аналогичный другим переменным. Например, для ссылки на входную переменную с именем address вы используете ${workflow.input.address}.

Если у вас есть секрет под названием Stripe_api_key, вы ссылаетесь на это значение с помощью переменной ${workflow.secrets.Stripe_api_key}.

Пример

Для доступа к API GitHubs требуется токен API. В следующей HTTP-задаче я вызываю API GitHub и могу сослаться на секрет Doug_github для заголовка авторизации.

{ "name": "Get_repo_details", "taskReferenceName": "Get_repo_details_ref", "inputParameters": { "http_request": { "uri": "https://api.github.com/repos/${workflow.input.gh_account}/${workflow.input.gh_repo}", "method": "GET", "headers": { "Authorization": "token ${workflow.secrets.Doug_github}", "Accept": "application/vnd.github.v3.star+json" }, "readTimeOut": 2000, "connectionTimeOut": 2000 } }, "type": "HTTP", "decisionCases": {}, "defaultCase": [], "forkTasks": [], "startDelay": 0, "joinOn": [], "optional": false, "defaultExclusiveJoinTask": [], "asyncComplete": false, "loopOver": [] }
Вход в полноэкранный режим Выйти из полноэкранного режима

Когда выполняется этот рабочий процесс, другие переменные заменяются, но значение секрета остается секретом. Обратите внимание, что в uri ${workflow.input.gh_account}/${workflow.input.gh_repo} заменяется на netflix/conductor, но заголовок авторизации остается обфусцированным.

{ "headers": { "Authorization": "token ${workflow.secrets.Doug_github}", "Accept": "application/vnd.github.v3.star+json" }, "method": "GET", "readTimeOut": 2000, "uri": "https://api.github.com/repos/netflix/conductor", "connectionTimeOut": 2000}
Вход в полноэкранный режим Выход из полноэкранного режима

Заключение

Секреты были одной из самых востребованных функций для Netflix Conductor, когда мы разговаривали с разработчиками, и по этой причине мы рады объявить об их запуске. Нам не терпится узнать, как этот релиз делает разработку рабочего процесса более безопасной и открывает новые пути развития — теперь, когда эти значения можно надежно хранить.

Попробуйте их в Orkes Playground, и мы будем рады услышать ваше мнение в наших сообществах Slack или Discord.

Оцените статью
devanswers.ru
Добавить комментарий