Aws-cert-manager: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 24: Строка 24:
 
* Установка в том чимсле создания <code>Custom Resource Definition</code> (далее <code>CRD</code>)
 
* Установка в том чимсле создания <code>Custom Resource Definition</code> (далее <code>CRD</code>)
 
* Cоздается ресусурс типа <code>Issuer</code> или <code>ClusterIssuer</code> — описывает, откуда брать сертификаты
 
* Cоздается ресусурс типа <code>Issuer</code> или <code>ClusterIssuer</code> — описывает, откуда брать сертификаты
  +
** Разница в том что Issuer доступен только внутри namespace, в моем случае когда все сертефикаты нужны для нескольких копий приложения ("окружений"), например <code>dev.domain.tld</code>, <code>staging.domain.tld</code>, <code>qa.domain.tld</code> достаточно иметь один ресурс <code>ClusterIssuer</code> на всех.
   
 
Создаёшь </code>Certificate</code>-ресурс — cert-manager следит за ним и выполняет выпуск.
 
Создаёшь </code>Certificate</code>-ресурс — cert-manager следит за ним и выполняет выпуск.

Версия 15:22, 8 июня 2025


Для Ingress требуется автоматически выписывать сертефикаты для доменов которые "Хостятся" на нем

Предварительные требования

Требуется доступ (ручной или автоматический) к управлению зоной DNS для того что бы направить нужные домены на соответвующий Ingress

Возможные варианты решения

  • Использовать независимое от cloud-провайдера решение, Let's encrypt.
    • В завимсимости от того где лежит DNS-зона и как ей можно управлять, может требовать или не требовать ручной правкии зоны.
    • В случае если зона хостится на AWS Route53 возможно применить например такую автоматизацию обновления зоны
    • К плюсам можно отнести то что решение будет работать на любом клауде, не привязано к провайдеру.
    • Список возможных Issuers досаточно широк (https://cert-manager.io/docs/configuration/issuers/), для тестирования можно например использовать локально развернутый Hashicorp Vault


  • Использовать сертефикаты от AWS (это пока не реализовано)

cert-manager

Для решения этой задачи существует cert-manager
Примерный принцип работы (насколько я его понимаю)

  • Установка в том чимсле создания Custom Resource Definition (далее CRD)
  • Cоздается ресусурс типа Issuer или ClusterIssuer — описывает, откуда брать сертификаты
    • Разница в том что Issuer доступен только внутри namespace, в моем случае когда все сертефикаты нужны для нескольких копий приложения ("окружений"), например dev.domain.tld, staging.domain.tld, qa.domain.tld достаточно иметь один ресурс ClusterIssuer на всех.

Создаёшь Certificate-ресурс — cert-manager следит за ним и выполняет выпуск. cert-manager автоматически: делает HTTP или DNS-проверку (чтобы подтвердить владение доменом), получает сертификат от CA, сохраняет в Secret в namespace, продлевает его до истечения срока действия.


Установка