Skip to Content

Секреты

Секрет содержит небольшой объём конфиденциальных данных: пароль, токен или ключ.
Иначе эти сведения могли бы находиться в спецификации Cargo.
Используя секреты, вы не включаете конфиденциальные данные в код приложения.

Секреты создаются независимо от использующих их Cargo, что снижает вероятность раскрытия данных при создании, просмотре и изменении Cargo.
Nanocl и приложения кластера также могут принимать дополнительные меры, например избегать записи секретов в энергонезависимое хранилище.

По умолчанию секреты Nanocl хранятся незашифрованными в хранилище API-сервера (CockroachDB).
Любой с доступом к API или CockroachDB может получить или изменить Secret. Также любой, кто может создавать Cargo, способен прочитать любой секрет через этот доступ, включая косвенную возможность создания развёртывания.

Для безопасного использования секретов выполните хотя бы следующие шаги:

  • Включите шифрование секретов при хранении.
  • Рассмотрите внешние хранилища секретов.

Применение секретов

Секреты можно использовать, например, чтобы:

  • Задавать переменные окружения Cargo.
  • Хранить сертификаты TLS.

Демон Nanocl тоже использует Secrets; например, секреты начальных токенов помогают автоматизировать регистрацию узлов.

Виды секретов

При создании Secret укажите Kind в поле типа ресурса.
Тип секрета упрощает программную обработку его данных.

Nanocl предоставляет несколько встроенных типов для распространённых сценариев.
Они отличаются выполняемыми проверками и ограничениями Nanocl.

Для собственного типа Secret задайте своё строковое значение Kind объекта.

Nanocl не ограничивает имя типа. Однако встроенный тип должен соответствовать всем определённым для него требованиям.

Встроенный видНазначение
nanocl.io/envДанные переменных окружения
nanocl.io/tlsДанные клиента или сервера TLS

Окружение

Секреты вида Env — переменные окружения, привязываемые к Cargo.
Создайте их следующим Statefile:

ApiVersion: v0.18 Secrets: - Name: env.super-secret Kind: nanocl.io/env Data: - MY_ENV=MY_VALUE - MY_ENV1=MY_VALUE1

TLS

Секреты вида Tls — сертификаты, привязываемые к ProxyRules.
Создайте их следующим Statefile:

ApiVersion: v0.18 Secrets: - Name: cert.my-certificate Kind: nanocl.io/tls Data: Certificate: | -----BEGIN CERTIFICATE----- MIIDETCCAfkCFFOJVQs8PxWlcJQDn... CertificateKey: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0B...

Полная спецификация вида Tls:

Certificate
required
string

Содержимое сертификата, сохранённого в секрете TLS.

CertificateClient
string or null

Содержимое сертификата центра сертификации, сохранённого в секрете TLS.

CertificateKey
required
string

Содержимое закрытого ключа, сохранённого в секрете TLS.

Dhparam
string or null

Содержимое параметров DH, сохранённых в секрете TLS.

VerifyClient
boolean or null

Включить или отключить проверку клиента.

Для Tls Secret нужно содержимое файлов вместо их путей.

Последнее обновление