Skip to main content

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:

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 objekter
  • roles/storage.objectCreator: laste opp nye objekter
  • roles/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

  • 403 mot 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 accessPolicy for storage.googleapis.com:443
  • feil miljø/prosjekt: sjekk at riktig Google Service Account brukes i manifestet