Google Cloud Storage (GCS)
Denne siden viser hvordan du kommer i gang med Google Cloud Storage-buckets for applikasjoner på SKIP.
Når passer GCS?
Bruk GCS når du trenger objektlagring for eksempel:
- filer og vedlegg
- eksport/import av data
- backupfiler
Forutsetninger
Før du starter, sjekk at du har:
- Et GCP-prosjekt for miljøet ditt (dev/test/prod)
- Tilgang til prosjektet ditt
- Aktivert riktig PAM-tilgang
- Et repo/oppsett for Terraform (anbefalt)
1) Opprett bucket (anbefalt med Terraform)
Vi anbefaler at buckets opprettes med Terraform, ikke manuelt i konsollet. SKIP teamet har opprettet en terraform-modul for GCS som du kan bruke i ditt eget Terraform-oppsett. Se Terraform-modulen for GCS for mer informasjon.
2) Gi applikasjonen minst mulig tilgang
Opprett en dedikert Service Account for applikasjonen, og gi kun nødvendige roller på bucket-nivå. (Dette bør gjøres med terraform, se forrige punkt).
Eksempel med lesetilgang:
resource "google_service_account" "myapp" {
account_id = "myapp"
display_name = "myapp on SKIP"
project = var.project_id
}
resource "google_storage_bucket_iam_member" "myapp_reader" {
bucket = google_storage_bucket.app_data.name
role = "roles/storage.objectViewer"
member = "serviceAccount:${google_service_account.myapp.email}"
}
Vanlige roller:
roles/storage.objectViewer: lese objekterroles/storage.objectCreator: laste opp nye objekterroles/storage.objectAdmin: lese/skrive/slette objekter
Bruk laveste mulig rolle. Unngå brede prosjektroller når bucket-niva holder.
3) Koble appen til GCP i Skiperator
Legg Service Account i applikasjonsmanifestet, som beskrevet i Vanlig Skiperator-konfigurering.
Da bruker applikasjonen Workload Identity-flyt i SKIP, og du slipper å håndtere JSON-nøkler selv. Kubernetes Service Account må gis tilgang til GCP servicekontoen.
- bruk separate buckets per miljø og applikasjon
Feilsøking
403mot GCS- Sjekk IAM-rolle på bucket for Service Account
- Sjekk at Kubernetes Service Account har tilgang til GCP Service Account
- Sjekk at Kubernetes Service Account og namespace er riktig i IAM-bindingen for Workload Identity
- timeout/tilkoblingsfeil: sjekk
accessPolicyforstorage.googleapis.com:443 - feil miljø/prosjekt: sjekk at riktig Google Service Account brukes i manifestet