Få tilgang til datakilder
Få tilgang til data i sky¶
Postgres GCP¶
For å lage dataprodukter med data fra databaser i sky trenger man først og fremst en bruker for å lese data fra databasen. Selv om det er teknisk mulig å benytte database-brukernavn og passord fra applikasjoner som har tilgang er dette ikke anbefalt. Oppretting av egen bruker for dette behovet er anbefalt. Det fins to metoder for å opprette bruker.
nais-cli¶
Man kan benytte nais-cli
som har en egen kommando for tilgang til postgres-databaser i sky.
For å opprette en bruker med select
privilegier, se dokumentasjon for users add
Manuelt¶
For manuell opprettelse av bruker må du først opprette personlig tilgang til databasen. Følg instruksjonene i NAIS-dokumentasjonen for å koble til. Når du er inne i databasen, oppretter du og gir tilgang til databasebrukeren med kommandoene nedenfor.
CREATE USER <brukernavn> WITH ENCRYPTED PASSWORD '<passord>';
GRANT CONNECT ON DATABASE <databasenavn> TO <brukernavn>;
GRANT USAGE ON SCHEMA public TO <brukernavn>;
Videre kan du gi brukeren rettigheter til å lese alle tabeller:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO <brukernavn>;
eller utvalgte tabeller:
GRANT SELECT ON <tabellnavn> TO <brukernavn>;
Få tilgang til data on-prem¶
Hvordan snakke med Vault fra on-prem Naisjob?¶
Når man kjører en Naisjob i on-prem og har hemmeligheter i Vault må disse bli hentet ved oppstart av jobben.
Dette kan løses ved bruk av Vault-config i applikasjonsmanifestet.
Da vil hemmelighetene dine lastes inn som filer som du kan lese fra din kode.
Ønsker du å ha de som miljøvariabler så kan dere bruke navikt/baseimages, som har støtte for å transformere Vault-hemmeligheter som slutter på .env
til miljøvariabler.
Hvordan få tilgang til BigQuery fra en Naisjob i on-prem?¶
For å kunne snakke med BigQuery trenger dere et token for en service account som har tilgang til å lese BigQuery. Følg guiden Createing a service account hos Google, og så følger dere guiden Creating service account keys.
Når dette er gjort så ender dere opp med en JSON-fil som er hemmeligheten dere trenger å legge inn i Vault, som igjen da blir eksponert i jobben deres. For at Pandas eller andre rammeverk skal plukke denne opp automatisk så må den være eksponert som en miljøvariabel som heter GOOGLE_APPLICATION_CREDENTIALS
.