---
page_title: 'State: Sensitive Data'
description: Sensitive data in Terraform state.
---

# Sensitive Data in State

Terraform state can contain sensitive data, depending on the resources in use
and your definition of "sensitive." The state contains resource IDs and all
resource attributes. For resources such as databases, this may contain initial
passwords.

When using local state, state is stored in plain-text JSON files.

When using [remote state](/language/state/remote), state is only ever held in
memory when used by Terraform. It may be encrypted at rest, but this depends on
the specific remote state backend.

## Recommendations

If you manage any sensitive data with Terraform (like database passwords, user
passwords, or private keys), treat the state itself as sensitive data.

Storing state remotely can provide better security. As of Terraform 0.9,
Terraform does not persist state to the local disk when remote state is in use,
and some backends can be configured to encrypt the state data at rest.

For example:

- [Terraform Cloud](/cloud) always encrypts state at rest and
  protects it with TLS in transit. Terraform Cloud also knows the identity of
  the user requesting state and maintains a history of state changes. This can
  be used to control access and track activity. [Terraform Enterprise](/enterprise)
  also supports detailed audit logging.
- The S3 backend supports encryption at rest when the `encrypt` option is
  enabled. IAM policies and logging can be used to identify any invalid access.
  Requests for the state go over a TLS connection.
