Ноль: Один API-ключ для всех

Этот пост спонсирован компанией Zero.

Zero — это новая услуга, которая предоставляет вам единый API-ключ, обеспечивающий доступ к AWS, Stripe, Twilio и множеству других API. Этот пост является кратким обзором того, что будет предлагать Zero, когда начнется бета-тестирование. Команда нацелена на запуск в начале июня, так что уже не за горами!

Какую проблему он решает?

Практически любое современное облачное приложение нуждается в доступе к внешним API для таких задач, как предоставление инфраструктуры, отправка уведомлений и обработка платежей, и каждый из этих API требует токен API для аутентификации. Управлять ключами API вручную несложно при следующих предположениях:

  1. Вы используете только несколько API.
  2. В вашей компании всего несколько человек.
  3. Вы не против поделиться ключами API по электронной почте или в документе Google, даже если это потенциально менее безопасно.

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

  1. Вы используете 20 различных API в своей компании.
  2. В вашей компании есть 100 человек, которым нужен доступ к API, но только определенные команды должны иметь доступ к определенным API.
  3. Безопасность имеет первостепенное значение, поэтому отправка ключей по электронной почте нежелательна.

Здесь на помощь приходит Zero. В следующем разделе я расскажу, как Zero помогает справиться с каждой из этих трудностей.

Как Zero решает эти болевые точки?

Проблема: Вы используете 20 различных API в своей компании.

Как только вы зарегистрируете учетную запись Zero, вы получите мгновенный доступ ко многим популярным API. Вам больше не нужно создавать отдельные учетные записи для Microsoft Azure, SendGrid, Shopify и так далее. Это значительно экономит время на ранних стадиях разработки продукта, когда вы хотите как можно быстрее начать действовать.

Zero предоставит вам «токен Zero», который дает доступ к одному или нескольким API. Вы можете использовать его в коде Node.js следующим образом:

import zero from '@zero/zero'
import { S3Client } from '@aws-sdk/client-s3'
import Stripe from 'stripe'

// The most popular APIs, like AWS, Stripe or Sendgrid are precreated for each 
// account. One can start using them right after a sign up by simply requesting
// them in a Zero API call
const creds = await zero({
  apis: ['aws', 'stripe'],
  token: process.env.ZERO_TOKEN,
}).fetch()

const client = new S3Client({ credentials: creds.aws })
const stripeApi = Stripe(creds.stripe)
Войти в полноэкранный режим Выйти из полноэкранного режима

Проблема: В вашей компании 100 человек, которым нужен доступ к API, но только определенные команды должны иметь доступ к определенным API.

Вы можете использовать веб-консоль Zero для группировки пользователей в команды:

Затем вы можете назначить каждый токен Zero одной или нескольким командам:

Эта модель разрешений кажется очень простой в использовании и в то же время достаточно мощной для масштабирования на большие организации.

Проблема: Безопасность имеет первостепенное значение, поэтому отправлять ключи по электронной почте нельзя.

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

Как использовать

После запуска бета-версии использование Zero будет выглядеть следующим образом:

  1. Зарегистрируйтесь для получения Zero Token.
  2. Выберите API, которые вам нужны.
  3. Используйте Zero SDK в своем коде для получения учетных данных для отдельных API. (Как это будет выглядеть, смотрите пример кода выше).

Вы можете задаться вопросом, а что если мне нужно использовать менее распространенный API, который не интегрирован в Zero? Zero полностью поддерживает этот сценарий! Zero — это не просто удобный ярлык для доступа к API — в более широком смысле, это платформа для управления секретами. Это означает, что Zero может хранить любой секретный ключ, даже если он не предназначен для одного из API, с которыми интегрирован сервис. Вот скриншот пользовательского интерфейса, который можно использовать для загрузки секретного ключа для менее распространенного API:

Q&A с командой

После изучения маркетинговых материалов, фрагментов кода и скриншотов у меня возник ряд вопросов о сервисе. Мой собеседник в команде Zero, Артем, был рад ответить на них. Ниже приведена отредактированная версия моих вопросов и его ответов.

В: Мне неясно, как Zero будет подключаться к каждому из моих аккаунтов/подписок. Например, могу ли я использовать Zero с уже существующим аккаунтом Twilio?

О: Zero не подключается к существующим учетным записям. Мы создаем учетные записи (например, AWS или Twilio) задолго до того, как вы зарегистрируетесь, храним их в нашем надежном хранилище, а затем предоставляем вам некоторый набор учетных данных после того, как вы зарегистрируетесь.

В: Некоторые команды хотят иметь разные токены для разработки, тестирования и производства. Как это можно реализовать в Zero?

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

В: Выпустит ли Zero клиенты API для языков программирования, отличных от JavaScript / TypeScript?

О: Первоначальный релиз будет иметь SDK для JavaScript, TypeScript и Go. Мы планируем добавить SDK для других языков в будущем.

Вопрос: Могут ли пользователи просматривать ранее созданные Zero-токены в веб-консоли? Я спрашиваю потому, что многие сервисы не позволяют просматривать секреты после их создания.

О: Zero — это менеджер секретов, поэтому да — вы сможете просмотреть полный секрет в веб-интерфейсе.

Опасения

В интересах обеспечения сбалансированного взгляда на сервис, я поделюсь несколькими своими опасениями по поводу сервиса.

  1. Мне немного жаль, что Zero не предназначен для использования в производстве, поскольку это ограничивает полезность сервиса. Возможно, команда сможет поработать над поддержкой этого после первоначального запуска.
  2. Похоже, что когда вы регистрируетесь в Zero, они передают вам уже существующие учетные записи для каждого поставщика API. Я не уверен, как именно будет происходить этот процесс, но похоже, что Zero не поможет вам управлять учетными данными для этих учетных записей. Таким образом, даже при использовании Zero все равно необходимо вручную управлять учетными данными для каждого поставщика API.

Заключительные размышления

Zero имеет потенциал для устранения многих утомительных процедур, которые в настоящее время требуются для получения доступа к необходимым вам API. В конце концов, все, что позволяет нам тратить меньше времени на настройку учетных данных и больше времени на написание кода — это хорошо!

Спасибо компании Zero за спонсорство моего поста и за то, что облегчили обзор сервиса. Я возлагаю на вас большие надежды!

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