Some checks are pending
Check Python Version Consistency / Check Python Version (push) Waiting to run
- SECURITY.md: Overordnet visjon med lenker til alle manifestfiler - SECURITY_AUDITS.md: Historikk og To-Do liste - RUNBOOK.md: 6 operasjonelle scenarier (ukjent bruker, eksponert secret, 401/403, 50x, VPC-SC, BinAuthz) - INCIDENT_RESPONSE.md: PICERL-modell med eskaleringsmatrise - SECRET_MANAGEMENT.md: Policy + lokal utvikling - ACCESS_CONTROL.md: IAM-policy med service account-oversikt - COMPLIANCE.md: TYR, Binary Auth, KMS-attestasjon Opprydding: - Slettet sensitive filer (test_secret.txt, final-secret-test.txt, tyr/certs/ca_password.txt) - Slettet engangsskript og midlertidige filer - Oppdatert .gitignore med *.txt
3.5 KiB
3.5 KiB
OSVxCC Access Control Policy
Dette dokumentet definerer policyen for tilgangsstyring til alle ressurser i OSVxCC-arkitekturen. Målet er å sikre at kun autoriserte prinsipaler (brukere, service accounts) har tilgang, og kun med de rettighetene som er absolutt nødvendige (prinsippet om minimalt privilegium).
Kjerne-prinsipper
- Minimalt Privilegium (Least Privilege): Alle prinsipaler skal kun ha det absolutte minimum av rettigheter som kreves for å utføre sin definerte funksjon.
- Service Accounts for Tjenester: All kode og alle tjenester (f.eks. Cloud Run, Compute Engine) skal kjøre med en dedikert service account med et snevert sett med rettigheter. Standard service accounts skal herdes.
- Menneskelig Tilgang via IAP: All interaktiv menneskelig tilgang til interne ressurser (som SSH til VM-er) skal gå gjennom Identity-Aware Proxy (IAP). Direkte eksponering av porter til internett er forbudt.
- Nekt Alt som Standard (Default Deny): Implisitt eller eksplisitt skal tilgang nektes med mindre det er gitt en spesifikk tillatelse.
IAM-Policy og Praksis
Forbud mot Primitive Roller
Bruk av primitive roller er strengt regulert:
roles/owner: Forbudt for alle ressurser unntatt på prosjektnivå for et begrenset antall prosjekteiere.roles/editor: Forbudt. Denne rollen er for bred og gir for mange rettigheter. Den har blitt fjernet fra standard service accounts (seSECURITY.md).roles/viewer: Skal kun brukes for roller som krever bred, men passiv, innsikt.
Predefinerte roller (f.eks. roles/run.invoker, roles/secretmanager.secretAccessor) skal alltid foretrekkes.
Viktige Service Accounts
Dette er kjernen i den usynlige arkitekturen. Hver konto har et begrenset og veldefinert formål.
| Service Account | Formål | Kritiske Roller |
|---|---|---|
osvxcc-sa@... |
Kjerneidentitet for OSVxCC. Brukes av agenter og verktøy. | run.invoker, secretmanager.secretAccessor |
jason-vauger@... |
Runtime-identitet for MCP-serveren (Cloud Run). (Historisk navn. Bør vurderes omdøpt til f.eks. opax-mcp-runtime-sa ved en senere anledning). |
secretmanager.secretAccessor |
osvauco-agent-sa@... |
Identitet for OSVauco-agenten. | secretmanager.secretAccessor |
...-compute@... |
GCE default service account. Herdet ved fjerning av editor-rollen. |
Begrensede rettigheter for VM-drift. |
Menneskelig Tilgang
- SSH-tilgang: Gis ved å legge til en brukers Google-konto i IAM med rollene
roles/iap.tunnelResourceAccessorogroles/oslogin.user. Brannmur-regler skal kun tillate SSH-trafikk fra IAPs verifiserte IP-range (35.235.240.0/20). - Konsolltilgang: Gis via medlemskap i Google Grupper, som igjen tildeles spesifikke, forhåndsdefinerte IAM-roller.
Prosedyre for Tildeling av Tilgang
- Forespørsel: En forespørsel om tilgang sendes med en klar begrunnelse for hvorfor tilgangen er nødvendig og hva den skal brukes til.
- Vurdering: Forespørselen vurderes for å identifisere det minimale settet med rettigheter som trengs. Alternativer som midlertidig tilgang vurderes.
- Tildeling: Rettigheter tildeles, helst ved å legge prinsipalen til i en eksisterende gruppe eller ved å tildele en predefinert rolle for et spesifikt ressurs.
- Revisjon: Tildelingen logges, og alle IAM-policyer revideres jevnlig (mål: hver 90. dag) for å fjerne utdaterte eller unødvendige rettigheter.