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 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
|
wstanie**: usługa z kontami, ale bez klucza, nie odróżniłaby ważnej sesji od
|
||||||
podrobionej. Nikt go nigdy nie musi oglądać.
|
podrobionej. Nikt go nigdy nie musi oglądać.
|
||||||
|
|
||||||
> **Rotacja tego klucza wylogowuje WSZYSTKICH.** To nie usterka, tylko awaryjny
|
### ⚠️ Masz już sekret sprzed LOG-34? Dołóż klucz, nie twórz od nowa
|
||||||
> wyłącznik: gdy podejrzewasz, że ktoś przechwycił cudzą sesję, podmiana klucza
|
|
||||||
> unieważnia je wszystkie naraz.
|
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:
|
||||||
> ```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')\"}]"
|
Error: couldn't find key SESSION_SECRET in Secret astrololo/astrololo-auth
|
||||||
> kubectl -n astrololo rollout restart deploy/presentation
|
```
|
||||||
> ```
|
|
||||||
|
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
|
`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
|
usługom do rozmowy między sobą. `APP_PASSWORD` wpisujesz w przeglądarce
|
||||||
|
|||||||
Reference in New Issue
Block a user