NatronTech Logo
Sicherheit

External Secrets

Availability
Stage
Experimental
External Secrets Logo

Mit External Secrets im Natron Managed Kubernetes Service integrieren und synchronisieren Sie Secrets sicher aus externen Secret-Management-Systemen in Ihre Cluster. Dieser Leitfaden zeigt Ihnen, wie Sie External Secrets einrichten, um sensible Informationen effizient und sicher zu verwalten.

Übersicht

Der Kubernetes-Operator "External Secrets" verbindet Ihren Cluster mit externen Systemen wie HashiCorp Vault oder AWS Secrets Manager. Sie definieren Kubernetes-Secrets, die der Operator automatisch befüllt und synchron hält.

Einrichtung mit Azure Key Vault

Die folgende Anleitung beschreibt die Integration für On-Premises Kubernetes-Cluster. Für AKS-Cluster empfehlen wir den direkten Weg über Workload Identities.

Key Vault Konfiguration

Melden Sie sich via az login an und wählen Sie die entsprechende Subscription aus.

Erstellen Sie einen Service Principal für den Zugriff:

az ad sp create-for-rbac --name "natr-demo-002-kv-01-sp" --skip-assignment

Hinterlegen Sie die ausgegebenen Zugangsdaten (appID als ClientID, password als ClientSecret) in einem Kubernetes Secret:

apiVersion: v1
kind: Secret
metadata:
    name: natr-demo-001-kv-01-sp
type: Opaque
stringData:
  ClientID: <redacted>
  ClientSecret: <redacted>

Berechtigungen zuweisen

Weisen Sie dem Service Principal die Rolle Key Vault Secrets User zu.

Ermitteln Sie dazu die Object ID der Enterprise Application des Service Principals im Azure Portal (App Registrations -> App auswählen -> Link zur Enterprise Application -> Object ID).

az role assignment create --assignee <Object ID> --role "Key Vault Secrets User" --scope /subscriptions/<Subcription ID>/resourceGroups/<Resource Group>/providers/Microsoft.KeyVault/vaults/<key vault>

SecretStore definieren

Konfigurieren Sie nun die SecretStore CRD für die Nutzung des Service Principals:

apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
  name: natr-demo-001-kv-01
spec:
  provider:
    azurekv:
      tenantId: <Tenant ID>
      vaultUrl: "https://<key-vault-name>.vault.azure.net"
      authType: ServicePrincipal
      authSecretRef:
        clientId:
          name: natr-demo-001-kv-01-sp
          key: ClientID
        clientSecret:
          name: natr-demo-001-kv-01-sp
          key: ClientSecret

On this page