{"componentChunkName":"component---src-templates-blog-template-js","path":"/id/blog/introducing-the-psono-terraform-provider","result":{"data":{"markdownRemark":{"html":"<h1>Memperkenalkan Psono Terraform Provider</h1>\n<p>Kami dengan senang hati mengumumkan bahwa rilis beta Psono Terraform Provider sekarang tersedia secara publik di\n<a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Terraform Registry</a>.</p>\n<p>Tim infrastruktur kini dapat mengelola kunci individual di dalam entri Environment Variables Psono yang sudah dibuat sebagai bagian dari workflow Terraform mereka. Provider ini dapat mempertahankan nilai yang sudah ada, menghasilkan kata sandi baru, memutar (rotate) nilai yang dikelola, menulis nilai yang diberikan dari luar, serta membaca rahasia melalui resource ephemeral dari Terraform.</p>\n<h2>Rahasia tanpa menyimpannya di state Terraform</h2>\n<p>Penanganan rahasia dalam infrastruktur sebagai kode membutuhkan perhatian khusus. Flag sensitive dapat menyembunyikan nilai dari output CLI biasa, namun tidak selalu mencegah nilai tersebut masuk ke dalam state Terraform. Provider Psono menggunakan kemampuan write-only dan ephemeral dari Terraform untuk menghindari permasalahan tersebut dan membutuhkan Terraform versi 1.11 atau yang lebih baru.</p>\n<p>Provider ini mendukung tiga workflow umum:</p>\n<ul>\n<li>Menghasilkan nilai di Psono tanpa mengembalikannya melalui resource terkelola.</li>\n<li>Memasok nilai melalui argumen write-only agar Terraform tidak menyimpannya di plan maupun state.</li>\n<li>Membaca nilai yang sudah ada melalui resource ephemeral dan hanya meneruskannya ke konteks ephemeral atau write-only lainnya.</li>\n</ul>\n<p>Ini membuat operasi siklus hidup rahasia dapat dimasukkan ke dalam workflow Terraform tanpa nilai aslinya keluar dari Psono.</p>\n<h2>Akses terbatas dan enkripsi lokal</h2>\n<p>Provider ini menggunakan API key Psono yang terbatas. Anda hanya menetapkan entri Environment Variables yang dibutuhkan Terraform dan memberikan izin membaca untuk semua operasi. Membuat, memperbarui, memutar, atau menghapus kunci juga memerlukan izin menulis. Provider ini tidak membutuhkan kunci API tanpa batas dan tidak dapat membuat entri vault, folder, ataupun datastore.</p>\n<p>Enkripsi dan dekripsi dilakukan secara lokal di provider. Verifikasi sertifikat HTTPS tidak dapat dinonaktifkan, dan otoritas sertifikat privat bisa ditambahkan melalui PEM CA bundle. Sistem produksi sebaiknya selalu menggunakan URL Psono berbasis HTTPS.</p>\n<h2>Memulai</h2>\n<p>Terraform versi 1.11 atau lebih baru diperlukan. Tambahkan provider ke konfigurasi Terraform Anda:</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>Konfigurasikan kredensial melalui variabel lingkungan alih-alih menempatkannya di berkas Terraform:</p>\n<pre><code class=\"language-bash\">export PSONO_SERVER_URL='https://psono.example.com/server'\nexport PSONO_API_KEY_ID='GANTI_DENGAN_API_KEY_ID'\nexport PSONO_API_SECRET_KEY='GANTI_DENGAN_API_SECRET_KEY'\n</code></pre>\n<p>Lalu inisialisasi direktori kerja:</p>\n<pre><code class=\"language-bash\">terraform init\n</code></pre>\n<p>Terraform akan mengunduh rilis provider yang telah ditandatangani dan memverifikasi tanda tangan checksumnya.</p>\n<h2>Menghasilkan dan memutar nilai</h2>\n<p>Resource berikut mengelola <code>DB_PASSWORD</code> di entri Environment Variables Psono yang sudah ada:</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>Jika kunci sudah ada, provider akan mengadopsinya tanpa mengubah nilainya. Jika tidak ada, provider akan menghasilkan dan menyimpan nilai baru di Psono. Nilai yang dihasilkan tidak dikembalikan oleh resource terkelola dan tidak masuk ke dalam state Terraform.</p>\n<p>Tingkatkan <code>rotation_version</code> ketika Terraform perlu menghasilkan pengganti. Ini juga menggantikan nilai yang diadopsi atau diimpor, jadi periksa dulu perubahan rotasi sebelum mengaplikasikannya.</p>\n<h2>Menulis nilai dari luar</h2>\n<p>Nilai ephemeral dari provider lain dapat ditulis ke Psono dengan <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>Nilai ini tersedia selama operasi Terraform berlangsung namun tidak disimpan di plan maupun state. Tingkatkan <code>value_wo_version</code> saat Terraform harus menulis nilai pengganti.</p>\n<h2>Penghapusan aman secara default</h2>\n<p>Menghapus resource terkelola secara default akan mempertahankan kunci di Psono. Ini melindungi nilai yang diadopsi Terraform, namun tidak diciptakan olehnya. Atur <code>deletion_policy = \"Delete\"</code> hanya jika Terraform benar-benar diinginkan untuk menghapus kunci dari Psono saat destroy atau resource replacement.</p>\n<h2>Tersedia sekarang</h2>\n<p>Provider ini bersifat open source dan sudah dapat digunakan:</p>\n<ul>\n<li><a href=\"https://registry.terraform.io/providers/psono/psono/latest\">Instal provider dari Terraform Registry</a></li>\n<li><a href=\"https://doc.psono.com/user/developer/terraform-provider.html\">Baca panduan Psono Terraform Provider</a></li>\n<li><a href=\"https://gitlab.com/esaqa/psono/psono-terraform-provider\">Lihat kode sumber di GitLab</a></li>\n</ul>\n<p>Rilis beta ini memang difokuskan pada entri Environment Variables dan API key terbatas. Pendekatan ini menjaga izin tetap sempit, mencegah akses vault yang tidak terbatas, dan memberi fondasi praktis untuk mengelola rahasia operasional secara aman langsung dari Terraform.</p>","frontmatter":{"date":"August 22, 2026","slug":"introducing-the-psono-terraform-provider","title":"Memperkenalkan Psono Terraform Provider","description":"Kelola nilai yang dihasilkan, hanya dapat ditulis, dan bersifat sementara di Psono langsung dari Terraform tanpa menyimpan rahasia dalam state Terraform.","author":"Sascha Pfeiffer","featuredImage":null}}},"pageContext":{"slug":"introducing-the-psono-terraform-provider","lang":"id","langPathPrefix":"/id"}},"staticQueryHashes":["2149092236","3128451518","3192060438"]}