Преминете към основното съдържание

Ротация на ключове

Всички команди се изпълняват в /opt/entrosity/deploy с docker compose -f docker-compose.prod.yml --env-file .env, съкратено по-долу като dc.

JWT тайна​

RMM_JWT_SECRET подписва само токените за потока от събития на Axis, които са валидни една минута; токените на потребителите идват от Entrosity Hub (Ключове на Hub).

  1. Задайте на RMM_JWT_SECRET_OLD текущата стойност на RMM_JWT_SECRET, а на RMM_JWT_SECRET — нова стойност (openssl rand -base64 32).
  2. dc up -d backend. Приемат се токени, подписани с който и да е от двата ключа; новите използват новия ключ.
  3. След няколко минути премахнете RMM_JWT_SECRET_OLD и изпълнете отново dc up -d backend.

Никой не бива изведен от системата: отворените потоци от събития се свързват отново с нов токен.

Главен ключ​

  1. Задайте на RMM_MASTER_KEY_OLD текущия ключ, а на RMM_MASTER_KEY — нов. dc up -d backend: бекендите декриптират с двата ключа и криптират с новия.
  2. Криптирайте отново съхранените тайни:
    dc run --rm backend rotate-master-key --dry-run
    dc run --rm backend rotate-master-key
    Командата криптира отново идентификационните данни за синхронизацията с AD и отчита какво е криптирала отново. Изпълнете я повторно, ако отчете едновременни промени.
  3. Изчакайте, докато опашката с имейли се изпразни (имейлите в опашката също са криптирани; обикновено отнема минути). След това премахнете RMM_MASTER_KEY_OLD и изпълнете dc up -d backend.
  4. Направете ново резервно копие. За по-старите резервни копия е нужен старият ключ.

Ключове на Entrosity Hub​

  • Ключ за подписване (PLATFORM_JWT_SIGNING_KEY, подписва всеки токен на Hub): задайте на PLATFORM_JWT_SIGNING_KEY_OLD текущия ключ, а на PLATFORM_JWT_SIGNING_KEY — нов, след което изпълнете dc up -d platform. И двата публични ключа се публикуват; Axis извлича новия, когато за пръв път види неговия kid. След 15 минути (срокът на валидност на най-дълготрайните токени на Hub) премахнете стария ключ и изпълнете dc up -d platform.
  • Главен ключ (PLATFORM_MASTER_KEY, за TOTP тайните и имейлите в опашката): задайте на PLATFORM_MASTER_KEY_OLD текущия ключ, а на PLATFORM_MASTER_KEY — нов, изпълнете dc up -d platform, след това dc run --rm platform rotate-master-key --dry-run и същата команда без --dry-run. Когато опашката с имейли се изпразни, премахнете стария ключ, рестартирайте Hub и направете ново резервно копие.
  • Продуктовият токен на Axis (PLATFORM_PRODUCT_TOKEN_RMM): променете го в .env и изпълнете dc up -d platform backend (compose го подава и на двете услуги).

Пароли за базата данни​

  • Собственик (rmm): сменете паролата в PostgreSQL (ALTER ROLE), обновете POSTGRES_PASSWORD в .env, след което изпълнете dc up -d.
  • Приложение (rmm_app): променете RMM_APP_DATABASE_PASSWORD и изпълнете dc run --rm migrate, който я задава; след това dc up -d backend.

MinIO​

Променете MINIO_ROOT_PASSWORD и рестартирайте minio и бекендите.

Ключове на агентите и конекторите​

Повторното регистриране на машина сменя нейния ключ. Извеждането от експлоатация на устройство (или изтриването на конектор) незабавно отнема ключа му навсякъде.

Ключ за подписване на изданията​

Агентите се доверяват на публичния ключ, вграден в техния MSI. Преди да смените RMM_RELEASE_SIGNING_KEY:

  1. изградете издание с новия публичен ключ (RELEASE_PUBLIC_KEY);
  2. публикувайте го, докато сървърът все още подписва със стария ключ, и изчакайте поетапното му пускане;
  3. след това превключете сървъра към новия ключ за подписване.

Агентите, които пропуснат преходното издание, трябва да бъдат инсталирани наново.

Токен за изданията​

Задайте нов RMM_RELEASE_TOKEN на сървъра и в едноименната тайна на хранилището, след което изпълнете dc up -d backend.