Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BASTA2020: Geheimniskrämerei in der Azure-Cloud...

Manuel Meyer
September 22, 2020

BASTA2020: Geheimniskrämerei in der Azure-Cloud mit dem Azure Key Vault

Das Speichern von Geheimnissen, die von einer Anwendung benötigt werden, war schon immer eine Herausforderung. Eigentlich ist es ja ganz simpel: Alles was geheim ist, wird verschlüsselt. Die Verfahren sind bekannt und erprobt. Doof ist nur, dass der Schlüssel ja auch ein Geheimnis ist. Was machen wir dann mit dem Schlüssel? Mit einem Passwort den Schlüssel verschlüsseln? Moment, wir drehen uns gerade im Kreis. Der Azure Key Vault ist das Angebot der Azure-Cloud um dieses Problem zu lösen. In dieser Session schauen wir uns an, was der Key Vault ist und wie wir diesen in unserer Architektur verwenden.

Manuel Meyer

September 22, 2020
Tweet

More Decks by Manuel Meyer

Other Decks in Programming

Transcript

  1. Geheimniskrämerei in der Azure- Cloud mit dem Azure Key Vault

    Manuel Meyer Azure Solution Architect, Trivadis AG www.manuelmeyer.net @manumeyer1
  2. Mein Ansatz (früher) „Gleiches Passwort überall verwenden = NICHT GUT“

    1 Low Security Password: heybuddy24 1 High Security Passwort: htowi_fle98dk$$+djk(43.
  3. Azure Key Vault Übersicht 1. Speichern und schützen von “Geheimnissen”

    Keys, Secrets, Certificates 2. Geheimnisse anderen Apps und Services “zur Verfügung stellen”
  4. Basics ▪ Key ▪ Kryptographischer RSA Schlüssel ▪ Kann den

    Key Vault NIE verlassen! ▪ Apps müssen Ver-/Entschlüsselung und Signierung an den KV delegieren ▪ Secret ▪ Eine Sequenz von Bytes (unter 25kb) ▪ Authorisierte User schreiben secrets in den KV ▪ Authorisierte Apps lessen secrets vom KV ▪ Certificate.
  5. Basics ▪ Software Protected Keys ▪ FIPS 140-2 Level 1

    ▪ HSM Protected Keys ▪ FIPS 140-2 Level 2 10k Operations = 0.03 EUR Cert Renewal: 2.53 EUR HSM Keys: 0.84 EUR/Mt. pro Key HSM Advanced: 4.22/Mt. pro Key.
  6. Azure Disk Encryption Encryption at Rest: ▪ SSE with PMK

    (default): Storage Service Encryption with Platform Managed Key ▪ SSE with CMK: Storage Service encryption with Customer Managed Key ▪ ADE: Azure Disk Encryption (OS Level) ▪ Windows: Bitlocker ▪ Linux: DM-Crypt
  7. IaaS Disk Encryption 1. VM Stoppen (Deallocated) 2. Im Key

    Vault Disk Encryption aktivieren 3. Schlüssel erstellen 4. Disk Encryption Set erstellen und im KV berechtigen 5. Disk dem Disk Encryption Set zuweisen.
  8. Azure Storage Encryption Encryption at Rest: ▪ PMK: Platform Managed

    Key (default) ▪ CMK: Customer Managed Key (a.k.a. BYOK) ▪ Client-Side Encryption.
  9. Demo: Client Side Storage Encryption 1. Storage Account erstellen (erledigt)

    2. Applikation schreiben für Blob Upload: (erledigt: ClientSideEncryptionDemo) 3. Applikation im AAD registrieren (erledigt) Erstellt einen Service Principal (objectId, secret) 4. Applikation für die Verwendung des Service Principals konfigurieren (erledigt) 5. Schlüssel im KV erstellen “ClientSideEncryptionKey” 6. Eine KV Access Policy erstellen, damit die App den Schlüssen “ClientSideEncryptionKey” verwenden kann. 7. Applikation ausführen.
  10. Ziel: Kein Secret in Code/Config ▪ 1. Service Principal verwenden

    Wir brauchen ObjectId und Secret vom Service Principal im code ▪ 2. Verwenden einer Azure Managed Service Identity (MSI) Der App Service unterstützt die MSI.
  11. Demo: Kein Secret im Code/Config 1. Secret im Key Vault

    erstellen 2. AppService: Managed Identity Aktivieren 3. Key Vault: KV Access Policy für MSI erstellen 4. Code zur Abfrage des Secrets schreiben und deployen.
  12. Zusammenfassung ▪ Der Key Vault speichert: ▪ Keys: Können nie

    mehr raus aus dem KV ▪ Secrets: Beliebige Zeichenketten ▪ Certificates: Zertifikate ▪ Verwaltung von Geheimnissen via “Management Plane” (Bspw. Azure Portal, abgesichert durch Azure RBAC) ▪ Verwendung der Geheimnisse über die Data Plane (REST API, abgesichert durch Key Vault Access Policies) ▪ Scenarios ▪ Key Vault für IaaS Disk Encryption ▪ Key Vault für Client Side Storage Encryption ▪ Key Vault um Geheimnisse aus dem Code zu entfernen. Mit einer MSI.
  13. Links ▪ Docs: https://docs.microsoft.com/en-us/azure/key-vault/ ▪ Key Vault Developer Guide: https://docs.microsoft.com/en-us/azure/key-

    vault/general/developers-guide ▪ Key Vault Diagnostics: https://zimmergren.net/azure-key-vault-diagnostics- who-accessing-your-vault/