Pređi na glavni sadržaj

Key Store

Key Store služi kao centralizovano skladište akreditiva u Semaphore-u. On upravlja autentifikacionim materijalima neophodnim za kloniranje udaljenih Git repozitorijuma, povezivanje sa ciljnim čvorovima infrastrukture, podizanje privilegija (sudo/become) i dešifrovanje Ansible Vault tajni.

Key Store

Key Store je podeljen na dva glavna prikaza:

  • Kartica Keys: Prikazuje sve akreditive konfigurisane za trenutni projekat sa imenom, tipom skladišta, vrstom i statusom sinhronizacije.
  • Kartica Storages (Pro): Konfiguriše eksterna skladišta tajni (kao što su HashiCorp Vault, OpenBao, AWS Secrets Manager ili CyberArk) radi dinamičkog razrešavanja i automatizovane sinhronizacije.

Tipovi akreditiva​

Semaphore klasifikuje sačuvane akreditive u tri osnovna tipa:

1. SSH ključevi​

SSH ključevi pružaju asimetričnu kriptografsku autentifikaciju za povezivanje sa Linux/UNIX čvorovima i kloniranje Git repozitorijuma preko SSH-a ([email protected]:...).

Prilikom konfigurisanja SSH ključa možete navesti:

  • Naziv ključa: Opisnu oznaku za akreditiv u inventarima i šablonima projekta.
  • Korisničko ime (Opciono): Podrazumevani udaljeni korisnički nalog za uspostavljanje SSH veze (na primer ansible ili ubuntu).
  • Lozinka ključa (Opciono): Lozinka neophodna za dešifrovanje zaštićenih privatnih ključeva. Polja za lozinku sadrže ikonu za prikaz (oko) i podrazumevano su maskirana.
  • Privatni ključ: Izvorni tekst PEM/OpenSSH privatnog ključa.

Ugrađeni generator SSH ključeva​

Umesto ručnog pokretanja komande ssh-keygen na eksternim mašinama, Semaphore sadrži ugrađeni generator SSH parova ključeva na jedan klik direktno u modalnom prozoru:

Generate SSH Key Modal

  1. Izaberite SSH Key iz padajućeg menija Type.
  2. Označite polje Generate SSH Key.
  3. Tekstualno polje za ručni unos privatnog ključa automatski se onemogućava i zaključava.
  4. Kliknite na Create. Semaphore automatski generiše kriptografski bezbedan par ključeva (ED25519/RSA), šifruje privatni ključ u bazi i prikazuje javni ključ u namenskom dijalogu:

Generated SSH Public Key

Iskoristite dugme Copy to Clipboard da kopirate javni ključ i unesite ga u deploy keys vašeg Git provajdera ili u fajl ~/.ssh/authorized_keys na vašim ciljnim serverima.

Naknadno preuzimanje javnih ključeva (Fioka javnog ključa)​

Ako zatvorite prozor ili vam javni ključ zatreba kasnije, ne morate ponovo generisati par ključeva. Prilikom izmene bilo kog ključa kreiranog generatorom, Semaphore nudi fioku Public key:

Public Key Drawer

  • Kliknite na Show / Hide da pregledate javni ključ.
  • Kliknite na ikonu spajalice da trenutno kopirate javni ključ.

Povezivanje deploy ključeva na popularnim Git servisima​

Za Git repozitorijume koji zahtevaju SSH autentifikaciju dodajte generisani javni ključ kao read-only deploy key:


2. Prijava lozinkom​

Tip akreditiva Prijava lozinkom podržava i tradicionalnu autentifikaciju korisničkim imenom i lozinkom, kao i izolovane tajne tekstualne nizove:

  • Autentifikacija servera i sudo: Pruža SSH pristup zasnovan na lozinci i podizanje sudo privilegija na ciljnim hostovima.
  • HTTPS Git autentifikacija: Autentifikuje na udaljenim repozitorijumima preko HTTPS-a pomoću korisničkog imena i ličnih pristupnih tokena (PAT).
  • Lozinke za Ansible Vault: Otključava šifrovane Ansible Vault fajlove i promenljive prilikom izvršavanja.
Tajni stringovi i lični pristupni tokeni (PAT)

