docs(sekrety): dołożenie klucza do ISTNIEJĄCEGO sekretu, nie tylko tworzenie
Po zmergowaniu LOG-34 pody prezentacji nie wstały: Error: couldn't find key SESSION_SECRET in Secret astrololo/astrololo-auth Runbook opisywał wyłącznie ścieżkę instalacji OD ZERA — SESSION_SECRET pojawiał się tylko w komendzie `create secret`. Na działającym wdrożeniu sekret już istnieje, a merge manifestu kluczy do niego nie dokłada; każe ich tylko szukać. Gorzej: opisana rotacja też by tam nie zadziałała. Używała JSON Patch z `op: replace` na /data/SESSION_SECRET, a `replace` wymaga, żeby ścieżka już istniała — czyli jedyna komenda, po którą sięgnąłby ktoś w tej sytuacji, też odmawia. Teraz obie potrzeby obsługuje JEDNA komenda: `--type=merge` ze `stringData` dokłada albo nadpisuje i nie wymaga wcześniejszego istnienia klucza. Dopisane sprawdzenie kompletu kluczy bez pokazywania wartości oraz to samo ostrzeżenie w runbooku demo, gdzie czeka dokładnie ta sama pułapka. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit was merged in pull request #22.
This commit is contained in:
+37
-9
@@ -100,15 +100,43 @@ unset APP_PASSWORD
|
||||
wstanie**: usługa z kontami, ale bez klucza, nie odróżniłaby ważnej sesji od
|
||||
podrobionej. Nikt go nigdy nie musi oglądać.
|
||||
|
||||
> **Rotacja tego klucza wylogowuje WSZYSTKICH.** To nie usterka, tylko awaryjny
|
||||
> wyłącznik: gdy podejrzewasz, że ktoś przechwycił cudzą sesję, podmiana klucza
|
||||
> unieważnia je wszystkie naraz.
|
||||
>
|
||||
> ```bash
|
||||
> kubectl -n astrololo patch secret astrololo-auth --type=json \
|
||||
> -p="[{\"op\":\"replace\",\"path\":\"/data/SESSION_SECRET\",\"value\":\"$(openssl rand -hex 32 | base64 | tr -d '\n')\"}]"
|
||||
> kubectl -n astrololo rollout restart deploy/presentation
|
||||
> ```
|
||||
### ⚠️ Masz już sekret sprzed LOG-34? Dołóż klucz, nie twórz od nowa
|
||||
|
||||
Komenda wyżej zakłada sekret **od zera**. Jeśli `astrololo-auth` już istnieje,
|
||||
merge manifestu sam klucza nie dołoży — pod zgłosi wtedy:
|
||||
|
||||
```
|
||||
Error: couldn't find key SESSION_SECRET in Secret astrololo/astrololo-auth
|
||||
```
|
||||
|
||||
Dokładamy klucz, nie ruszając pozostałych:
|
||||
|
||||
```bash
|
||||
kubectl -n astrololo patch secret astrololo-auth --type=merge \
|
||||
-p "{\"stringData\":{\"SESSION_SECRET\":\"$(openssl rand -hex 32)\"}}"
|
||||
|
||||
kubectl -n astrololo rollout restart deploy/presentation
|
||||
```
|
||||
|
||||
Sprawdzenie, że komplet kluczy jest na miejscu (bez pokazywania wartości):
|
||||
|
||||
```bash
|
||||
kubectl -n astrololo get secret astrololo-auth -o jsonpath='{.data}' \
|
||||
| tr ',' '\n' | grep -o '"[A-Z_]*"'
|
||||
```
|
||||
|
||||
Oczekiwane: `APP_PASSWORD`, `INTERNAL_TOKEN`, `SESSION_SECRET`.
|
||||
|
||||
> `--type=merge` ze `stringData` **dokłada albo nadpisuje** i nie wymaga, żeby
|
||||
> klucz wcześniej istniał — w odróżnieniu od JSON Patch z `op: replace`, który
|
||||
> na brakującej ścieżce po prostu odmawia. Ta sama komenda służy więc i do
|
||||
> dołożenia, i do rotacji.
|
||||
|
||||
### Rotacja klucza sesji
|
||||
|
||||
**Wylogowuje WSZYSTKICH.** To nie usterka, tylko awaryjny wyłącznik: gdy
|
||||
podejrzewasz, że ktoś przechwycił cudzą sesję, podmiana klucza unieważnia je
|
||||
wszystkie naraz. Komenda ta sama, co dołożenie wyżej.
|
||||
|
||||
`INTERNAL_TOKEN` jest losowany i **nikt go nigdy nie musi oglądać** — służy tylko
|
||||
usługom do rozmowy między sobą. `APP_PASSWORD` wpisujesz w przeglądarce
|
||||
|
||||
Reference in New Issue
Block a user