Terraform für Secrets Manager einrichten
Terraform auf IBM Cloud ermöglicht die vorhersehbare und konsistente Erstellung von IBM Cloud-Diensten, sodass Sie schnell komplexe, mehrschichtige Cloud-Umgebungen aufbauen können, die den Prinzipien von „Infrastructure as Code“ ( IaC ) entsprechen. Ähnlich wie bei der Verwendung der „ IBM Cloud “-CLI oder der API und der SDKs können Sie die Erstellung, Aktualisierung und Löschung Ihrer „ Secrets Manager “-Instanzen mithilfe der „ HashiCorp Configuration Language“ (HCL) automatisieren.
Sie suchen eine verwaltete Terraform on IBM Cloud-Lösung? Probieren Sie IBM Cloud® Schematics aus. Mit Schematics können Sie die Terraform-Skriptsprache verwenden, mit der Sie vertraut sind. Sie müssen sich jedoch nicht um die Einrichtung und Pflege der Terraform-Befehlszeile und des IBM Cloud Provider-Plug-ins kümmern. Schematics bietet auch vordefinierte Terraform-Vorlagen, die Sie einfach aus dem IBM Cloud Katalog installieren können.
Terraform installieren und Ressourcen für Secrets Manager konfigurieren
Bevor Sie eine Berechtigung mit Terraform erstellen können, stellen Sie sicher, dass Sie die folgenden Schritte ausgeführt haben:
- Stellen Sie sicher, dass Sie über den erforderlichen Zugriff verfügen, um Secrets Manager-Ressourcen erstellen und damit arbeiten zu können.
- Installieren Sie die Terraform-CLI und konfigurieren Sie das Provider-Plug-in IBM Cloud für Terraform. Weitere Informationen finden Sie im Lernprogramm zur Einführung in Terraform auf IBM Cloud. Das Plug-in abstrahiert die IBM Cloud APIs, die zur Erfüllung dieses Tasks verwendet werden.
- Erstellen Sie eine Terraform-Konfigurationsdatei mit dem Namen
main.tf. In dieser Datei definieren Sie Ressourcen mithilfe der Konfigurationssprache HashiCorp. Weitere Informationen finden Sie in der Terraform-Dokumentation.
-
Nachdem Sie Ihre Konfigurationsdatei erstellt haben, initialisieren Sie die Terraform-CLI. Weitere Informationen finden Sie unter Arbeitsverzeichnisse initialisieren.
terraform init -
Erstellen Sie eine Secrets Manager-Instanz mithilfe des Ressourcenarguments
ibm_resource_instancein Ihrer Dateimain.tf.- Die Secrets Manager-Instanz im folgenden Beispiel hat den Namen
secrets-manager-londonund wird mit dem Testplan in dereu-gb-Region erstellt.user@ibm.comwird die Administratorrolle in der IAM-Zugriffsrichtlinie zugewiesen. Weitere unterstützte Regionen finden Sie unter Regionen und Endpunkte. Zu den Planoptionen gehörentrialundstandard.
resource "ibm_resource_instance" "sm_instance" { name = "Secrets Manager-London" service = "secrets-manager" plan = "trial" location = "eu-gb" timeouts { create = "60m" delete = "2h" }, }Eine vollständige Liste der unterstützten Attribute finden Sie unter
ibm_resource_instance.Optional können Sie eine Datenquelle erstellen, um Informationen zu einer vorhandenen Instanz von Secrets Manager aus IBM Cloudabzurufen, indem Sie den folgenden Befehl ausführen:
data "ibm_resource_instance" "sm_resource_instance" { name = "Secrets Manager-London" location = "eu-gb" service = "secrets-manager" }Eine vollständige Liste der unterstützten Attribute finden Sie unter
ibm_resource_instance. - Die Secrets Manager-Instanz im folgenden Beispiel hat den Namen
-
Stellen Sie die Ressourcen aus der Datei
main.tfbereit. Weitere Informationen finden Sie unter Infrastruktur mit Terraform bereitstellen.- Führen Sie
terraform planaus, um einen Terraform-Ausführungsplan für die Vorschau der vorgeschlagenen Aktionen zu generieren.
terraform plan- Führen Sie
terraform applyaus, um die Ressourcen zu erstellen, die im Plan definiert sind.
terraform apply - Führen Sie
-
Definieren Sie lokale Werte für Ihre Secrets Manager-Instanz, die beim Erstellen von Ressourcen verwendet werden sollen.
locals { instance_id = data.ibm_resource_instance.sm_resource_instance.guid region = data.ibm_resource_instance.sm_resource_instance.location } -
Wählen Sie in der Benutzeroberfläche unter „ IBM Cloud “ die von Ihnen erstellte „ Secrets Manager “-Instanz aus und notieren Sie sich die Instanz-ID.
-
Überprüfen Sie, ob die Zugriffsrichtlinie erfolgreich zugeordnet wurde. Weitere Informationen finden Sie unter Zugewiesene Zugriffsberechtigungen in der Konsole überprüfen.
Ressourcenabweichung verwalten
Mit Terraform können Sie den Lebenszyklus Ihrer Infrastruktur mithilfe deklarativer Konfigurationsdateien sicher und vorhersehbar verwalten. Eine Herausforderung, die besteht, wenn Sie Infrastruktur als Code verwalten, ist Drift. Eine Abweichung tritt auf, wenn Ressourcen hinzugefügt, gelöscht oder geändert werden, während Terraform-Konfigurationsänderungen angewendet werden. Beispiel: Wenn ein geheimer Schlüssel abläuft oder rotiert wird. Verwenden Sie zur Vermeidung von Abweichungen immer Terraform zum Verwalten von Ressourcen, die ursprünglich mit Terraform erstellt wurden.
Die Terraform-Statusdatei ist ein Datensatz aller Ressourcen, die von Terraform verwaltet werden. Sie dürfen keine manuellen Änderungen an Ressourcen vornehmen, die von Terraform gesteuert werden, da dadurch die Statusdatei aus der realen Infrastruktur nicht mehr synchron oder nicht mehr synchron ist. Wenn Ihr Status und Ihre Konfiguration nicht mit Ihrer Infrastruktur übereinstimmen, versucht Terraform, Ihre Infrastruktur abzustimmen. Dies kann dazu führen, dass Ressourcen versehentlich gelöscht oder erneut erstellt werden.
Wenn Sie den Terraform-Provider Secrets Manager verwenden, kann in folgenden Fällen eine Abweichung auftreten:
- Ablauf des geheimen Schlüssels
- Automatische Rotation geheimer Schlüssel
- Externe Änderungen an Secret Manager-Ressourcen, die von Terraform gesteuert werden
Wenn Sie Ihr Terraform-Projekt entwerfen, befolgen Sie die Terraform Best Practices für die Verwaltung von Drift und Lebenszyklusänderungen, um eine unbeabsichtigte Zerstörung oder Wiederherstellung von Secrets Manager Ressourcen zu vermeiden.
Weitere Schritte
Nachdem Sie nun erfolgreich Ihre erste Secrets Manager-Serviceinstanz mit Terraform in IBM Clouderstellt haben, können Sie die Secrets Manager-Ressourcen und -Datenquellen in der Terraform-Registryüberprüfen. Sie können auch prüfen, wie Sie Ihre Secrets Manager-Ressourcen verwalten, indem Sie die im Abschnitt 'Vorgehensweise' enthaltenen Terraform-Schritte ausführen. Sie können beispielsweise den Anweisungen zum Erstellen beliebiger geheimer Schlüssel mit Terraform folgen.
Für den Einsatz in der Produktion sollten Sie die IBM Cloud® Secrets Manager die unternehmenstaugliche Konfigurationen bietet. Erfahren Sie mehr über Terraform IBM Module.