Örömmel jelentjük be, hogy a Psono Terraform Provider béta verziója mostantól elérhető a nyilvános Terraform Registry-ben.
Az infrastruktúra-csapatok mostantól közvetlenül kezelhetik az előre létrehozott Psono Environment Variables bejegyzésekben lévő egyes kulcsokat a Terraformos munkafolyamatuk részeként. A provider megtarthatja a meglévő értékeket, új jelszavakat generálhat, forgathatja a kezelt értékeket, írási külsőleg megadott értékeket, illetve efemer erőforrásokon keresztül olvashat el titkos adatokat Terraformban.
A titkosítás infrastrukturális kódban különös odafigyelést igényel. Egy érzékeny zászló elrejtheti az értéket a normál CLI kimenetből, de nem feltétlenül tartja a Terraform állapotfájlon kívül. A Psono provider a Terraform csak írható és efemer képességeit használja a probléma elkerülésére, és minimum Terraform 1.11-et igényel.
A provider három gyakori munkafolyamatot támogat:
Ez lehetővé teszi a titkos adat életciklus műveletek bevonását a Terraformba anélkül, hogy a valódi értékeket ne a Psono-ban tárolnánk.
A provider korlátozott Psono API kulcsot használ. Csak azokat az Environment Variables bejegyzéseket adja meg, amelyekre a Terraformnak szüksége van, és olvasható jogosultságot ad minden művelethez. Kulcsok létrehozásához, frissítéséhez, forgatásához vagy törléséhez írási jogosultság szükséges. A providernek nincs szüksége korlátlan API kulcsra, és nem is tud új páncéltermi bejegyzéseket, mappákat vagy adattárakat létrehozni.
A titkosítás és dekódolás helyileg, a providerben történik. A HTTPS tanúsítvány ellenőrzése nem tiltható le, és privát tanúsítvány hatóságokat PEM CA csomaggal lehet hozzáadni. A produkciós rendszereknek mindig HTTPS Psono URL-t kell használniuk.
Legalább Terraform 1.11 szükséges. Adja hozzá a providert a Terraform konfigurációjához:
terraform {
required_version = ">= 1.11.0"
required_providers {
psono = {
source = "psono/psono"
version = "~> 1.0"
}
}
}
provider "psono" {}
A hitelesítési adatokat környezeti változókkal konfigurálja, ne a Terraform fájlokba írja azokat:
export PSONO_SERVER_URL='https://psono.example.com/server'
export PSONO_API_KEY_ID='IDE_ÍRD_BE_AZ_API_KEY_ID-T'
export PSONO_API_SECRET_KEY='IDE_ÍRD_BE_AZ_API_SECRET_KEY-T'
Ezután inicializálja a munkakönyvtárat:
terraform init
A Terraform letölti az aláírt provider kiadást és ellenőrzi az ellenőrzőösszeg aláírását.
A következő erőforrás menedzseli a DB_PASSWORD kulcsot egy meglévő Psono Environment Variables bejegyzésben:
resource "psono_environment_variable" "database_password" {
secret_id = var.psono_environment_variables_secret_id
name = "DB_PASSWORD"
length = 32
min_lower = 4
min_upper = 4
min_numeric = 4
min_special = 4
rotation_version = 1
}
Ha a kulcs már létezik, a provider adoptálja, értékét változtatás nélkül. Ha nem létezik, a provider generál és tárol egy új értéket a Psono-ban. A generált értéket nem adja vissza a menedzselt erőforrás, és az nem kerül be a Terraform állapotba.
A rotation_version növelésével jelezze, ha a Terraformnak új értéket kell generálnia. Ez a forgatás azokat az értékeket is lecseréli, amelyeket eredetileg
adoptált vagy importáltak, ezért a forgatási változásokat alkalmazás előtt felül kell vizsgálni.
Egy másik providerből származó efemer érték írható a Psono-ba value_wo-val:
ephemeral "random_password" "database" {
length = 32
}
resource "psono_environment_variable" "database_password" {
secret_id = var.psono_environment_variables_secret_id
name = "DB_PASSWORD"
value_wo = ephemeral.random_password.database.result
value_wo_version = 1
}
Az érték elérhető a Terraform művelet során, de nem tárolódik sem a tervben, sem az állapotban. Növelje a value_wo_version értékét, ha a
Terraform-nak cserélnie kell az értéket.
Egy menedzselt erőforrás megszüntetése esetén alapértelmezetten megtartja a hozzá tartozó Psono kulcsot. Így védettek maradnak azok az értékek, amelyeket a Terraform csak átvett, de nem ő hozott létre. Csak akkor állítsa be a deletion_policy = "Delete" opciót, ha a Terraformnak explicit módon törölnie kell a kulcsot a Psono-ból törlés vagy erőforráscsere során.
A provider nyílt forráskódú és mostantól elérhető:
A béta verzió szándékosan az Environment Variables bejegyzésekre és korlátozott API kulcsokra fókuszál. Így szűkek a jogosultságok, elkerülhető a páncélterem korlátlan elérése, és megteremt egy biztonságos alapot az üzemeltetési titkok Terraformmal történő kezeléséhez.