Blog
AWS SSM-Parameter von einem Konto auf ein anderes kopieren

Vor zwei Jahren habe ich ein Dienstprogramm erstellt, um AWS SSM-Parameter von einem Konto auf ein anderes zu kopieren. Ich habe das Dienstprogramm auf pypi.org veröffentlicht, ohne einen Blog darüber zu schreiben. Als ich herausfand, dass viele Leute das Dienstprogramm nutzen, beschloss ich, es in diesem Blog vorzustellen.
Ich habe mich nie getraut, die Existenz dieses Dienstprogramms zu veröffentlichen, da es gegen meine Prinzipien von Infrastruktur als Code
und unveränderlicher Infrastruktur verstößt. Nach zwei Jahren bin ich nun endlich bereit zuzugeben, dass ich es geschrieben habe.
ein Wort der Warnung
Bevor wir fortfahren, sollten Sie wissen, dass dieses Programm in zweierlei Hinsicht gefährlich ist:
- können Sie vorhandene Parameterwerte überschreiben
- ermöglicht es anderen, Ihre Parameter im Handumdrehen zu exfiltrieren.
Um dem ersten entgegenzuwirken, müssen Sie explizit darum bitten, vorhandene Werte zu überschreiben. Gegen den zweiten gibt es nichts
, außer der Erstellung geeigneter Zugriffsrichtlinien. Ich habe mich damit abgefunden, dass Sie alle Geheimnisse auch mit dem folgenden AWS CLI-Standardbefehl extrahieren können:
aws ssm get-parameters-by-path --path / --with-decryption > all-the-secrets.json
Hier ist sie also!
die Installation des Dienstprogramms
Um das Dienstprogramm zu installieren, geben Sie ein:
pip install aws-ssm-copy
Was macht es?
Mit diesem Dienstprogramm können Sie:
- Parameter in einem Parameterspeicher in ein anderes Konto kopieren
- Parameter im Parameterspeicher in eine andere Region desselben Kontos kopieren
Sie können: - einzelne Parameter auswählen
- einen Pfad zurückverfolgen
- Ändern Sie den Zielpfad
Nachfolgend finden Sie ein paar Beispiele:
Kopieren von Parametern in eine andere Region
Um alle Parameter in eine andere Region zu kopieren, geben Sie ein:
aws-ssm-copy
--dry-run
--source-region eu-central-1
--region eu-west-1
--recursive /
Entfernen Sie die --dry-run, um die Kopie tatsächlich durchzuführen.
Kopieren von Parametern in ein anderes Konto
Um alle Parameter von einem Konto auf ein anderes Konto zu kopieren, geben Sie ein:
aws-ssm-copy
--dry-run
--source-profile binx-io
--recursive /
Entfernen Sie die --dry-run, um die Kopie tatsächlich durchzuführen.
Kopieren von Parametern in einen anderen Pfad
Um alle Parameter in einen anderen Pfad zu kopieren, geben Sie ein:
aws-ssm-copy
--dry-run
--target-path /old-dev
--recursive /dev
Entfernen Sie die --dry-run, um die Kopie tatsächlich durchzuführen.
andere Optionen
Die anderen verfügbaren Kommandozeilenoptionen sind:
| option | explanation |
| - | - |
| -one-level | one-level copy |
| -overwrite | existing values |
| -keep-going | as much as possible, even after an error |
| -key-id ID | to use for parameter values in the destination |
| -clear-key-id | clear the KMS key id associated with the parameter |
Fazit
Das Dienstprogramm aws-ssm-copy bietet eine einfache Möglichkeit, AWS SSM-Parameter zwischen Regionen und Konten zu kopieren. Sehen Sie sich den Quellcode auf github an und verwenden Sie ihn mit Vorsicht!
Bild von Astrid Schmid aus Pixabay
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



