SlideShare a Scribd company logo
Techdays Finland 2018 - Building secure cloud applications with Azure Key Vault
Building secure cloud applications
with Azure Key Vault
Tom Kerkhove
Azure Consultant at Codit, MSFT Azure MVP
Nice to meet you
Tom Kerkhove
• Azure Consultant at Codit
• Microsoft Azure MVP & Advisor
• Belgian Azure User Group (AZUG)
blog.tomkerkhove.be
@TomKerkhove
tomkerkhove
Web
Worker
Appsettings.json
Great! Let’s ship it?!
× No centralized secret management
× No secure storage for sensitive information
× No way to revoke access for a specific user/application
× No way to updating secrets when they have expired/been rolled
× No control over whom has access
Introducing Azure Key Vault
• Provides secure storage for sensitive information, including storing
cryptographic keys in hardware security modules (HSM)
• Automatically failing over to secondary region in read-only mode
• Allows you to :
• Store sensitive information as secret
• Use keys for cryptographical purposes
• Manage certificates
Keys & Secrets
• Secret
• Used to store sequences of bytes
• Consumers can read & write
secret values to it
• Encrypted before stored in vault
• Limited to 10 kB
• Versioned
• Typically used for connection
strings, authentication keys, etc.
• Key
• Stores a RSA 2048, 3072 & 4096 key
• Created by Key Vault owner
• Can be used to decrypt/sign with
• Can’t be read back
• Higher latency
When you frequently use keys you should consider
storing it as a Secret to improve performance f.e. SSL
Different types of keys
• Software Keys
• Stored encrypted in HSM
• Operations performed on VM in
Azure
• Typically used for Dev/Test
• Cheap
• HSM Keys
• Stored encrypted in HSM
• Operations performed on HSM
directly
• Requires Premium Vault
• More secure
Use
Certificates
Certificate
lifecycle
management
Personas
Authenticating to Azure Key Vault
• Authentication is fully handled by Azure Active Directory
• Only works for the default Azure AD directory
• Use basic or certificate authentication
• However, you still need to store authentication information in your
configuration
private async Task<string> AuthenticationCallback(string authority, string resource, string scope)
{
var adApplicationId = configuration.Get<string>("KeyVault.Auth.ApplicationId");
var adApplicationSecret = configuration.Get<string>("KeyVault.Auth.AppSecret");
var authContext = new AuthenticationContext(authority);
var clientCredential = new ClientCredential(adApplicationId, adApplicationSecret);
var token = await authContext.AcquireTokenAsync(resource, clientCredential);
return token.AccessToken;
}
Authenticating to Azure Key Vault
Web
Worker
Appsettings.json
Vault Owner
Receive Token
Authenticate
Thank you!
Demo
Great! Let’s ship it?!
✓ Control over whom has access
✓ Centralized secret management
✓ Secure storage for sensitive information
✓ Capability to revoke access for a specific user/application
✓ Capability to update secrets when they have expired/been rolled
× Keys to the kingdom are still stored as before
Enter Azure AD Managed Service Identity (MSI)
• Delegate authentication to the Azure resource that runs your app
• Azure Resource Manager will create & assign an Azure AD
Application to your resource
• Currently only supports system-defined
AD Application names
• Not all Azure services support this, yet
• No authentication information nor
authentication logic required
• Super easy and more secure
Thank you!
Demo
Web
Worker
Receive Token
Authenticate
MSI
Great! Let’s ship it?!
✓ Control over whom has access
✓ Centralized secret management
✓ Secure storage for sensitive information
✓ Capability to revoke access for a specific user/application
✓ Capability to update secrets when they have expired/been rolled
✓ Authentication delegated to Azure
❕ Not all Azure services already support MSI
Authorization
Authorization
• Managing vault instance (“control-plane”)
• Based on RBAC roles
• Managing vault contents (“data-plane”)
• Defined in “Advanced Access Policies”
• Granular control over assigned permissions
• Permissions defined on a vault-level
• Assigned to AD user, group or application
• Ie. only set secrets without being able to see them
Thank you!
Demo
Authorization
• Be careful about whom can manage your vault instance
• Take into account that people can add themselves to permissions to the
vault contents
• Use least-priviledge principle
• If they don’t need it, don’t give it to them
Web
Worker
MSI
Admin
Console
DB
MSI
Great! Let’s ship it?!
✓ Secrets securely stored
× Everybody can access each others secrets
× Single point of failure
• Think about your security boundaries
• Vault level permissions – Be careful whom can do what
• Use multiple Key Vault instances if they have different security boundaries
• Use resource locks on your vault instance
• Prevent people from accidentally deleting all your secrets
Web
Worker
MSI
Admin
Console
DB
MSI
Customer PortalAdmin Console
Web
Worker
MSI
Admin
Console
DB
MSI
Customer PortalAdmin Console
Web
Worker WorkerWorkerWorker Worker
Worker WorkerWorkerWorker Worker
Web WebWebWeb
Web Web WebWebWeb
Great! Let’s ship it?!
✓ Secrets securely stored
✓ Seperation of domains
× Not scalable
• Cache secrets
• Avoids hitting Azure Key Vault when scaling out
• Avoids unrequired network calls
• Use in-memory cache only and make it short-lived
• Your application should be aware of this
Web
Worker WorkerWorkerWorker Worker
Worker WorkerWorkerWorker Worker
Web WebWebWeb
Web Web WebWebWeb
Cache Cache CacheCacheCache
Cache Cache CacheCacheCache
Web
Worker
Appsettings.json
“Using API Key ‘XYZ’”
Cache
Great! Let’s ship it?!
× You cannot trust your vault consumers
× People leave the company, but what do they take with them?
× Leaked credentials are not being revoked
• Automatically generate new authentication keys
• Limits risk of leaked credentials usage
• (Azure) Automation is your best friend
• Your application should be aware of this
❕ You cannot do this with all kinds of secrets
❕ Be careful – Other applications might be using the same credentials
WebCache
Key: foo
Secret: ServiceBus
Name: ServiceBus
Secret: foo
Step 1: Generate new secondary key
Step 2: Update secret to use secondary key
Step 3: Generate new primary key
Step 4: Update secret to use primary key
Generate keys
Name: ServiceBus
Secret: bar
WebCache
Key: foo
Secret: ServiceBus
Name: ServiceBus
Secret: foo
Step 1: Generate new secondary key
Step 2: Update secret to use secondary key
Step 3: Generate new primary key
Step 4: Update secret to use primary key
Generate keys
Get uncached secret
Key: bar
Thank you!
Demo
Key Vault enables new scenarios
Key Vault enables new scenarios
• Sync on-premises HSMs to Azure Key Vault
• Enables Bring-Your-Own-Key
• Azure SQL Database / SQL Server
• Azure Data Lake Store
• Azure Storage
• Managing certificates
• Add your existing ones
• Automatically renewal
• Automatically rotatation Azure Storage keys
Encryption with SQL - BYOK
Encryption with SQL - BYOK
Auditing & Operations
Auditing & Operations
• Full audit trail containing every action
• “Azure Key Vault Analytics” solution in Log Analytics
(http://bit.ly/key-vault-log-analytics)
Miscellanious
Miscellanious
• Be transparent
• Secrets & keys are versioned, make sure that consumers are aware of these
• This is important for cryptographical scenarios where decryption needs to
use the correct version of the key
• Key Vault is not a configuration store
• You need to build your own configuration store
• Dependencies fail
• Make sure you handle downtime of your dependency, if possible at all
• Key Vault integration in VSTS
Managing secrets in VSTS
Variable Groups*
Build / Release
Environment
Built-in Task*
Inline**
* Integration with Azure Key Vault
Using Key Vault in variable groups
Getting secrets inside your build/release
Wrap-Up
Takeaways
• Security should not be an after thought
• It is about limiting the risk of exposure, not removing it
• Go Key Vault all the way, including build & release
• Do not use one central Key Vault, use one per security domain
• Delegate authentication to Azure with Azure AD MSI
• Automatically roll your secrets and keep your vault up to date
@tomkerkhove
blog.tomkerkhove.be
github.com/tomkerkhove
slideshare.net/TomKerkhove

More Related Content

PPTX
Azure Low Lands 2019 - Building secure cloud applications with Azure Key Vault
PPTX
ITProceed 2015 - Securing Sensitive Data with Azure Key Vault
PPTX
Securing sensitive data with Azure Key Vault
PPTX
Using Vault for your Nodejs Secrets
PPTX
Azure key vault
PPTX
Azure key vault - Brisbane User Group
PPTX
Managing your secrets in a cloud environment
PPTX
Azure Key Vault - Getting Started
Azure Low Lands 2019 - Building secure cloud applications with Azure Key Vault
ITProceed 2015 - Securing Sensitive Data with Azure Key Vault
Securing sensitive data with Azure Key Vault
Using Vault for your Nodejs Secrets
Azure key vault
Azure key vault - Brisbane User Group
Managing your secrets in a cloud environment
Azure Key Vault - Getting Started

What's hot (20)

PPTX
Global Azure Bootcamp 2017 - Azure Key Vault
PDF
Securing Cassandra The Right Way
PPTX
Secret Management Architectures
PDF
Credential store using HashiCorp Vault
PPTX
Secret Management with Hashicorp Vault and Consul on Kubernetes
PPTX
Hashicorp Vault ppt
PDF
Eliminating Secret Sprawl in the Cloud with HashiCorp Vault - 07.11.2018
PDF
Secret Management with Hashicorp’s Vault
PDF
Hardening cassandra q2_2016
PDF
Cassandra and security
PDF
Paris FOD meetup - kafka security 101
PPTX
Keeping a Secret with HashiCorp Vault
PDF
201504 securing cassandraanddse
PDF
Overview of secret management solutions and architecture
PPTX
Nodejsvault austin2019
PDF
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
PDF
Managing secrets at scale
PDF
Issuing temporary credentials for my sql using hashicorp vault
PDF
Hardening cassandra for compliance or paranoia
Global Azure Bootcamp 2017 - Azure Key Vault
Securing Cassandra The Right Way
Secret Management Architectures
Credential store using HashiCorp Vault
Secret Management with Hashicorp Vault and Consul on Kubernetes
Hashicorp Vault ppt
Eliminating Secret Sprawl in the Cloud with HashiCorp Vault - 07.11.2018
Secret Management with Hashicorp’s Vault
Hardening cassandra q2_2016
Cassandra and security
Paris FOD meetup - kafka security 101
Keeping a Secret with HashiCorp Vault
201504 securing cassandraanddse
Overview of secret management solutions and architecture
Nodejsvault austin2019
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Managing secrets at scale
Issuing temporary credentials for my sql using hashicorp vault
Hardening cassandra for compliance or paranoia
Ad

Similar to Techdays Finland 2018 - Building secure cloud applications with Azure Key Vault (20)

PPTX
Intelligent Cloud Conference 2018 - Building secure cloud applications with A...
PPTX
Securing Sensitive Data with Azure Key Vault (Tom Kerkhove @ ITProceed)
PDF
Azure Meetup: Keep your secrets and configurations safe in azure!
PDF
Secretsth-Azure-KeyVault-and-Azure-App.pdf
PDF
Secretsth-Azure-KeyVault-and-Azure-App.pdf
PPTX
Zero credential development with managed identities
PPTX
Zero Credential Development with Managed Identities for Azure resources
PPTX
Zero Credential Development with Managed Identities
PPTX
Configuration in azure done right
PPTX
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
PPTX
AzureSecurity - Day3 - Storage And Key Vault
PPTX
Hashicorp Chicago HUG - Secure and Automated Workflows in Azure with Vault an...
PDF
Dynamic Azure Credentials for Applications and CI/CD Pipelines
PPTX
Data Encryption - Azure Storage Service
PPTX
Introduction to basic governance in Azure - #GABDK
PPTX
Secure deployments keeping your application secrets private - condensed
PPTX
Zero credential development with managed identities
PDF
Service for Storing Secrets on Microsoft Azure.pdf
PPTX
Azure Key Vault
PPTX
Secure deployments keeping your application secrets private -duug fest
Intelligent Cloud Conference 2018 - Building secure cloud applications with A...
Securing Sensitive Data with Azure Key Vault (Tom Kerkhove @ ITProceed)
Azure Meetup: Keep your secrets and configurations safe in azure!
Secretsth-Azure-KeyVault-and-Azure-App.pdf
Secretsth-Azure-KeyVault-and-Azure-App.pdf
Zero credential development with managed identities
Zero Credential Development with Managed Identities for Azure resources
Zero Credential Development with Managed Identities
Configuration in azure done right
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
AzureSecurity - Day3 - Storage And Key Vault
Hashicorp Chicago HUG - Secure and Automated Workflows in Azure with Vault an...
Dynamic Azure Credentials for Applications and CI/CD Pipelines
Data Encryption - Azure Storage Service
Introduction to basic governance in Azure - #GABDK
Secure deployments keeping your application secrets private - condensed
Zero credential development with managed identities
Service for Storing Secrets on Microsoft Azure.pdf
Azure Key Vault
Secure deployments keeping your application secrets private -duug fest
Ad

More from Tom Kerkhove (20)

PPTX
Techorama 2022 - Adventures of building Promitor, an open-source product
PPTX
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
PPTX
Introduction to Promitor
PPTX
Azure Lowlands 2020 - API management for microservices in a hybrid and multi-...
PPTX
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
PPTX
Global Azure Virtual - Application Autoscaling with KEDA
PPTX
Building Bruges 2020 - Adventures of building a multi-tenant PaaS on Microsof...
PPTX
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
PPTX
IglooConf 2020 - API management for microservices in a hybrid and multi-cloud...
PPTX
IglooConf 2020 - Adventures of building a multi-tenant PaaS on Microsoft Azure
PPTX
Microsoft Ignite 2019 - API management for microservices in a hybrid and mult...
PPTX
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
PDF
Techdays Finland 2019 - Adventures of building a (multi-tenant) PaaS on Micro...
PPTX
Next Generation Data Integration with Azure Data Factory
PPTX
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes pods bas...
PPTX
Intelligent Cloud Conference 2018 - Next Generation of Data Integration with ...
PPTX
NDC Minnesota - Analyzing StackExchange data with Azure Data Lake
PPTX
NDC Sydney - Analyzing StackExchange with Azure Data Lake
PPTX
TechDays NL 2016 - Building your scalable secure IoT Solution on Azure
PPTX
Integration Monday - Analysing StackExchange data with Azure Data Lake
Techorama 2022 - Adventures of building Promitor, an open-source product
Microsoft Partners - Application Autoscaling Made Easy With Kubernetes Event-...
Introduction to Promitor
Azure Lowlands 2020 - API management for microservices in a hybrid and multi-...
NDC London 2021 - Application Autoscaling Made Easy With Kubernetes Event-Dri...
Global Azure Virtual - Application Autoscaling with KEDA
Building Bruges 2020 - Adventures of building a multi-tenant PaaS on Microsof...
AZUG Lightning Talk - Application autoscaling on Kubernetes with Kubernetes E...
IglooConf 2020 - API management for microservices in a hybrid and multi-cloud...
IglooConf 2020 - Adventures of building a multi-tenant PaaS on Microsoft Azure
Microsoft Ignite 2019 - API management for microservices in a hybrid and mult...
Integrate UK 2019 - Adventures of building a (multi-tenant) PaaS on Microsoft...
Techdays Finland 2019 - Adventures of building a (multi-tenant) PaaS on Micro...
Next Generation Data Integration with Azure Data Factory
Intelligent Cloud Conference 2018 - Automatically scaling Kubernetes pods bas...
Intelligent Cloud Conference 2018 - Next Generation of Data Integration with ...
NDC Minnesota - Analyzing StackExchange data with Azure Data Lake
NDC Sydney - Analyzing StackExchange with Azure Data Lake
TechDays NL 2016 - Building your scalable secure IoT Solution on Azure
Integration Monday - Analysing StackExchange data with Azure Data Lake

Recently uploaded (20)

PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Digital Strategies for Manufacturing Companies
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPT
JAVA ppt tutorial basics to learn java programming
PPTX
history of c programming in notes for students .pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administraation Chapter 3
PPTX
ai tools demonstartion for schools and inter college
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
top salesforce developer skills in 2025.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
Introduction to Artificial Intelligence
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
Odoo POS Development Services by CandidRoot Solutions
Digital Strategies for Manufacturing Companies
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
JAVA ppt tutorial basics to learn java programming
history of c programming in notes for students .pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Which alternative to Crystal Reports is best for small or large businesses.pdf
Design an Analysis of Algorithms II-SECS-1021-03
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administraation Chapter 3
ai tools demonstartion for schools and inter college
How to Migrate SBCGlobal Email to Yahoo Easily
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
top salesforce developer skills in 2025.pdf
Transform Your Business with a Software ERP System
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
ISO 45001 Occupational Health and Safety Management System
Introduction to Artificial Intelligence
Materi-Enum-and-Record-Data-Type (1).pptx

Techdays Finland 2018 - Building secure cloud applications with Azure Key Vault

  • 2. Building secure cloud applications with Azure Key Vault Tom Kerkhove Azure Consultant at Codit, MSFT Azure MVP
  • 3. Nice to meet you Tom Kerkhove • Azure Consultant at Codit • Microsoft Azure MVP & Advisor • Belgian Azure User Group (AZUG) blog.tomkerkhove.be @TomKerkhove tomkerkhove
  • 5. Great! Let’s ship it?! × No centralized secret management × No secure storage for sensitive information × No way to revoke access for a specific user/application × No way to updating secrets when they have expired/been rolled × No control over whom has access
  • 6. Introducing Azure Key Vault • Provides secure storage for sensitive information, including storing cryptographic keys in hardware security modules (HSM) • Automatically failing over to secondary region in read-only mode • Allows you to : • Store sensitive information as secret • Use keys for cryptographical purposes • Manage certificates
  • 7. Keys & Secrets • Secret • Used to store sequences of bytes • Consumers can read & write secret values to it • Encrypted before stored in vault • Limited to 10 kB • Versioned • Typically used for connection strings, authentication keys, etc. • Key • Stores a RSA 2048, 3072 & 4096 key • Created by Key Vault owner • Can be used to decrypt/sign with • Can’t be read back • Higher latency When you frequently use keys you should consider storing it as a Secret to improve performance f.e. SSL
  • 8. Different types of keys • Software Keys • Stored encrypted in HSM • Operations performed on VM in Azure • Typically used for Dev/Test • Cheap • HSM Keys • Stored encrypted in HSM • Operations performed on HSM directly • Requires Premium Vault • More secure
  • 12. Authenticating to Azure Key Vault • Authentication is fully handled by Azure Active Directory • Only works for the default Azure AD directory • Use basic or certificate authentication • However, you still need to store authentication information in your configuration private async Task<string> AuthenticationCallback(string authority, string resource, string scope) { var adApplicationId = configuration.Get<string>("KeyVault.Auth.ApplicationId"); var adApplicationSecret = configuration.Get<string>("KeyVault.Auth.AppSecret"); var authContext = new AuthenticationContext(authority); var clientCredential = new ClientCredential(adApplicationId, adApplicationSecret); var token = await authContext.AcquireTokenAsync(resource, clientCredential); return token.AccessToken; }
  • 16. Great! Let’s ship it?! ✓ Control over whom has access ✓ Centralized secret management ✓ Secure storage for sensitive information ✓ Capability to revoke access for a specific user/application ✓ Capability to update secrets when they have expired/been rolled × Keys to the kingdom are still stored as before
  • 17. Enter Azure AD Managed Service Identity (MSI) • Delegate authentication to the Azure resource that runs your app • Azure Resource Manager will create & assign an Azure AD Application to your resource • Currently only supports system-defined AD Application names • Not all Azure services support this, yet • No authentication information nor authentication logic required • Super easy and more secure
  • 20. Great! Let’s ship it?! ✓ Control over whom has access ✓ Centralized secret management ✓ Secure storage for sensitive information ✓ Capability to revoke access for a specific user/application ✓ Capability to update secrets when they have expired/been rolled ✓ Authentication delegated to Azure ❕ Not all Azure services already support MSI
  • 22. Authorization • Managing vault instance (“control-plane”) • Based on RBAC roles • Managing vault contents (“data-plane”) • Defined in “Advanced Access Policies” • Granular control over assigned permissions • Permissions defined on a vault-level • Assigned to AD user, group or application • Ie. only set secrets without being able to see them
  • 24. Authorization • Be careful about whom can manage your vault instance • Take into account that people can add themselves to permissions to the vault contents • Use least-priviledge principle • If they don’t need it, don’t give it to them
  • 26. Great! Let’s ship it?! ✓ Secrets securely stored × Everybody can access each others secrets × Single point of failure • Think about your security boundaries • Vault level permissions – Be careful whom can do what • Use multiple Key Vault instances if they have different security boundaries • Use resource locks on your vault instance • Prevent people from accidentally deleting all your secrets
  • 29. Web Worker WorkerWorkerWorker Worker Worker WorkerWorkerWorker Worker Web WebWebWeb Web Web WebWebWeb
  • 30. Great! Let’s ship it?! ✓ Secrets securely stored ✓ Seperation of domains × Not scalable • Cache secrets • Avoids hitting Azure Key Vault when scaling out • Avoids unrequired network calls • Use in-memory cache only and make it short-lived • Your application should be aware of this
  • 31. Web Worker WorkerWorkerWorker Worker Worker WorkerWorkerWorker Worker Web WebWebWeb Web Web WebWebWeb Cache Cache CacheCacheCache Cache Cache CacheCacheCache
  • 33. Great! Let’s ship it?! × You cannot trust your vault consumers × People leave the company, but what do they take with them? × Leaked credentials are not being revoked • Automatically generate new authentication keys • Limits risk of leaked credentials usage • (Azure) Automation is your best friend • Your application should be aware of this ❕ You cannot do this with all kinds of secrets ❕ Be careful – Other applications might be using the same credentials
  • 34. WebCache Key: foo Secret: ServiceBus Name: ServiceBus Secret: foo Step 1: Generate new secondary key Step 2: Update secret to use secondary key Step 3: Generate new primary key Step 4: Update secret to use primary key Generate keys
  • 35. Name: ServiceBus Secret: bar WebCache Key: foo Secret: ServiceBus Name: ServiceBus Secret: foo Step 1: Generate new secondary key Step 2: Update secret to use secondary key Step 3: Generate new primary key Step 4: Update secret to use primary key Generate keys Get uncached secret Key: bar
  • 37. Key Vault enables new scenarios
  • 38. Key Vault enables new scenarios • Sync on-premises HSMs to Azure Key Vault • Enables Bring-Your-Own-Key • Azure SQL Database / SQL Server • Azure Data Lake Store • Azure Storage • Managing certificates • Add your existing ones • Automatically renewal • Automatically rotatation Azure Storage keys
  • 42. Auditing & Operations • Full audit trail containing every action • “Azure Key Vault Analytics” solution in Log Analytics (http://bit.ly/key-vault-log-analytics)
  • 44. Miscellanious • Be transparent • Secrets & keys are versioned, make sure that consumers are aware of these • This is important for cryptographical scenarios where decryption needs to use the correct version of the key • Key Vault is not a configuration store • You need to build your own configuration store • Dependencies fail • Make sure you handle downtime of your dependency, if possible at all • Key Vault integration in VSTS
  • 45. Managing secrets in VSTS Variable Groups* Build / Release Environment Built-in Task* Inline** * Integration with Azure Key Vault
  • 46. Using Key Vault in variable groups
  • 47. Getting secrets inside your build/release
  • 49. Takeaways • Security should not be an after thought • It is about limiting the risk of exposure, not removing it • Go Key Vault all the way, including build & release • Do not use one central Key Vault, use one per security domain • Delegate authentication to Azure with Azure AD MSI • Automatically roll your secrets and keep your vault up to date