Detaljert om tilganger
Her følger informasjon som kan være interessant for avanserte scenarier, som begrensning av rettigheter, deling av andre datalagere, etc.
Identity and Access Management
Identity and Access Management (IAM) er tilgangsstyringen i GCP. For å gjøre noe som helst i GCP må du ha fått tildelt riktige tilganger. Tilganger består av to konsepter: roles og permissions.
Roles: En rolle har formen roles/bigquery.dataViewer
, og er det som tildeles brukere. Alle datavitere har rollen roles/owner
i sine playground-prosjekt, som betyr at du står fritt til å opprette alle ressurser du ønsker.
Permissions: Enhver rolle består av et sett med tilganger. Disse har navn på formen bigquery.datasets.get
, og er det som sjekkes når du forsøker gjøre operasjoner mot ressurser i GCP.
Siden Understanding Roles har en oversikt over samtlige roller i GCP og kan være nyttig for å se hvilke tilganger de forskjellige rollene innebærer.
Roller i GCP
Tilgangsgruppene på prosjekt- eller datasonenivå er delt inn i Reader og Observer. Disse gruppene gir følgende tilganger:
Reader
Dette er tilganger som gis til gruppene på nederste nivå i reader-hierarkiet, altså gruppene som opprettes per datasone.
-
BigQuery:
roles/bigquery.dataViewer
per BQ-datasett (konsument må betale for spørringer i eget prosjekt) -
GCS:
roles/storage.objectViewer
på bøttenivå -
Cloud SQL/Postgres: Må lage en "federated data source connection" og gi gruppen
bigquery.connection.user
på denne. Andre datalagere legges til her ved behov
Observer
Dette er tilganger som gis til gruppene på nederste nivå i observer-hierarkiet, altså gruppene som opprettes per prosjekt.
-
For BigQuery:
roles/bigquery.metadataViewer
per BQ-datasett (konsument må betale for spørringer i eget prosjekt) -
For alle andre typer datasett: Må ha lesetilgang til datakatalogen (
roles/datacatalog.viewer
), hvor datasettet må være registrert med metadata.
IAM-bindings for datasett-grupper
Siden selve tilgangsstyringen mot ressurser gjøres på datasone-nivå, er det en del IAM-bindings som må på plass for at brukere skal kunne finne fram til prosjekt-ressursene de har tilgang til. Dette varierer også noe basert på hva slags ressurs det er snakk om.
Overordnet
Alle tilgangsgruper på datasone-nivå må ha rollen roles/browser
for å i det hele tatt kunne velge prosjektet i GCP-console.
Google Cloud Storage
Alle tilgangsgrupper som skal gjelde for en GCS-bøtte må ha rettigheten storage.buckets.list
for å kunne se hvilke bøtter som finnes. Dessverre er det ingen innebygde roller i dag som gir denne rettigheten uten også å gi leserettighet til objektene i samtlige bøtter; vi har derfor definert en Custom Role roles/storage.browser
for å støtte visning av bøtter. Denne blir automatisk opprettet ved prosjektopprettelse.
Tilgangsgrupper må også ha rollen roles/storage.objectViewer
på de spesifikke bøttene de skal ha tilgang til.
BigQuery
Alle tilgangsgrupper som skal gjelde for et BQ-datasett må ha rollen roles/bigquery.dataViewer
på gjeldende datasett for å kunne se datasettet og tabeller.