{"componentChunkName":"component---src-templates-blog-template-js","path":"/de/blog/introducing-the-psono-terraform-provider","result":{"data":{"markdownRemark":{"html":"<h1>Einführung des Psono Terraform Providers</h1>\n<p>Wir freuen uns, bekannt zu geben, dass die Beta-Version des Psono Terraform Providers nun im öffentlichen\n<a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Terraform Registry</a> verfügbar ist.</p>\n<p>Infrastrukturteams können nun einzelne Schlüssel in bereits vorhandenen Psono-Einträgen für Umgebungsvariablen im Rahmen ihres Terraform-Workflows verwalten. Der Provider kann bestehende Werte beibehalten, neue Passwörter generieren, verwaltete Werte rotieren, extern bereitgestellte Werte schreiben und Secrets über flüchtige Terraform-Ressourcen auslesen.</p>\n<h2>Secrets verwalten, ohne sie im Terraform-Status zu speichern</h2>\n<p>Der Umgang mit Geheimnissen in Infrastructure-as-Code benötigt besondere Sorgfalt. Ein Sensitiv-Flag kann einen Wert vor der üblichen CLI-Ausgabe verbergen, verhindert aber nicht zwangsläufig, dass dieser Wert im Terraform-Status gespeichert wird. Der Psono Provider nutzt die Schreibschutz- und flüchtigen Funktionen von Terraform, um dieses Problem zu vermeiden, und erfordert Terraform 1.11 oder neuer.</p>\n<p>Der Provider unterstützt drei gängige Workflows:</p>\n<ul>\n<li>Einen Wert in Psono generieren, ohne ihn über die verwaltete Ressource zurückzugeben.</li>\n<li>Einen Wert über ein schreibgeschütztes Argument bereitstellen, sodass Terraform ihn nicht im Plan oder Status speichert.</li>\n<li>Einen bestehenden Wert über eine flüchtige Ressource auslesen und ihn nur an eine andere flüchtige oder schreibgeschützte Umgebung weitergeben.</li>\n</ul>\n<p>Damit ist es möglich, Geheimnis-Lifecycle-Operationen in Terraform zu integrieren, während die eigentlichen Werte in Psono verbleiben.</p>\n<h2>Eingeschränkter Zugriff und lokale Verschlüsselung</h2>\n<p>Der Provider verwendet einen eingeschränkten Psono API-Schlüssel. Sie weisen nur die Einträge für Umgebungsvariablen zu, die Terraform benötigt, und gewähren Leserechte für alle Operationen. Erstellen, Aktualisieren, Rotieren oder Löschen von Schlüsseln erfordert zusätzlich Schreibrechte. Der Provider benötigt keinen uneingeschränkten API-Schlüssel und kann keine neuen Vault-Einträge, Ordner oder Datenspeicher anlegen.</p>\n<p>Die Verschlüsselung und Entschlüsselung erfolgt lokal im Provider. Die Überprüfung von HTTPS-Zertifikaten kann nicht deaktiviert werden, und private Zertifizierungsstellen können über ein PEM-CA-Bundle hinzugefügt werden. Produktivsysteme sollten immer eine HTTPS-Psono-URL verwenden.</p>\n<h2>Loslegen</h2>\n<p>Terraform 1.11 oder neuer wird benötigt. Fügen Sie den Provider zu Ihrer Terraform-Konfiguration hinzu:</p>\n<pre><code class=\"language-hcl\">terraform {\n  required_version = \">= 1.11.0\"\n\n  required_providers {\n    psono = {\n      source  = \"psono/psono\"\n      version = \"~> 1.0\"\n    }\n  }\n}\n\nprovider \"psono\" {}\n</code></pre>\n<p>Konfigurieren Sie die Zugangsdaten über Umgebungsvariablen, anstatt sie in Terraform-Dateien zu hinterlegen:</p>\n<pre><code class=\"language-bash\">export PSONO_SERVER_URL='https://psono.example.com/server'\nexport PSONO_API_KEY_ID='REPLACE_WITH_API_KEY_ID'\nexport PSONO_API_SECRET_KEY='REPLACE_WITH_API_SECRET_KEY'\n</code></pre>\n<p>Initialisieren Sie anschließend das Arbeitsverzeichnis:</p>\n<pre><code class=\"language-bash\">terraform init\n</code></pre>\n<p>Terraform lädt die signierte Provider-Version herunter und überprüft deren Prüfsummensignatur.</p>\n<h2>Werte generieren und rotieren</h2>\n<p>Die folgende Ressource verwaltet <code>DB_PASSWORD</code> in einem bestehenden Psono-Eintrag für Umgebungsvariablen:</p>\n<pre><code class=\"language-hcl\">resource \"psono_environment_variable\" \"database_password\" {\n  secret_id = var.psono_environment_variables_secret_id\n  name      = \"DB_PASSWORD\"\n\n  length      = 32\n  min_lower   = 4\n  min_upper   = 4\n  min_numeric = 4\n  min_special = 4\n\n  rotation_version = 1\n}\n</code></pre>\n<p>Wenn der Schlüssel bereits existiert, übernimmt ihn der Provider, ohne dessen Wert zu ändern. Falls nicht, generiert und speichert der Provider einen neuen Wert in Psono. Der generierte Wert wird von der verwalteten Ressource nicht zurückgegeben und gelangt somit nicht in den Terraform-Status.</p>\n<p>Erhöhen Sie <code>rotation_version</code>, wenn Terraform einen neuen Wert generieren soll. Dies ersetzt auch Werte, die ursprünglich übernommen oder importiert wurden – Rotationsänderungen sollten daher vor der Anwendung geprüft werden.</p>\n<h2>Einen extern gelieferten Wert schreiben</h2>\n<p>Ein Wert aus einem anderen Provider kann mit <code>value_wo</code> flüchtig in Psono geschrieben werden:</p>\n<pre><code class=\"language-hcl\">ephemeral \"random_password\" \"database\" {\n  length = 32\n}\n\nresource \"psono_environment_variable\" \"database_password\" {\n  secret_id        = var.psono_environment_variables_secret_id\n  name             = \"DB_PASSWORD\"\n  value_wo         = ephemeral.random_password.database.result\n  value_wo_version = 1\n}\n</code></pre>\n<p>Der Wert steht während der Terraform-Operation zur Verfügung, wird aber weder im Plan noch im Status abgespeichert. Erhöhen Sie <code>value_wo_version</code>, wenn Terraform einen neuen Wert schreiben soll.</p>\n<h2>Standardmäßig sichere Löschung</h2>\n<p>Das Löschen einer verwalteten Ressource behält deren Psono-Schlüssel standardmäßig bei. So werden Werte geschützt, die von Terraform übernommen, aber nicht erzeugt wurden. Setzen Sie <code>deletion_policy = \"Delete\"</code> nur dann, wenn Terraform den Schlüssel explizit aus Psono entfernen soll, z. B. beim Löschen oder Ersetzen der Ressource.</p>\n<h2>Ab sofort verfügbar</h2>\n<p>Der Provider ist Open Source und ab sofort verfügbar:</p>\n<ul>\n<li><a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Provider aus dem Terraform Registry installieren</a></li>\n<li><a href=\"https://doc.psono.com/user/developer/terraform-provider.html\">Die Anleitung zum Psono Terraform Provider lesen</a></li>\n<li><a href=\"https://gitlab.com/esaqa/psono/psono-terraform-provider\">Den Quellcode auf GitLab ansehen</a></li>\n</ul>\n<p>Der Beta-Release konzentriert sich bewusst auf Einträge für Umgebungsvariablen und eingeschränkte API-Schlüssel. So werden die Berechtigungen begrenzt, ein uneingeschränkter Vault-Zugriff vermieden und eine praktikable Grundlage geschaffen, um operative Secrets sicher aus Terraform heraus zu verwalten.</p>","frontmatter":{"date":"August 22, 2026","slug":"introducing-the-psono-terraform-provider","title":"Einführung des Psono Terraform Providers","description":"Verwalten Sie generierte, schreibgeschützte und flüchtige Werte in Psono direkt aus Terraform, ohne Secrets im Terraform-Status zu speichern.","author":"Sascha Pfeiffer","featuredImage":null}}},"pageContext":{"slug":"introducing-the-psono-terraform-provider","lang":"de","langPathPrefix":"/de"}},"staticQueryHashes":["2149092236","3128451518","3192060438"]}