Om scripts of geautomatiseerde systemen veilig te verbinden met je BigQuery-dataset, gebruik je vaak niet direct je gebruikersaccount. Het is in de systemen niet altijd mogelijk om in te loggen en data pipelines draaien vaak 's nachts, waardoor multi factor authentication met een telefoon of authenticator onpraktisch is. Hiervoor maak je een serviceaccount aan. Hoe je deze kunt aanmaken en welke beveiligingsopties er zijn, lees je in dit artikel.
Een serviceaccount aanmaken
Om scripts of geautomatiseerde systemen veilig te verbinden met je BigQuery-dataset, heb je een serviceaccount nodig, en vaak een sleutelbestand (key file).
Het aanmaken van een serviceaccount is niet altijd nodig. We raden aan deze pas aan te maken als het zeker is dat dit nodig is voor authenticatie.
- Navigeer naar IAM & Beheer > Service Accounts.
- Klik bovenaan op + serviceaccount MAKEN.
- Geef een naam op (bijv.
spend-cloud-bi) en klik op Maken en doorgaan. Wijs de volgende drie rollen toe:
- BigQuery Data Viewer
- BigQuery Job User
- BigQuery Read Session User
- Klik op Gereed.
- Klik op je nieuw gemaakte serviceaccount in de lijst, navigeer naar het tabblad Sleutels (Keys), klik op Sleutel toevoegen > Nieuwe sleutel maken (Add Key > Create new key) en selecteer JSON. Het sleutelbestand wordt nu automatisch gedownload.
Bij het aanmaken van een keyfile raden we sterk aan de volgende sectie door te nemen om de juiste beveiligingsafwegingen te maken.
Data pipeline credentials & security
Hoewel het uitsluitend gebruiken van een serviceaccount keyfile mogelijk en eenvoudig is, brengt het wel beveiligingsrisico's met zich mee. Als de keyfile in verkeerde handen komt, kan deze worden gebruikt om jouw data op te halen. In dit hoofdstuk beschrijven we de drie beveiligingsmethoden om data pipelines te authenticeren en te autoriseren. Per methode leggen we uit hoe dit wordt ingesteld en welke organisatorische randvoorwaarden (zoals een GCP-organisatie of billing) van toepassing zijn.
1. Handmatige of geautomatiseerde Sleutelrotatie (Key Rotation)
Sleutelrotatie is de traditionele methode om het risico van gelekte inloggegevens te minimaliseren. In plaats van een serviceaccount JSON-sleutel voor onbepaalde tijd te gebruiken, wordt deze sleutel periodiek vervangen door een nieuwe, waarna de oude sleutel wordt ingetrokken.
Hoe stel je dit in?
Nieuwe sleutel genereren:
- Navigeer in de GCP Console naar IAM & Beheer > serviceaccounts.
- Klik op het serviceaccount dat wordt gebruikt voor de data pipeline.
- Open het tabblad Sleutels (Keys), klik op Sleutel toevoegen > Nieuwe sleutel maken en kies voor JSON.
Sleutel implementeren in Azure:
- Sla de gedownloade JSON-sleutel veilig op binnen de Azure-omgeving van de klant (bijvoorbeeld in Azure Key Vault).
- Werk de data pipeline (bijv. Azure Data Factory of Databricks) bij zodat deze de nieuwe sleutel gebruikt voor authenticatie bij BigQuery.
Oude sleutel intrekken:
- Zodra de pipeline succesvol draait met de nieuwe sleutel, ga je terug naar de GCP Console.
- Verwijder de oude sleutel onder het tabblad Sleutels van het betreffende serviceaccount.

