Kubernetes External Secret Operator
Der ursprüngliche Autor dieser Seite ist Fares
Diese Seite gibt einige Hinweise darauf, wie Sie Geheimnisse von einem falsch konfigurierten ESO oder einer Anwendung stehlen können, die ESO verwendet, um ihre Geheimnisse zu synchronisieren.
Haftungsausschluss
Die unten gezeigte Technik kann nur unter bestimmten Umständen funktionieren. Es hängt beispielsweise von den Anforderungen ab, die erfüllt sein müssen, um ein Geheimnis in einem Namespace zu synchronisieren, den Sie besitzen / kompromittiert haben. Sie müssen es selbst herausfinden.
Voraussetzungen
Ein Standbein in einem Kubernetes / Openshift-Cluster mit Administratorrechten in einem Namespace
Lesezugriff mindestens auf ExternalSecret auf Cluster-Ebene
Finden Sie heraus, ob bestimmte Labels / Annotationen oder Gruppenmitgliedschaften erforderlich sind, die es ESO ermöglichen, Ihr Geheimnis zu synchronisieren. Wenn Sie Glück haben, können Sie beliebige definierte Geheimnisse frei stehlen.
Informationen zum vorhandenen ClusterSecretStore sammeln
Angenommen, Sie haben einen Benutzer, der ausreichende Rechte hat, um auf diese Ressource zuzugreifen; beginnen Sie damit, zunächst die vorhandenen ClusterSecretStores aufzulisten.
Externe Secret-Auflistung
Angenommen, Sie haben einen ClusterSecretStore mit dem Namen mystore gefunden. Fahren Sie fort, indem Sie seine zugehörigen externen Secrets auflisten.
Diese Ressource ist namespace-spezifisch, daher sollten Sie die -A Option hinzufügen, um in allen Namespaces zu suchen, es sei denn, Sie wissen bereits, in welchem Namespace Sie suchen müssen.
Sie sollten eine Liste der definierten externalsecrets erhalten. Nehmen wir an, Sie haben ein externalsecret-Objekt namens mysecret gefunden, das vom Namespace mynamespace definiert und verwendet wird. Sammeln Sie weitere Informationen darüber, welche Art von Geheimnis es enthält.
Zusammenstellen der Teile
Von hier aus können Sie den Namen eines oder mehrerer Geheimnisnamen erhalten (wie im Secret-Ressourcen definiert). Sie erhalten eine Ausgabe ähnlich wie:
Nennen Sie einen ClusterSecretStore
Name eines ExternalSecrets
Name des Geheimnisses
Jetzt, da wir alles haben, was wir brauchen, können Sie ein ExternalSecret erstellen (und gegebenenfalls einen neuen Namespace patchen/erstellen, um die erforderlichen Voraussetzungen zu erfüllen, damit Ihr neues Geheimnis synchronisiert wird):
Nach ein paar Minuten, wenn die Synchronisationsbedingungen erfüllt sind, sollten Sie in der Lage sein, das durchgesickerte Geheimnis innerhalb Ihres Namensraums anzuzeigen.
Referenzen
Last updated