Назад | Перейти на главную страницу

Сертификат AWS Cloud Map

Мне очень нравится AWS Cloud Map (обнаружение сервисов в AWS). Он интегрируется с AWS DNS, чтобы упростить обнаружение сервисов. Просто зарегистрируйте экземпляр службы, и вы сможете обнаружить службу с помощью обычного разрешения DNS. Например curl http://hello-world.production будет подключаться к производственному экземпляру службы hello-world. Отлично.

Моя проблема в том, что я хочу защитить свой трафик между моими микросервисами с помощью HTTPS. Однако как мне сгенерировать сертификат / ключ для чего-то вроде hello-world.production? Является ли частный центр сертификации единственным вариантом? Я знаю, что AWS поддерживает это, но нужно ли мне внедрять корневой сертификат для моего частного ЦС во все мои микросервисы? В идеале я бы избегал использования частного центра сертификации. Если это лучший способ, есть ли способ убедиться, что все мои внутренние службы имеют корневой сертификат CA?

Спасибо!

Да. ЦС в вашем случае должен быть частным.

Если подумать, у меня также может быть служба под названием hello-world.production. Поскольку общедоступный ЦС будет в хранилище якорей доверия для большинства / всех клиентов, если бы общедоступный ЦС выдал сертификат и вам, и мне, подключающиеся клиенты не будут знать, к кому они подключаются. Публичный центр сертификации может выдавать сертификаты только тем сущностям, которые уникальны в глобальном масштабе. Коммерческие центры сертификации обычно полагаются для этого на глобальную уникальность DNS или адресов электронной почты (в зависимости от использования сертификата).

Ваш частный ЦС, с другой стороны, будет только в хранилище доверенных якорей ваших клиентов, и он будет выдавать сертификаты только вашему экземпляру hello-world.production. Если ваши клиенты каким-то образом попытаются подключиться к моему экземпляру, это не удастся, поскольку у меня не будет сертификата, выпущенного частным ЦС, которому доверяют ваши клиенты.

Есть много способов распространить сертификат в хранилище доверенных якорей клиента:

  • В Windows есть групповая политика;
  • Добавьте его в образ Docker;
  • Распространять с помощью Microsoft SCCM;
  • Распространение с помощью инструментов управления конфигурацией с открытым исходным кодом (Ansible / Puppet / Chef и т. Д.);

Как вы распределяете, зависит от вашего сценария.

Если вам не нужны проблемы с запуском частного ЦС, вы можете рассмотреть вариант управляемого частного ЦС. AWS, Digicert, Entrust и Sectigo предоставляют эту услугу за дополнительную плату.