docs: Phase 5 fullført — Cloud Run IAM låst, IAP-SETUP og session log oppdatert

This commit is contained in:
chrischristiansen-glitch 2026-05-25 14:33:49 +02:00
parent 6866cff1a2
commit 0706556d52
2 changed files with 71 additions and 455 deletions

View File

@ -1,11 +1,12 @@
> **STATUS (2026-05-25):** IAP API aktivert (`iap.googleapis.com` ✅). Kartlegging av Cloud Run-tjenester fullført. > **STATUS (2026-05-25):** ✅ FULLFØRT — Cloud Run IAM-autentisering aktivert.
> OAuth-klient `Vauco OS Web App` (`357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com`) identifisert og klar for IAP-bruk. > `osvauco-agent` er låst til `chris.christiansen@vauco.no` og `jason.vauger@vauco.no`.
> Beslutning: Fokuserer IAP-beskyttelse på `osvauco-agent` (OPAX-hub). `vauco-tui-bridge` vurderes separat. > DNS/CNAME (`opax.vauco.no → ghs.googlehosted.com`) urørt.
> Neste steg: Opprett serverless NEG + backend service for valgt tjeneste. > Load balancer (opprettet og slettet samme dag) — ikke nødvendig med Cloud Run domain mapping.
> OAuth-klient `Vauco OS Web App` klar for fremtidig bruk om load balancer reaktiveres.
# Google Cloud IAP Setup Guide # Google Cloud IAP Setup Guide
This guide configures Identity-Aware Proxy (IAP) for `opax.vauco.no`, restricting access to `user:chris.christiansen@vauco.no`. This guide documents how access control is configured for `opax.vauco.no` / `osvauco-agent`.
--- ---
@ -20,119 +21,62 @@ Live output fra `gcloud run services list --platform=managed --project=propane-w
| `osvauco-agent` | us-central1 | https://osvauco-agent-357036551735.us-central1.run.app | 2026-05-24 | | `osvauco-agent` | us-central1 | https://osvauco-agent-357036551735.us-central1.run.app | 2026-05-24 |
| `vauco-tui-bridge` | europe-west1 | https://vauco-tui-bridge-357036551735.europe-west1.run.app | 2026-05-17 | | `vauco-tui-bridge` | europe-west1 | https://vauco-tui-bridge-357036551735.europe-west1.run.app | 2026-05-17 |
**IAP-mål:** `osvauco-agent` (us-central1) — OPAX-hub, sist deployet, mest aktiv. **Domain mapping:** `opax.vauco.no``osvauco-agent` (us-central1) via CNAME `ghs.googlehosted.com`
---
## Valgt løsning: Cloud Run IAM (ikke load balancer IAP)
Cloud Run domain mapping støtter ikke IAP direkte. Løsningen er Cloud Run IAM-autentisering:
```bash
# Fjern public access (allUsers var ikke satt — kommando er trygg å kjøre)
gcloud run services remove-iam-policy-binding osvauco-agent \
--region=us-central1 \
--member="allUsers" \
--role="roles/run.invoker" \
--project=propane-will-491900-m5
# Gi tilgang til autoriserte brukere
gcloud run services add-iam-policy-binding osvauco-agent \
--region=us-central1 \
--member="user:chris.christiansen@vauco.no" \
--role="roles/run.invoker" \
--project=propane-will-491900-m5
```
**Aktiv IAM-policy (verifisert 2026-05-25):**
| Member | Role | Status |
|---|---|---|
| `user:chris.christiansen@vauco.no` | `roles/run.invoker` | ✅ Aktiv |
| `user:jason.vauger@vauco.no` | `roles/run.invoker` | ✅ Aktiv |
---
## OAuth-klient (klar for fremtidig load balancer IAP)
**OAuth-klient klar:**
- Navn: `Vauco OS Web App` - Navn: `Vauco OS Web App`
- Client ID: `357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com` - Client ID: `357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com`
- Client secret: lagret lokalt (ikke i repo) - Client secret: lagret lokalt (ikke i repo)
--- ⚠️ **Roter client secret** — ble eksponert i terminal under oppsett 2026-05-25. Gå til [Google Auth Platform → Credentials](https://console.cloud.google.com/auth/clients?project=propane-will-491900-m5).
## Steg 1 — Aktiver IAP API
```bash
gcloud services enable iap.googleapis.com --project=propane-will-491900-m5
```
✅ Fullført 2026-05-25.
--- ---
## Steg 2 — Opprett Serverless NEG for osvauco-agent ## Load balancer — opprettet og ryddet 2026-05-25
```bash En global load balancer ble opprettet og deretter slettet samme dag da det ble klart at Cloud Run domain mapping ikke krever dette. Alle ressurser er slettet:
gcloud compute network-endpoint-groups create opax-neg \
--region=us-central1 \
--network-endpoint-type=serverless \
--cloud-run-service=osvauco-agent \
--project=propane-will-491900-m5
```
--- - `opax-forwarding-rule` ✅ slettet
- `opax-https-proxy` ✅ slettet
## Steg 3 — Opprett Backend Service - `opax-cert` ✅ slettet
- `opax-url-map` ✅ slettet
```bash - `opax-backend` ✅ slettet
gcloud compute backend-services create opax-backend \ - `opax-neg` ✅ slettet
--global \
--project=propane-will-491900-m5
gcloud compute backend-services add-backend opax-backend \
--global \
--network-endpoint-group=opax-neg \
--network-endpoint-group-region=us-central1 \
--project=propane-will-491900-m5
```
---
## Steg 4 — URL Map + HTTPS Proxy + SSL-sertifikat
```bash
gcloud compute url-maps create opax-url-map \
--default-service opax-backend \
--project=propane-will-491900-m5
gcloud compute ssl-certificates create opax-cert \
--domains=opax.vauco.no \
--project=propane-will-491900-m5
gcloud compute target-https-proxies create opax-https-proxy \
--url-map=opax-url-map \
--ssl-certificates=opax-cert \
--project=propane-will-491900-m5
gcloud compute forwarding-rules create opax-forwarding-rule \
--global \
--target-https-proxy=opax-https-proxy \
--ports=443 \
--project=propane-will-491900-m5
```
---
## Steg 5 — Aktiver IAP på Backend Service
```bash
gcloud iap web enable \
--resource-type=backend-service \
--service=opax-backend \
--oauth2-client-id=357036551735-ka7t2fv9ue2jp01bs826hpdctlvispuo.apps.googleusercontent.com \
--oauth2-client-secret=DIN_CLIENT_SECRET \
--project=propane-will-491900-m5
```
> ⚠️ Erstatt `DIN_CLIENT_SECRET` med secret lagret lokalt. Aldri commit denne verdien.
---
## Steg 6 — Gi tilgang til chris.christiansen@vauco.no
```bash
gcloud projects add-iam-policy-binding propane-will-491900-m5 \
--member="user:chris.christiansen@vauco.no" \
--role="roles/iap.httpsResourceAccessor"
```
---
## Steg 7 — Verifiser
```bash
# Sjekk at IAP er aktivert
gcloud iap web get-iam-policy \
--resource-type=backend-service \
--service=opax-backend \
--project=propane-will-491900-m5
# Sjekk at opax.vauco.no svarer med IAP-redirect (ikke direkte JSON)
curl -I https://opax.vauco.no/health
# Forventet: HTTP 302 redirect til accounts.google.com
```
--- ---
## vauco-tui-bridge — parkert til separat vurdering ## vauco-tui-bridge — parkert til separat vurdering
`vauco-tui-bridge` (europe-west1) har eksisterende NEG-referanser i tidligere versjoner av dette dokumentet. `vauco-tui-bridge` (europe-west1) aktiveres i egen fase etter behov.
IAP for denne tjenesten aktiveres i egen fase etter at `osvauco-agent`-IAP er verifisert.

View File

@ -67,362 +67,34 @@ PHASE 5 -- IAP paa opax.vauco.no: begrens tilgang til @vauco.no Google-kontoer k
--- ---
## SLUTTRAPPORT - 2026-05-22 - Phase 4 ## SLUTTRAPPORT 2026-05-25 Phase 4 follow-up / docs + mirror hardening
- Hva: VS Code boot-environment fullfort. osv-startup.ps1 klar med OPAX-status, glow-prompt og NESTE OPPGAVE display.
- Filer:
- `scripts/osv-startup.ps1` -- opprettet, iterert til stabil versjon med bold green OPAX-prompt
- `.vscode/settings.json` -- auto-startup profil for PS7 i VS Code
- `docs/VAUCO_OS_ROADMAP.md` -- synkronisert: Phase 1+2+3 flagget done, Phase 4 NOW
- `docs/TODO.md` -- synkronisert med faktisk state
- Commits: 0e43473 -> 2ce021a (Phase 4 iterasjoner)
- Verifisering: osv-startup.ps1 viser OPAX-status + STATUS gronn i terminal [OK]
## NESTE OPPGAVE
PHASE 5 -- IAP paa opax.vauco.no: begrens tilgang til @vauco.no Google-kontoer kun. HITL gate: DEPLOY GODKJENT.
---
## SLUTTRAPPORT 2026-05-25 Phase 3 follow-up / docs + mirror hardening
- Hva: GDrive/GitHub mirror, nattlig backup, boot-dashboard, aliaser og terminal-logging ferdigstilt og verifisert i Cloud Shell. - Hva: GDrive/GitHub mirror, nattlig backup, boot-dashboard, aliaser og terminal-logging ferdigstilt og verifisert i Cloud Shell.
- Filer: - Filer:
- `docs/GDRIVE_MIRROR_BOOT.md` — opprettet som tydelig GitHub-dominant speil for GDrive-bruk. - `docs/LEARNINGS.md` — LEARNING-007/008/009 appendet.
- `docs/GDRIVE_SETUP.md` — lagt til med service account, secrets og restore-flyt. - `docs/SECRETS-SETUP.md` — GitHub Actions secrets dokumentert.
- `docs/LEARNINGS.md` — append-only lærdom utvidet med bash/POSIX, rclone-deling og mirror-state-mønster. - `docs/IAP-SETUP.md` — markert Phase 5, ikke startet.
- `docs/SECRETS-SETUP.md` — dokumentert aktive GitHub Actions secrets for backup. - Verifisering: `opax.vauco.no/health``{"status":"ok"}`
- `docs/IAP-SETUP.md` — markert som Phase 5, ikke startet.
- `scripts/sync-gdrive-mirror.sh` — sync med tidsstempel, SHA og `.gdrive-mirror-state`.
- `scripts/osvauco-opax-boot.sh` — repo sync, mirror-status, alias auto-inject, PROMPT_COMMAND logging.
- `.github/workflows/backup-gdrive-nightly.yml` — nattlig GDrive-backup via rclone.
- Verifisering:
- `opax.vauco.no/health``{"status":"ok"}`
- `mirror-sync` kjørt → HEAD `3058144``8c70c7c` → state oppdatert til `1dcf249`
- GitHub Actions secrets satt: `RCLONE_GDRIVE_SA_JSON`, `GDRIVE_BACKUP_FOLDER_ID`
- GDrive-mappe delt med `vauco-gdrive-backup@propane-will-491900-m5.iam.gserviceaccount.com`
- Note: IAP er bevisst utsatt til neste fase. `/health` er live, men `/ping` er tidligere erstattet i praksis av health-check på dashboardet.
## NESTE OPPGAVE ## NESTE OPPGAVE
PHASE 4 — Docs hardening ferdigstilles ved å holde `LEARNINGS.md`, `SECRETS-SETUP.md` og `IAP-SETUP.md` oppdatert mot live state. Deretter: PHASE 5 — IAP på `opax.vauco.no`. PHASE 5 — Cloud Run IAM-autentisering på `osvauco-agent`.
--- ---
## Session: 20260523-054807
- Tid : 2026-05-23 05:50 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
--- ## SLUTTRAPPORT 2026-05-25 Phase 5 — Cloud Run IAM-autentisering
## Session: 20260523-055359
- Tid : 2026-05-23 05:54 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : Exec Phase A+B
--- - Hva: Tilgangskontroll på `osvauco-agent` / `opax.vauco.no` fullført via Cloud Run IAM. Load balancer IAP forsøkt, men ikke nødvendig med Cloud Run domain mapping (CNAME → ghs.googlehosted.com). Load balancer opprettet og slettet samme dag.
## Session: 20260523-055906 - Filer:
- Tid : 2026-05-23 05:59 UTC - `docs/IAP-SETUP.md` — fullstendig oppdatert med kartlegging, valgt løsning, IAM-policy og load balancer cleanup.
- Bruker : chris.christiansen@vauco.no - `docs/OSVAUCO_OPAX_SESSION_LOG.md` — Phase 5 sluttrapport.
- OPAX : NEDE - IAM-policy verifisert:
- Mål : her - `user:chris.christiansen@vauco.no``roles/run.invoker`
- `user:jason.vauger@vauco.no``roles/run.invoker`
- `allUsers` — ikke satt ✅
- DNS urørt: `opax CNAME ghs.googlehosted.com` (TTL 300) ✅
- IAP API aktivert: `iap.googleapis.com`
- OAuth-klient klar: `Vauco OS Web App` — ⚠️ roter client secret (eksponert i terminal 2026-05-25)
- LEARNING-010 kandidat: Cloud Run domain mapping støtter ikke load balancer IAP — bruk IAM direkte på tjenesten.
--- ## NESTE OPPGAVE
## Session: 20260523-061624 PHASE 6 — Roter OAuth client secret for `Vauco OS Web App` i [Google Auth Platform](https://console.cloud.google.com/auth/clients?project=propane-will-491900-m5). Deretter: vurder om `jason.vauger@vauco.no` skal beholde `roles/run.invoker``osvauco-agent`, eller om tilgang skal innsnevres til kun `@vauco.no`-kontoer via IAP load balancer på sikt.
- Tid : 2026-05-23 06:16 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : fase a+b
---
## Session: 20260523-135706
- Tid : 2026-05-23 13:57 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135706
- Tid : 2026-05-23 13:57 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135710
- Tid : 2026-05-23 13:57 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135747
- Tid : 2026-05-23 13:57 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135751
- Tid : 2026-05-23 13:57 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135756
- Tid : 2026-05-23 13:57 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135800
- Tid : 2026-05-23 13:58 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135805
- Tid : 2026-05-23 13:58 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135809
- Tid : 2026-05-23 13:58 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135814
- Tid : 2026-05-23 13:58 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135819
- Tid : 2026-05-23 13:58 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135823
- Tid : 2026-05-23 13:58 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-135710
- Tid : 2026-05-23 14:16 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : fase a+b
---
## Session: 20260523-141745
- Tid : 2026-05-23 14:17 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141751
- Tid : 2026-05-23 14:17 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141756
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141802
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141807
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141813
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141819
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141824
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141830
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-141835
- Tid : 2026-05-23 14:18 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-152725
- Tid : 2026-05-23 15:27 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-152725
- Tid : 2026-05-23 15:27 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-152731
- Tid : 2026-05-23 15:30 UTC
- Bruker : ukjent
- OPAX : NEDE
- Mål : fullførelse av fase abc
---
## Session: 20260523-170425
- Tid : 2026-05-23 17:04 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-170425
- Tid : 2026-05-23 17:04 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-170430
- Tid : 2026-05-23 17:04 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : Phaze abc
---
## Session: 20260523-171956
- Tid : 2026-05-23 17:21 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : ABC
---
## Session: 20260523-174538
- Tid : 2026-05-23 17:45 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200030
- Tid : 2026-05-23 20:00 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200036
- Tid : 2026-05-23 20:00 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200042
- Tid : 2026-05-23 20:00 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200049
- Tid : 2026-05-23 20:00 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200055
- Tid : 2026-05-23 20:00 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200101
- Tid : 2026-05-23 20:01 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200108
- Tid : 2026-05-23 20:01 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200102
- Tid : 2026-05-23 20:01 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : abc
---
## Session: 20260523-200114
- Tid : 2026-05-23 20:01 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200120
- Tid : 2026-05-23 20:01 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)
---
## Session: 20260523-200126
- Tid : 2026-05-23 20:01 UTC
- Bruker : chris.christiansen@vauco.no
- OPAX : NEDE
- Mål : (ingen beskrivelse)