{"componentChunkName":"component---src-templates-blog-template-js","path":"/pl/blog/introducing-the-psono-terraform-provider","result":{"data":{"markdownRemark":{"html":"<h1>Przedstawiamy Psono Terraform Provider</h1>\n<p>Miło nam ogłosić, że beta wersja Psono Terraform Provider jest już dostępna publicznie w\n<a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Terraform Registry</a>.</p>\n<p>Zespoły infrastrukturalne mogą teraz zarządzać poszczególnymi kluczami we wcześniej utworzonych wpisach Zmiennych Środowiskowych Psono w ramach swojego workflow Terraform. Provider potrafi zachować istniejące wartości, generować nowe hasła, rotować zarządzane wartości, zapisywać wartości dostarczone zewnętrznie oraz odczytywać sekrety przez efemeryczne zasoby Terraform.</p>\n<h2>Sekrety bez ich umieszczania w stanie Terraform</h2>\n<p>Obsługa sekretów w podejściu infrastructure as code wymaga szczególnej ostrożności. Flaga „sensitive” może ukryć wartość w standardowym wyjściu CLI, ale niekoniecznie uniemożliwi jej zapisanie w stanie Terraform. Provider Psono wykorzystuje możliwość działania jedynie do zapisu oraz efemeryczne zasoby, by rozwiązać ten problem — wymaga Terraform w wersji 1.11 lub nowszej.</p>\n<p>Provider wspiera trzy typowe workflowy:</p>\n<ul>\n<li>Wygeneruj wartość w Psono bez zwracania jej przez zarządzany zasób.</li>\n<li>Przekaż wartość do zasobu jedynie do zapisu („write-only”), aby Terraform jej nie utrwalał w planie ani stanie.</li>\n<li>Odczytaj istniejącą wartość przez efemeryczny zasób i przekaż ją tylko do innego efemerycznego lub tylko do zapisu kontekstu.</li>\n</ul>\n<p>Pozwala to dodawać operacje na cyklu życia sekretów w Terraform bez wyciągania rzeczywistych wartości poza Psono.</p>\n<h2>Ograniczony dostęp i lokalne szyfrowanie</h2>\n<p>Provider wykorzystuje ograniczony klucz API Psono. Wskazujesz tylko te wpisy Zmiennych Środowiskowych, które są potrzebne Terraformowi i nadajesz uprawnienia do odczytu dla wszystkich operacji. Tworzenie, aktualizacja, rotacja lub kasowanie kluczy wymaga dodatkowo uprawnień do zapisu. Provider nie potrzebuje nieograniczonego klucza API i nie może tworzyć wpisów sejfu, folderów ani magazynów danych.</p>\n<p>Szyfrowanie i deszyfrowanie odbywa się lokalnie w providerze. Weryfikacja certyfikatu HTTPS nie może być wyłączona, a własne urzędy certyfikacji można dodać przez plik PEM CA bundle. Produkcyjne systemy powinny zawsze korzystać z adresu Psono pod HTTPS.</p>\n<h2>Pierwsze kroki</h2>\n<p>Wymagana jest wersja Terraform 1.11 lub nowsza. Dodaj provider do swojej konfiguracji Terraform:</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>Skonfiguruj dane uwierzytelniające przez zmienne środowiskowe, a nie w plikach Terraform:</p>\n<pre><code class=\"language-bash\">export PSONO_SERVER_URL='https://psono.example.com/server'\nexport PSONO_API_KEY_ID='TUTAJ_WSTAW_API_KEY_ID'\nexport PSONO_API_SECRET_KEY='TUTAJ_WSTAW_API_SECRET_KEY'\n</code></pre>\n<p>Następnie zainicjuj katalog roboczy:</p>\n<pre><code class=\"language-bash\">terraform init\n</code></pre>\n<p>Terraform pobierze podpisane wydanie providera i zweryfikuje jego sumę kontrolną.</p>\n<h2>Generowanie i rotacja wartości</h2>\n<p>Poniższy zasób zarządza <code>DB_PASSWORD</code> we wcześniej utworzonym wpisie zmiennych środowiskowych Psono:</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>Jeśli klucz już istnieje, provider go przejmuje bez zmiany jego wartości. Jeśli go nie ma, provider wygeneruje i zapisze nową wartość w Psono. Wygenerowana wartość nie jest zwracana przez zarządzany zasób ani nie trafia do stanu Terraform.</p>\n<p>Zwiększ <code>rotation_version</code>, gdy chcesz wymusić wygenerowanie nowej wartości przez Terraform. Zastępuje to także wartości, które zostały przejęte lub zaimportowane, dlatego rotację należy zawsze przejrzeć przed zastosowaniem zmian.</p>\n<h2>Zapisz wartość dostarczoną z zewnątrz</h2>\n<p>Efemeryczna wartość z innego providera może zostać zapisana do Psono przez <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>Wartość jest dostępna podczas działania Terraform, ale nie jest przechowywana w planie ani stanie. Zwiększ <code>value_wo_version</code>, aby wymusić zapisanie nowej wartości.</p>\n<h2>Domyślnie bezpieczne usuwanie</h2>\n<p>Kasując zarządzany zasób, domyślnie klucz w Psono pozostaje. Chroni to wartości, które zostały przejęte przez Terraform, ale nie zostały przez niego utworzone. Ustaw <code>deletion_policy = \"Delete\"</code> tylko wtedy, gdy Terraform ma jawnie usunąć klucz z Psono podczas niszczenia lub zamiany zasobu.</p>\n<h2>Dostępne już teraz</h2>\n<p>Provider jest open source i dostępny już dziś:</p>\n<ul>\n<li><a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Zainstaluj provider z Terraform Registry</a></li>\n<li><a href=\"https://doc.psono.com/user/developer/terraform-provider.html\">Przeczytaj przewodnik Psono Terraform Provider</a></li>\n<li><a href=\"https://gitlab.com/esaqa/psono/psono-terraform-provider\">Przeglądaj kod źródłowy na GitLab</a></li>\n</ul>\n<p>Wersja beta skupia się celowo na wpisach Zmiennych Środowiskowych i ograniczonych kluczach API. Pozwala to zachować wąski zakres uprawnień, unika nieograniczonego dostępu do sejfu i zapewnia praktyczną bazę do bezpiecznego zarządzania operacyjnymi sekretami z poziomu Terraform.</p>","frontmatter":{"date":"August 22, 2026","slug":"introducing-the-psono-terraform-provider","title":"Przedstawiamy Psono Terraform Provider","description":"Zarządzaj generowanymi, tylko do zapisu i efemerycznymi wartościami w Psono bezpośrednio z Terraform, bez przechowywania sekretów w stanie Terraform.","author":"Sascha Pfeiffer","featuredImage":null}}},"pageContext":{"slug":"introducing-the-psono-terraform-provider","lang":"pl","langPathPrefix":"/pl"}},"staticQueryHashes":["2149092236","3128451518","3192060438"]}