Olemme iloisia voidessamme ilmoittaa, että Psono Terraform Providerin beetaversio on nyt saatavilla julkisessa Terraform Registryssä.
Infrastruktuuritiimit voivat nyt hallita yksittäisiä avaimia ennalta luoduissa Psono Environment Variables ‑merkinnöissä osana Terraform-työnkulkuaan. Provider voi säilyttää olemassa olevat arvot, generoida uusia salasanoja, kierrättää hallinnoituja arvoja, kirjoittaa ulkoisesti toimitettuja arvoja sekä lukea salaisuuksia Terraformin efemeerisillä resursseilla.
Salaisuuksien käsittely infrastruktuurin koodina vaatii erityistä huolellisuutta. Herkkä-lippu voi piilottaa arvon normaalilta CLI-tulostukselta, mutta se ei välttämättä estä arvoa päätymästä Terraformin stateen. Psono-provider hyödyntää Terraformin vain kirjoitettavia (write-only) ja efemeraalisia ominaisuuksia välttääkseen tämän ongelman, ja vaatii Terraform 1.11 tai uudemman.
Provider tukee kolmea yleistä työnkulkua:
Tämän ansiosta salaisuuksien elinkaaren hallinta onnistuu Terraformista käsin ilman, että varsinaiset arvot poistuvat Psonosta.
Provider käyttää rajoitettua Psono API -avainta. Määrittele vain ne Environment Variables ‑merkinnät, joita Terraform tarvitsee ja myönnä niille lukuoikeudet kaikkiin operaatioihin. Avainten luominen, päivittäminen, kierrättäminen tai poistaminen vaatii lisäksi kirjoitusoikeuden. Provider ei tarvitse rajoittamattomia API-avaimia, eikä se voi luoda holvimerkintöjä, kansioita tai tietovarastoja.
Salaus ja salauksen purku tapahtuvat paikallisesti providerissa. HTTPS-varmenteiden tarkistusta ei voi poistaa käytöstä, ja yksityiset varmentajat voi lisätä PEM CA -nipulla. Tuotantojärjestelmissä tulee aina käyttää HTTPS-Psono-osoitetta.
Tarvitset Terraform 1.11:n tai uudemman. Lisää provider Terraform-konfiguraatioosi:
terraform {
required_version = ">= 1.11.0"
required_providers {
psono = {
source = "psono/psono"
version = "~> 1.0"
}
}
}
provider "psono" {}
Määritä tunnistetiedot ympäristömuuttujilla sen sijaan, että sijoittaisit ne Terraform-tiedostoihin:
export PSONO_SERVER_URL='https://psono.example.com/server'
export PSONO_API_KEY_ID='VAIHDA_TÄHÄN_API_KEY_ID'
export PSONO_API_SECRET_KEY='VAIHDA_TÄHÄN_API_SECRET_KEY'
Alusta tämän jälkeen työskentelyhakemisto:
terraform init
Terraform lataa allekirjoitetun provider-julkaisun ja varmistaa sen tarkistussumman.
Seuraava resurssi hallinnoi DB_PASSWORD-avainta olemassa olevassa Psono Environment Variables ‑merkinnässä:
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
}
Jos avain on jo olemassa, provider ottaa sen haltuun ilman arvon vaihtamista. Jos sitä ei ole olemassa, provider generoi ja tallentaa uuden arvon Psonoon. Generoitua arvoa ei palauteta hallinnoidulta resurssilta eikä se päädy Terraformin stateen.
Nosta rotation_version-arvoa, kun Terraformin pitää generoida uusi arvo. Tämä korvaa myös arvot, jotka on alun perin adoptoitu tai tuotu, joten kierrätysmuutokset pitää tarkistaa ennen käyttöönottoa.
Toisen providerin efemeerinen arvo voidaan kirjoittaa Psonoon value_wo-ominaisuudella:
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
}
Arvo on käytettävissä Terraform-operaation ajan, mutta sitä ei tallenneta planiin eikä stateen. Nosta value_wo_version
kun Terraformin tulisi kirjoittaa korvaava arvo.
Hallinnoidun resurssin tuhoaminen säilyttää oletuksena Psonon avaimen. Tämä suojaa arvoja, jotka Terraform on adoptoinut mutta ei itse luonut. Aseta deletion_policy = "Delete" vain, jos Terraformin pitää poistaa avain Psonosta tuhottavan resurssin yhteydessä.
Provider on avoimen lähdekoodin ja heti saatavilla:
Beetajulkaisu keskittyy tarkoituksella Environment Variables ‑merkintöihin ja rajattuihin API-avaimiin. Tämä pitää käyttöoikeudet kapeina, estää rajoittamattoman pääsyn holveihin ja tarjoaa käytännöllisen pohjan operatiivisten salaisuuksien turvalliseen hallintaan Terraformin kautta.