Skip to content
Tech42 Software Solutions GmbH

Secrets und Keys sicher ablegen mit Azure Key Vault

API-Keys, Passwörter und Zertifikate gehören nicht in Konfigurationsdateien oder Source Code. Wie Azure Key Vault sensible Daten sicher zentralisiert — und wie wir es in .NET-Anwendungen sauber einbinden.

Jan Raddatz · 7 Min. Lesezeit · Azure / Cloud Security / .NET
Azure Key Vault — zentrale, sichere Ablage von API-Keys, Passwörtern und Zertifikaten.

In einer komplexer werdenden IT-Landschaft, in der Anwendungen ständig skalieren und Datenmengen explodieren, ist die Sicherheit von Secrets — API-Keys, Passwörter, Zertifikate — zentral. Ein zusätzlicher Faktor: die wachsende Zusammenarbeit mit externen Entwicklern, DevOps-Engineers und Testern. Stellen Sie sich vor, externe Dienstleister erhalten Zugang zu Ihrem Source Code, und der ist voll von sicherheitsrelevanten Secrets und Keys.

Im Grunde macht das die Zusammenarbeit mit Externen unmöglich — Sie würden kritische Informationen preisgeben.

Azure Key Vault bietet hier eine robuste Lösung. In diesem Artikel zeigen wir, wie Sie Secrets und Keys sicher ablegen — und welche Best Practices wir in unseren Projekten beachten.

Was ist Azure Key Vault?

Azure Key Vault ist ein cloud-basierter Dienst von Microsoft, der speziell für das Verwalten von Keys, Secrets und Zertifikaten entwickelt wurde. Damit können Sie:

  • Secrets speichern wie API-Keys, Datenbank-Zugänge und Passwörter
  • Keys verwalten für Verschlüsselung und Entschlüsselung
  • Zertifikate absichern und automatisch erneuern lassen

Azure Key Vault nutzt die Security-Standards und Protokolle von Azure, um sicherzustellen, dass Ihre sensiblen Daten vor unautorisiertem Zugriff geschützt sind.

Warum Azure Key Vault?

Das Management von Secrets und Keys ist eine Herausforderung, die viele Organisationen unterschätzen. Traditionell werden diese in Konfigurationsdateien, Umgebungsvariablen oder sogar im Source Code abgelegt — ein erhebliches Sicherheitsrisiko. Mit Azure Key Vault erreichen Sie:

  • Zentralisierung. Alle Secrets an einem zentralen, sicheren Ort.
  • Zugriffskontrolle. Über die Integration mit Entra ID (ehemals Azure AD) lassen sich Zugriffe präzise steuern und überwachen.
  • Audit und Monitoring. Jeder Zugriff wird protokolliert — Sie sehen jederzeit, wer wann auf welche Daten zugegriffen hat.

Azure Key Vault einrichten

Die Einrichtung erfolgt einfach über das Azure Portal, die Azure CLI oder PowerShell. Ein kurzes Beispiel mit der CLI:

# Bei Azure anmelden
az login

# Resource Group anlegen
az group create --name myResourceGroup --location westeurope

# Key Vault erzeugen
az keyvault create --name myKeyVault --resource-group myResourceGroup --location westeurope

Sobald der Vault existiert, können Secrets hinzugefügt werden:

# Secret hinzufügen
az keyvault secret set --vault-name myKeyVault --name mySecret --value "SuperSicheresPasswort123"

Zugriff auf Secrets in .NET

Um Secrets aus dem Key Vault zu lesen, kann eine Anwendung die Azure Key Vault API nutzen. Ein Beispiel in C#:

var kvUri = "https://myKeyVault.vault.azure.net";
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

KeyVaultSecret secret = client.GetSecret("mySecret");
Console.WriteLine($"Secret: {secret.Value}");

Integration mit IConfiguration und dem Options Pattern

Secrets manuell auszulesen ist umständlich und für produktive Anwendungen mit Dutzenden oder Hunderten von Werten nicht praktikabel. Eleganter ist die Kombination mit IConfiguration und dem Options Pattern.

In modernen .NET-Anwendungen lässt sich Azure Key Vault nahtlos in IConfiguration einbinden. Werte aus dem Vault ersetzen dabei automatisch die korrespondierenden Konfigurationseinträge. Erforderlich ist das Paket Microsoft.Extensions.Configuration.AzureKeyVault.

var builder = WebApplication.CreateBuilder(args);

var keyVaultEndpoint = new Uri("https://myKeyVault.vault.azure.net");
builder.Configuration.AddAzureKeyVault(keyVaultEndpoint, new DefaultAzureCredential());

var app = builder.Build();

Anschließend lassen sich die Werte mit dem Options Pattern in stark typisierte Konfigurationsobjekte überführen:

public class DummyOptions
{
    public const string SectionName = "Dummy";
    public string MySecret { get; set; } = "";
}

services.Configure<DummyOptions>(Configuration.GetSection(DummyOptions.SectionName));

public class MyService
{
    private readonly DummyOptions _options;

    public MyService(IOptions<DummyOptions> options)
    {
        _options = options.Value;
    }

    public void DoSomething()
    {
        Console.WriteLine(_options.MySecret);
    }
}

Diese Integration stellt sicher, dass Ihre Anwendung stets aktuelle und sichere Werte direkt aus dem Vault bezieht — sauber getrennt von Code und Build-Pipeline.

Best Practices für den produktiven Einsatz

  • Minimaler Zugriff. Vergeben Sie nur den nötigsten Zugriff. Setzen Sie konsequent auf rollenbasierte Zugriffskontrollen (RBAC).
  • Regelmäßige Rotation. Rotieren Sie Secrets und Keys turnusmäßig — am besten automatisiert.
  • Automatisierung. Nutzen Sie Azure Automation und Infrastructure-as-Code, um die Verwaltung von Secrets zu standardisieren.
  • Monitoring und Alerts. Aktivieren Sie Überwachung und Benachrichtigungen, um ungewöhnliche Zugriffe früh zu erkennen.

Fazit

Azure Key Vault bietet eine sichere, skalierbare Lösung für das Management von Secrets und Keys in der Cloud. Zentrale Verwaltung, strikte Zugriffskontrolle und umfassende Audit-Fähigkeiten machen den Dienst zu einem unverzichtbaren Werkzeug für moderne DevOps-Teams, die Sicherheit und Compliance ernst nehmen.

Wenn Sie Unterstützung bei der Einführung von Azure Key Vault oder einer breiteren Cloud-Security-Strategie brauchen, sprechen Sie uns an. Wir unterstützen Sie mit fundierter Erfahrung in Cloud-Entwicklung und Software-Architektur.

Lust auf ein Gespräch?

Wenn Sie hier weitergelesen haben, lohnt sich vielleicht auch ein direktes Gespräch. Erstgespräch unverbindlich.