Deling av data

Dapla-team kan dele data mellom team via såkalte delt-bøtter. Hvert team kan opprette de delt-bøttene de har behov for, og deretter gi tilgang til grupper i andre team. Opprettelse av bøtter skal følge retningslinjene som er definert her.

Forberedelser

For å opprette delt-bøtter må man først skru på featuren shared-buckets for teamet. Det gjøres ved at en på teamet gjør følgende:

  1. Gå til IaC-repoet til teamet på Github.
  2. Åpne filen ./infra/projects.yaml.
  3. Legg til en linje med shared-buckets under features i miljøet du ønsker, slik som vist til høyre.
  4. Opprette en PR med endringen.
  5. Be en i gruppa data-admins se over endringen og godkjenne.
  6. Kjør atlantis plan og atlantis apply slik som beskrevet her.
projects.yaml
team_uniform_name: dapla-example

projects:
  - project_name: dapla-example
    env: prod
    features:
      - dapla-buckets
      - transfer-service
      - shared-buckets

Opprettelse av bøtte

Opprettelse av delt-bøtter gjøres i teamets IaC-repo. For å opprette en delt-bøtte må man legge til en linje i fila ./infra/projects/<teamnavn>-prod/buckets-shared.yaml. Du legger bare til kortnavnet for bøtta, altså den delen av bøtte-navnet som teamet kan styre selv. For å opprette en bøtte med kortnavn freg, så fyller man bare inn følgende:

buckets-shared.yaml
# Use this file to create new buckets for sharing data easily.
# Simply add a line with a dash and your new shared bucket's name:
# - my-shared-data
# This will create a bucket with the name ssb-arbmark-register-data-delt-my-shared-data-prod
- freg

De 5 første linjene er bare kommentarer som forteller hvordan man oppretter bøttene. På linje 6 ser vi hva som måtte fylles ut for å opprette en bøtte med kortnavn freg, som igjen får bøttenavnet:

ssb-<teamnavn>-data-delt-freg-prod

Etter at endringen er gjort i buckets-shared.yaml, så gjør du følgende:

  1. Opprette en PR på repoet med endringen.
  2. Få en i gruppen data-admins til å gå gjennom og godkjenne.
  3. Kjør atlantis plan og atlantis apply som beskrevet her.
Navngivning av bøtter

Navngivning av bøtter følger RFC 1123. Dvs. at navnet må følge disse reglene:

  • Max 63 tegn i navnet (gjelder fullt navn på bøtta)
  • kun små bokstaver a-z og sifre 0-9
  • tillatt med -

Tilgangsstyring

Tilgangsstyringen til delt-bøtta kan gjøres av teamet som eier bøtta. Hvem som har tilgang blir definert i fila ./infra/projects/<teamnavn>-prod/iam.yaml i IaC-repoet til teamet. Under ser man strukturen på iam.yaml for å gi tilgang til delt-bøtter:

iam.yaml
buckets:
  ssb-dapla-example-data-delt-freg-prod:
    team-alpha-data-admins:
    - ssb.bucket.read
    team-alpha-developers:
    - ssb.bucket.read

  ssb-dapla-example-data-delt-ameld-prod:
    team-beta-developers:
    - ssb.bucket.read

Over ser vi at teamet dapla-example har to delt-bøtter:

  1. ssb-dapla-example-data-delt-freg-prod
  2. ssb-dapla-example-data-delt-ameld-prod

Den første bøtta har de gitt lesetilgang til data-admins og developers i team-alpha. Fra linje 8 og nedover ser vi at de har gitt developers i team-beta lesetilgang til ssb-dapla-example-data-delt-ameld-prod.

Når man har gjort endringer i iam.yaml så gjør man følgende:

  1. Opprette en PR med endringen.
  2. Få en i gruppen data-admins til å gå gjennom endringen og godkjenne.
  3. Kjør atlantis plan og atlantis apply som beskrevet her.