{"componentChunkName":"component---src-templates-blog-template-js","path":"/cs/blog/introducing-the-psono-terraform-provider","result":{"data":{"markdownRemark":{"html":"<h1>Představujeme Terraform Provider pro Psono</h1>\n<p>S potěšením oznamujeme, že beta verze Terraform Provideru pro Psono je nyní k dispozici veřejně v\n<a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Terraform Registry</a>.</p>\n<p>Týmy spravující infrastrukturu nyní mohou spravovat jednotlivé klíče uvnitř již vytvořených položek Psono Environment Variables jako součást svého Terraform workflow. Provider uchovává existující hodnoty, dokáže generovat nová hesla, rotovat spravované hodnoty, zapisovat externě dodané hodnoty a číst tajemství skrze efemérní Terraform resource.</p>\n<h2>Tajemství, aniž by byla ukládána do stavu Terraformu</h2>\n<p>Práce s tajemstvími v infrastruktuře jako kódu vyžaduje zvláštní péči. Označení citlivosti (sensitive flag) může skrýt hodnotu z běžného CLI výstupu, ale nemusí ji ochránit před uložením do stavu Terraformu. Provider pro Psono využívá write-only a efemérní možnosti Terraformu, aby tento problém eliminoval, a vyžaduje Terraform ve verzi 1.11 či novější.</p>\n<p>Provider podporuje tři běžné typy workflow:</p>\n<ul>\n<li>Generovat hodnotu v Psono bez vracení této hodnoty ve spravovaném resource.</li>\n<li>Poskytnout hodnotu pomocí argumentu pouze pro zápis, takže Terraform ji neukládá do plánu ani stavu.</li>\n<li>Číst existující hodnotu pomocí efemérního resource a předat ji pouze jinému efemérnímu nebo write-only kontextu.</li>\n</ul>\n<p>Díky tomu je možné začlenit operace s tajemstvími do Terraformu a samotné hodnoty bezpečně uchovávat v Psono.</p>\n<h2>Omezený přístup a lokální šifrování</h2>\n<p>Provider používá omezený Psono API klíč. Přiřazujete pouze položky Environment Variables, které Terraform potřebuje a udělujete oprávnění k jejich čtení pro všechny operace. Vytváření, aktualizace, rotace nebo mazání klíčů navíc vyžaduje právo zápisu. Provider nepotřebuje neomezený API klíč a nemůže vytvářet trezory, složky ani datastory.</p>\n<p>Šifrování i dešifrování probíhá lokálně na straně provideru. Ověření HTTPS certifikátu nelze vypnout a privátní autority lze přidat pomocí PEM CA bundle. Produkční systémy by vždy měly používat HTTPS URL k Psono.</p>\n<h2>Začínáme</h2>\n<p>Je potřeba mít Terraform ve verzi 1.11 nebo novější. Přidejte provider do konfigurace:</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>Přihlašovací údaje nakonfigurujte přes environmentální proměnné, nikoliv do souborů Terraformu:</p>\n<pre><code class=\"language-bash\">export PSONO_SERVER_URL='https://psono.example.com/server'\nexport PSONO_API_KEY_ID='NAHRAĎTE_ID_KLÍČE'\nexport PSONO_API_SECRET_KEY='NAHRAĎTE_TAJNÝ_KLÍČ'\n</code></pre>\n<p>Poté inicializujte pracovní adresář:</p>\n<pre><code class=\"language-bash\">terraform init\n</code></pre>\n<p>Terraform si stáhne podepsanou verzi provideru a ověří podpis kontrolního součtu.</p>\n<h2>Generování a rotace hodnot</h2>\n<p>Následující resource spravuje <code>DB_PASSWORD</code> v existující položce Psono Environment Variables:</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>Pokud klíč již existuje, provider jej převezme bez změny hodnoty. Pokud neexistuje, provider vygeneruje a uloží novou hodnotu v Psono. Generovaná hodnota není vrácena v rámci resource a nevstupuje do stavu Terraformu.</p>\n<p>Při změně hodnoty inkrementujte <code>rotation_version</code>. Tím vynutíte vygenerování nové hodnoty, včetně původně adoptovaných či importovaných hodnot, proto by měly být rotace vždy před aplikací zkontrolovány.</p>\n<h2>Zápis hodnoty z externího zdroje</h2>\n<p>Efemérní hodnota z jiného provideru může být zapsána do Psono pomocí <code>value_wo</code>:</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>Hodnota je dostupná pouze při běhu Terraformu a neukládá se do plánu ani stavu. Při změně hodnoty inkrementujte <code>value_wo_version</code>.</p>\n<h2>Bezpečné mazání jako standard</h2>\n<p>Zničení spravovaného resource ponechá klíč v Psono ve výchozím nastavení. To chrání hodnoty, které Terraform pouze adoptoval, ale nevytvořil. Nastavte <code>deletion_policy = \"Delete\"</code> pouze v případě, že chcete, aby Terraform při zničení nebo nahrazení resource explicitně odstranil klíč v Psono.</p>\n<h2>K dispozici již nyní</h2>\n<p>Provider je open source a můžete jej začít používat již dnes:</p>\n<ul>\n<li><a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Instalujte provider z Terraform Registry</a></li>\n<li><a href=\"https://doc.psono.com/user/developer/terraform-provider.html\">Přečtěte si dokumentaci Psono Terraform Provideru</a></li>\n<li><a href=\"https://gitlab.com/esaqa/psono/psono-terraform-provider\">Podívejte se na zdrojový kód na GitLabu</a></li>\n</ul>\n<p>Beta verze se úmyslně zaměřuje pouze na položky Environment Variables a omezené API klíče. Díky tomu je oprávnění úzké, provider nemá neomezený přístup k trezorům a poskytuje bezpečné a efektivní řešení pro správu provozních tajemství z Terraformu.</p>","frontmatter":{"date":"August 22, 2026","slug":"introducing-the-psono-terraform-provider","title":"Představujeme Terraform Provider pro Psono","description":"Spravujte generované, pouze pro zápis a efemérní hodnoty v Psono přímo z Terraformu, aniž byste ukládali tajemství ve stavu Terraformu.","author":"Sascha Pfeiffer","featuredImage":null}}},"pageContext":{"slug":"introducing-the-psono-terraform-provider","lang":"cs","langPathPrefix":"/cs"}},"staticQueryHashes":["2149092236","3128451518","3192060438"]}