Zenn Dev Terraform Jp Articles Tf Write Only Attributes
Terraform v1.11 の Write-Only Attributes を試してみる
- URL: https://zenn.dev/terraform_jp/articles/tf-write-only-attributes
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Terraform v1.11 で導入された Write-Only Attributes は、tfstate に値を保存しない書き込み専用の属性であり、機密情報の平文漏洩という長年の課題を解消する。aws_ssm_parameter の value_wo を使うと、パスワード等の秘密値が apply 後の tfstate に残らないことを実際の出力で確認できる。変更を検知するには value_wo_version を一緒に更新する必要があり、その数値は任意の整数で構わない。Terraform Provider 側の実装次第でインターフェースが変わるため、他リソースでの採用状況は今後の動向を追う必要がある。
詳細
Terraform v1.11 の Write-Only Attributes とその動作検証
- 従来の sensitive 属性: plan/apply 時の表示はマスクされるが、tfstate には平文で保存されてしまう
- Write-Only Attributes: tfstate に値が保存されない書き込み専用属性。aws_ssm_parameter では value の代わりに value_wo を使用する
- plan 出力では (write-only attribute) と表示され、apply 後の tfstate では value_wo: null、value: "" となる(実際にSSMパラメータには正しく設定される)
- 変更検知の仕組み: value_wo_version という整数フィールドを一緒に更新しないと No changes. と判断される。数値は任意(0、負値でも動作)
- 検証環境: Terraform v1.11.0-beta2 + AWS Provider v5.87.0(2025/02/14リリース)
- 制約: 属性名の命名規則(_wo / _wo_version)はリソースごとに異なる場合があり、Provider 実装依存
- 関連機能: Terraform v1.10 の Ephemeral resources/values とあわせ、state に値を保存しないための機能が充実しつつある