Michaël Hompus Principal developer, Winvision @eNeRGy164 Gebruik Azure Key Vault in je applicaties en zorg dat niemand achter je geheimen komt Michaël Hompus Principal developer, Winvision @eNeRGy164
Agenda Wat is Azure Key Vault? De Key Vault Client in je eigen applicatie Azure Key Vault configuration provider Azure Disk Encryption Azure Key Vault Storage Account Keys
Wat is Azure Key Vault?
Wat is Azure Key Vault? “Gebruik Azure Key Vault om sleutels en kleine geheimen zoals wachtwoorden te versleutelen met sleutels die zijn opgeslagen in Hardware Security Modules (HSM’s)” https://azure.microsoft.com/nl-nl/services/key-vault/
Wat is Azure Key Vault? Dienst voor opslag van geheimen Bewerkingen vinden plaats in een HSM “a Hardware Security Module is a physical computing device that safeguards and manages digital keys for strong authentication and provides cryptoprocessing” Geheimen zijn benaderbaar via RESTful URLs GET https://{vault-name}.vault.azure.net/secrets/{secret-name} GET https://{vault-name}.vault.azure.net/secrets/{secret-name}/{secret-version} POST https://{vault-name}.vault.azure.net/certificates/{certificate-name}/create Verschillende API’s REST, PowerShell, Azure CLI 2, .NET, Java, Node.js
Configuratie in de applicatie Developer Database Web App
Key Vault als secret store Developer Database Web App Key Vault https://vault/secrets/ConnectionString
Een Key Vault voor elke omgeving Developer !!! ??? Admin Database Web App Key Vault DEV https://vault-dev/secrets/ConnectionString https://vault-prod/secrets/ConnectionString Web App Key Vault Database PROD
Een Key Vault voor elke omgeving PFEW! Developer OOPS! Admin Database Web App Key Vault DEV https://vault-prod/secrets/ConnectionString https://vault-prod/secrets/ConnectionString Web App Key Vault Database PROD
Wat is Azure Key Vault niet? De heilige graal Security blijft een keten van maatregelen Key Vault kan in veel scenario’s een belangrijke bijdrage leveren
demo Key Vault in de Portal
Aanmaken Key Vault
Aanmaken Key Vault Pricing tier
Aanmaken Key Vault Access policies
Aanmaken Key Vault Advanced access policy
Aanmaken geheimen
Aanmaken geheimen Keys
Aanmaken geheimen Secrets
Aanmaken geheimen Certificates
De Key Vault Client in je eigen applicatie
De Key Vault Client in je eigen applicatie NuGet package Microsoft.Azure.KeyVault
demo Key Vault Client in Azure Functions
Key Vault Client in Azure Functions Secret Maak een Azure AD applicatie aan Voeg key toe aan AD applicatie Geef AD applicatie rechten op Key Vault Voeg Key Vault Client toe aan je applicatie Stel URL, App ID & Secret in Lees geheimen uit
Key Vault Client in Azure Functions Certificaat Maak een Azure AD applicatie aan Voeg certificaat toe aan AD applicatie Geef AD applicatie rechten op Key Vault Voeg Key Vault Client toe aan je applicatie Stel URL, App ID & Thumbprint in Lees geheimen uit
Key Vault Client in Azure Functions Managed Identity Maak een Managed Identity aan Geef Managed Identity rechten op Key Vault Voeg Key Vault Client toe aan je applicatie Voeg Azure Service Token Provider toe aan je applicatie Stel URL in Lees geheimen uit
Azure Key Vault configuration provider
Azure Key Vault configuration provider Gebaseerd op de Configuration API van ASP.NET Core NuGet package Microsoft.Extensions.Configuration.AzureKeyVault Configuratie instellingen in Key Vault Simple secrets are created as name-value pairs Hierarchical values (configuration sections) use -- (two dashes) as a separator in the sample (and swapped for a colon when the secrets are loaded into the app's configuration)
demo Key Vault configuration provider
Azure Key Vault configuration provider Voeg de NuGet package aan de applicatie toe Vul de Key Vault met instellingen Stel URL, App ID & Thumbprint in Lees geheimen uit
Azure Disk Encryption
Azure Disk Encryption Encryptie van IaaS VM OS en/of data disks Alleen voor ondersteunde OS’en Windows Server: 2008 R2, 2012, 2012 R2, and 2016 Windows client: 8 and 10 Linux*: Ubuntu, RHEL, CentOS, openSUSE, and SLES * Only certain Azure Gallery based versions
Azure Disk Encryption Toegang tot Key Vault read sp_id sp_password \ <<< $(az ad sp create-for-rbac --query [appId,password] -o tsv) az keyvault set-policy \ --name $keyvault_name \ --spn $sp_id \ --key-permissions wrapKey \ --secret-permissions set
Azure Disk Encryption Encrytie sleutel maken az keyvault key create \ --vault-name $keyvault_name --name $encryptionkey_name \ --protection software
Azure Disk Encryption Encryptie inschakkelen az vm encryption enable \ --resource-group $resourcegroup_name \ --name $vm_name \ --aad-client-id $sp_id \ --aad-client-secret $sp_password \ --disk-encryption-keyvault $keyvault_name \ --key-encryption-key $encryptionkey_name \ --volume-type all
Azure Disk Encryption Disk Encryption Key
Azure Disk Encryption Encrypting…
Azure Disk Encryption EncryptED
demo Azure Disk Encryption
Azure Disk Encryption
Azure Key Vault Storage Account Keys
Azure Key Vault Storage Account Keys Key Vault beheert de keys van een Storage Account Intern, kan Key Vault bij de keys van een Storage Account De keys worden niet teruggegeven aan een aanvrager Key Vault genereert (roteert) de keys periodiek Werkt ook voor klassieke Storage Accounts Gebruik SAS definities voor toegang tot een Storage Account De SAS waarde, gemaakt op basis van een SAS definitie, wordt teruggegeven als een secret via de REST URL
demo Key Vault Storage Account Keys
Key Vault Storage Account Keys Voeg Key Vault als Key Operator toe aan het Storage Account Maak een Managed Storage Account aan Maak SAS template definities Lees de SAS token uit alsof het een secret is Verbindt met het Storage Account
Vragen?
Resources Alle code van deze sessie Azure Key Vault https://github.com/eNeRGy164/WAZUG43 Azure Key Vault https://azure.microsoft.com/en-us/services/key-vault/ Azure Functions: Access KeyVault Secrets with a Cert-secured Service Principal https://blog.siliconvalve.com/2016/11/15/azure-functions-access-keyvault-secrets-with-a-cert-secured-service- principal/
Resources How to Store Secrets in Azure Key Vault Using .NET Core https://www.humankode.com/asp-net-core/how-to-store-secrets-in-azure-key-vault-using-net-core Azure Key Vault configuration provider https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?tabs=aspnetcore2x Azure Disk Encryption for Windows and Linux IaaS VMs https://docs.microsoft.com/en-us/azure/security/azure-security-disk-encryption https://docs.microsoft.com/en-us/azure/virtual-machines/linux/encrypt-disks Azure Key Vault Storage Account Keys https://docs.microsoft.com/en-us/azure/key-vault/key-vault-ovw-storage-keys