Azure Key Vault: Wachtwoorden en sleutels veilig opslaan

Azure Key Vault – Voor bijna elke applicatie die je gebruikt word je geacht in te loggen met een gebruikersnaam en wachtwoord. Om te zorgen dat iemand niet zomaar je wachtwoord raadt, wordt er aangeraden een complex wachtwoord te gebruiken. Daarnaast gebruik je voor elke applicatie een ander wachtwoord. Om hier een beetje overzicht in te houden kun je gebruik maken van een wachtwoord-manager zoals 1Password, LastPass etc.

In onze BI-wereld is het aan de orde van de dag dat we gegevens geautomatiseerd op moeten halen uit een bronsysteem. Hiervoor hebben we ook toegang nodig tot de applicatie. Deze toegang kan gegeven worden door middel van een gebruikersnaam en wachtwoord, maar ook door middel van een certificaat of door middel van OAuth2 authenticatie. Ook hierbij willen wij ervoor zorgen dat deze inloggegevens veilig opgeslagen zijn.

Oplossing

De oplossing die wij gebruiken is: Azure Key Vault.
In deze Azure service kun je op een veilige manier keys, secrets en certificaten opslaan. Deze gegevens kun je daarna in diverse andere Azure services opvragen.

Demo

In onderstaand voorbeeld laat ik je zien hoe je een Vault aanmaakt en hoe je gegevens vanuit de Data Factory op kan vragen.

Stap 1: Vault aanmaken

In je bestaande omgeving voeg je een resource toe.
Klik hiervoor op de knop ‘Create a resource’ in het startscherm van de Azure Portal

Azure Key Vault
  • Vul in het zoekveld de term ‘key vault’ in en selecteer de optie ‘Key Vault’:
Wachtwoorden en sleutels veilig opslaan
  • Klik in het volgende scherm op de knop ‘Create’:
Wachtwoorden en sleutels veilig opslaan
  • Vul in het volgende scherm de verplichte velden in en klik op ‘Next’:
Wachtwoorden en sleutels veilig opslaan

In het volgende scherm moet je aangeven welke gebruikers / resource toegang krijgen tot de gegevens in de Key vault. Je hebt de mogelijkheid om per gebruiker / resource verschillende rechten te geven.

Voor nu laat ik de instellingen op standaard staan.

  • Klik op de knop ‘Next: Networking’:
Wachtwoorden en sleutels veilig opslaan

In deze stap bepaal je vanaf welke locatie de Azure Key vault benaderd mag worden.
Is dit wereldwijd selecteer dan ‘Public endpoint’ -> Niet aanbevolen
Maak je gebruik van een VNET in Azure selecteer dan ‘Public endpoint (selected networks)’

  • Klik daarna op de knop ‘Review + create’.
    Je komt op een samenvattingspagina terecht.
  • Controleer alle gegevens en klik op de knop ‘Create’.

Azure Key vault wordt aangemaakt.

  • Nadat de resource toegevoegd is kun je op de knop ‘Go to resource’ klikken. Je komt nu in de Key vault aan.

Waarden opslaan in Azure Key vault
Er zijn verschillende manieren om waarden op te slaan in Azure Key vault:

  • Handmatige invoer
  • Door middel van een API

In dit voorbeeld zal ik de waarden handmatig opslaan.

Documentatie van de Key vault api is te vinden op: Azure Key Vault REST API reference | Microsoft Docs

Stap 2: Azure Data Factory toegang geven tot Azure Key vault

De volgende stap is om je Azure Data Factory toegang te geven tot de gegevens in Azure Key vault. Hiervoor ga je naar de Azure Key vault en selecteer je de optie ‘Access policies’ onder de groep ‘Settings’.

  • Klik op de knop ‘Add Access Policy’.
    Een nieuw scherm opent waarin je aan kunt geven welke rechten toegekend worden.
  • Selecteer in het drop-down menu bij ‘Secret permissions’ de waarde ‘Get’
  • Klik op de link ‘None selected’ achter ‘Select principal’.
  • Zoek in het scherm wat opent op de gebruiker / applicatie die toegang moet krijgen.
    In mijn geval is dit de naam van mijn Azure Data Factory ‘df-blog-growteq’.
  • Selecteer de gebruiker/applicatie welke toegang moet krijgen en klik op de knop ‘Select’
  • Klik daarna op de knop ‘Add’.
    De gebruiker/applicatie heeft toegang tot de gegevens in Azure Key vault.
  • Voeg nu een het secret toe.
    Dit kan een wachtwoord zijn, maar bijvoorbeeld ook een Connectionstring naar een database of externe service.
  • Ga hiervoor naar de tab ‘Secrets’ en klik op de knop ‘Create’.
    In het scherm erna geef je het secret een naam en vul je de waarde in.
  • Klik daarna op ‘Create’.

Koppeling leggen tussen Azure Data Factory en Azure Key Vault

Nadat Azure Data Factory toegang heeft tot de Key vault kun je de gegevens gebruiken in Azure Data Factory.

  • Open je Azure Data Factory en voeg een Linked Service toe.
  • Zoek in de lijst naar ‘Azure Key Vault’.
  • Geef de Linked Service een naam en selecteer daarna de aangemaakte Key Vault.
    Test de connectie en klik daarna op ‘Create’.

Er is nu een verbinding tussen Azure Data Factory en Azure Key Vault.

De waarden uit Azure Key Vault gebruiken in Azure Data Factory

De laatste stap is om gegevens uit Azure Key Vault te gebruiken in Azure Data Factory.

De gegevens uit Azure Key Vault kun je gebruiken in de Linked Services.
Voorbeeld hiervan zijn:

  • Wachtwoord van een SQL Database waarmee verbinding gemaakt wordt;
  • API sleutel van een REST API.
  • Connectiestring naar een Azure Blob Storage

Mocht dit niet genoeg zijn dan kun je de waarden ook via een Web request de waarde opvragen in Azure Data Factory. De output kun je dan gebruiken in je Pipeline. Gebruik hiervoor de activity ‘Web’.
De URL is ‘https://<KeyVaultNAme>.vault.azure.net/secrets/<SecretName>?api-version=7.0’

  • In de tab ‘Advanced’ selecteer je bij ‘Authentication’ de optie ‘Managed Identity’.
  • Bij Resource vul je dan in ‘https://vault.azure.net’.

Naast de koppeling met Azure Data Factory kun je de Key Vault voor veel meer verschillende toepassingen gebruiken. Denk hier onder andere aan Azure Functions.

Samenvatting

In het kort heb ik de mogelijkheden van Azure Key Vault laten zien in combinatie met Azure Data Factory. Ik hoop dat je met deze korte blog een idee hebt van de mogelijkheden van Azure Key Vault.

Geef een reactie

Uw e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Fill out this field
Fill out this field
Geef alstublieft een geldig e-mailadres op.

Categorieën

Categorieën

Vragen?

Onze specialisten geven graag antwoord op uw vragen!