Za skladištenje čistog tajnog stringa (poput API tokena, Vault lozinke ili PAT-a), ostavite polje za korisničko ime prazno. Semaphore će unos tretirati isključivo kao izolovanu tajnu bez dodeljivanja korisnika.

Maskiranje tajni i zaštita od prepisivanja​

Za zaštitu akreditiva od neovlašćenog pristupa i slučajnih izmena:

  • Polja za unos lozinki i pristupnih fraza maskirana su u interfejsu uz mogućnost privremenog prikaza.
  • Prilikom izmene postojećeg akreditiva, osetljiva polja su podrazumevano onemogućena.
  • Da biste ažurirali postojeću tajnu, morate eksplicitno označiti polje Override na dnu forme. Ovaj zaštitni mehanizam sprečava slučajno prepisivanje tajni tokom rutinskih izmena.

3. Nema​

Akreditiv Nema služi kao prazan autentifikacioni čuvar mesta. Koristi se za javne open-source Git repozitorijume (na GitHub-u ili GitLab-u) i lokalna izvršavanja plejbook-a koja ne zahtevaju SSH ključeve niti lozinke.


Skladišta tajni​

Semaphore podržava razdvojene arhitekture skladištenja tajni. Prilikom kreiranja ili izmene možete izabrati gde se nalazi tajni materijal putem kartica:

Kartica skladištaDostupnostOpis
LocalOpen Source & ProTajna se čuva direktno u bazi podataka Semaphore-a uz zaštitu envelope enkripcijom.
StorageProTajna referencira spoljni endžin tajni (npr. HashiCorp Vault, AWS Secrets Manager).
EnvOpen Source & ProTajna se dinamički očitava u trenutku izvršavanja iz promenljive okruženja servera.
FileOpen Source & ProTajna se čita iz zaštićenog fajla u konfigurisanom direktorijumu tajni na serveru.

Skladišta tajni

Skladište u bazi podataka (Local)​

Podrazumevano se tajne čuvaju u bazi podataka u šifrovanom formatu korišćenjem simetrične AES enkripcije. Glavni ključ se podešava u konfiguraciji servera:

  • Konfiguracioni ključ: access_key_encryption
  • Promenljiva okruženja: SEMAPHORE_ACCESS_KEY_ENCRYPTION
Generisanje glavnog ključa za enkripciju

Generišite kriptografski bezbedan 32-bajtni base64 ključ pre pokretanja produkcionih instanci:

head -c32 /dev/urandom | base64

Obavezno bezbedno sačuvajte kopiju ovog ključa. Ukoliko se ključ izgubi, postojeće tajne iz baze podataka se ne mogu povratiti.

Promenljive okruženja i fajl izvori (Samo za čitanje)​

Kada izaberete karticu Env ili File, Semaphore tretira skladište kao eksterni izvor samo za čitanje. U interfejsu se prikazuje obaveštenje:

Read-only secret storage chosen.

Skladište samo za čitanje

  • Env izvor: Navedite tačan naziv promenljive okruženja izvezene na serveru (na primer SEMAPHORE_EXTERNAL_VAULT_TOKEN).
  • File izvor: Navedite relativnu putanju do konfigurisanog direktorijuma tajni (dirs.secrets / SEMAPHORE_SECRETS_PATH, podrazumevano /tmp/semaphore).

Za struktuirane ključeve, sadržaj fajlova i promenljivih mora biti formatiran kao validan JSON objekat. Za detalje pogledajte Izvori iz okruženja i fajlova.

Eksterni enterprise endžini za tajne (Pro & Enterprise)​

Semaphore Pro i Enterprise proširuju Key Store izvornim konektorima za vodeće sisteme upravljanja tajnama:


Sinhronizacija tajni sa udaljenih skladišta​

Umesto ručnog unosa akreditiva jednog po jednog, Semaphore podržava automatizovanu sinhronizaciju iz eksternih skladišta tajni.

Kada se tajna održava putem sinhronizacije:

  • Označena je aktivnom synchronized oznakom u tabeli Key Store-a.
  • Ručna izmena tajne u interfejsu je onemogućena kako bi spoljni trezor ostao jedini izvor istine.
  • Bilo kakve izmene ili rotacije tajni automatski se prenose u Semaphore na osnovu podešenog intervala.

Za kompletne korake konfiguracije pogledajte Sinhronizacija tajni.