Handmatige rotatie is foutgevoelig. Je kunt dit automatiseren door een Azure Function of GCP Cloud Function in te richten die via de GCP IAM API periodiek een nieuwe sleutel genereert, deze naar Azure Key Vault wegschrijft en de oude sleutel na een overgangsperiode van 24 uur automatisch verwijdert.
2. IP Blocking (Netwerkrestricties)
Met IP-blocking zorg je ervoor dat de BigQuery-data alleen benaderd kan worden vanaf vooraf goedgekeurde IP-adressen (bijvoorbeeld de NAT-gateways of vaste IP's van de Azure-omgeving van de klant). Dit richt je in met behulp van Access Context Manager en VPC Service Controls via de onderstaande stappen:
Stap 1: Maak een Access Level aan
- Ga naar Security > Access Context Manager (zorg dat je op organisatieniveau werkt in de dropdown bovenaan).
- Maak een Access Level (Toegangsniveau) aan waarin je de toegestane IP-adressen van de externe pipeline definieert.
Stap 2: Creëer een VPC Service Perimeter
- Navigeer naar Security > VPC Service Controls (controleer opnieuw of je op organisatieniveau zit).
- Klik op New Perimeter (Nieuwe perimeter).
- Geef de perimeter een herkenbare naam (bijvoorbeeld
bq-pipeline-perimeter).
Stap 3: Beveilig het Project en de Service
- Projects: Voeg het GCP-project toe dat jouw BigQuery-dataset bevat.
- Restricted Services: Klik op "Add Services" en selecteer de BigQuery API.
Let op: Dit vertelt Google Cloud om al het verkeer naar BigQuery in dit project te blokkeren dat van buiten de perimeter komt.
Stap 4: Koppel je Access Level
- Klik in het configuratiemenu van de perimeter op Access Levels.
- Selecteer exact het Access Level dat je in Stap 1 hebt aangemaakt.
- Klik op Create Perimeter (of Opslaan).
Voor het gebruik van Access Context Manager en VPC-SC is het vereist dat de klant een GCP-organisatie (Organization) heeft. Aan het aanmaken van een organisatie zijn geen kosten verbonden, wel is domeinverificatie noodzakelijk. Voor het instellen van Access Context Manager of basis VPC-SC perimeters worden doorgaans geen extra kosten in rekening gebracht. Wel is actieve GCP-billing op het project vereist om de benodigde API's te kunnen activeren.
3. Workload Identity Federation (WIF) - Sleutelloze Authenticatie
Workload Identity Federation (WIF) is de modernste en meest veilige methode voor machine-to-machine authenticatie. Het elimineert het gebruik van statische JSON-sleutels volledig ("keyless"). In plaats daarvan vertrouwt GCP de identiteit van Azure (Microsoft Entra ID) direct.
Hoe stel je dit in?
Azure Identiteit voorbereiden:
- Maak in Azure een User-Assigned Managed Identity of een App Registration aan voor de data pipeline (bijv. Azure Data Factory).
GCP Workload Identity Pool aanmaken:
- Navigeer in het GCP-project naar IAM & Beheer > Workload Identity-federatie.
- Maak een nieuwe Pool aan (bijv.
azure-pipeline-pool).
Provider toevoegen:
- Voeg een OIDC-provider toe aan de pool.
- Configureer de Issuer URL van de Microsoft Entra ID-tenant (bijv.
https://login.microsoftonline.com/<TENANT_ID>/v2.0) en stel de doelgroep (Audience) in.
Serviceaccount koppelen:
- Koppel het GCP serviceaccount (dat toegang heeft tot de Analytics Hub gekoppelde dataset) aan de Workload Identity Pool.
- Wijs de rol Workload Identity User toe aan de specifieke Azure-identiteit op basis van claims (bijvoorbeeld het Application ID of de tenant van de klant).
Pipeline configureren:
- Configureer de Azure-pipeline om bij de start een Azure Active Directory token op te vragen, dit token aan te bieden aan de GCP STS (Security Token Service) API, en het kortstondige GCP-toegangstoken (maximaal 1 uur geldig) te gebruiken voor de BigQuery-query.
Voor het opzetten van Workload Identity Federation (WIF) is geen GCP Organisatie vereist. Het kan volledig worden geconfigureerd binnen een losstaand GCP-project op projectniveau. Het gebruik van de WIF-service (de token-uitwisseling) is volledig kosteloos. Hoewel Google Cloud in sommige gevallen vereist dat er een billing account aan het project gekoppeld is om bepaalde achterliggende API's (zoals de IAM Credentials API) te activeren, leidt dit niet direct tot kosten.
Heb je vragen of loop je ergens tegenaan? Neem dan contact op met ons supportteam.