Không.
Nó chỉ che giá trị trong output và log, hiện ra (sensitive value). State vẫn lưu plaintext.
hcl
variable "db_password" { type = string, sensitive = true }
output "endpoint" { value = aws_db_instance.main.address }
# terraform output -json van in ra duoc gia tri thatĐây là hiểu nhầm rất phổ biến và là nguyên nhân nhiều vụ leak: team tưởng đánh dấu là đủ rồi để state bucket cho cả công ty đọc.
Cách xử lý secret tốt hơn, theo thứ tự ưu tiên:
1. Cho dịch vụ tự sinh — manage_master_user_password = true để AWS giữ trong Secrets Manager, Terraform chỉ giữ ARN.
2. Đọc động lúc apply bằng data "aws_secretsmanager_secret_version".
3. Tạo resource bằng Terraform nhưng set giá trị secret bằng tool khác.
Chỗ leak hay gặp nhất là log CI: bật TF_LOG=DEBUG để debug sẽ in ra thứ mà output bình thường đã che, và log CI thường được giữ rất lâu.