--- layout: docs page_title: Credential resource description: >- Learn about using the credential resource to define secrets for a host. Understand username password, SSH private key, SSH certificate, and JSON credential types. --- ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ > [!IMPORTANT] > **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com. ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ # Credentials A credential is a data structure containing one or more secrets that binds an identity to a set of permissions or capabilities on a [host][] for a [session][]. Optionally, credentials can be typed to indicate compliance with a specific format. The following credential types are supported in Boundary: - [Username password](#username-password) - [Username password domain](#username-password-domain) - [SSH private key](#ssh-private-key) - [SSH certificate](#ssh-certificate) - [JSON](#json) ## Username password `username_password` credentials contain the following fields: - `username` - The username field associated with the credential. - `password` - The password field associated with the credential. ## Username password domain `username_password_domain` credentials contain the following fields: - `username` - The username field associated with the credential. - `password` - The password field associated with the credential. - `domain` - The domain field associated with the credential. ## SSH private key `ssh_private_key` credentials contain the following fields: - `username` - The username field associated with the credential. - `private_key` - The private key field associated with the credential. ## SSH certificate `ssh_certificate` credentials contain the following fields: - `username` - The username field associated with the credential. - `ssh_certificate` - The SSH certificate associated with the credential. ## JSON You can provide credentials using a JSON blob. JSON credentials are only brokered to users that connect to machines. There is no required structure for the JSON blob, other than it must be a key value map. Refer to the example below: ```JSON { "type": "service_account", "project_id": "", "private_key_id": "", "private_key": "-----BEGIN PRIVATE KEY----------END PRIVATE KEY-----\n", "client_email": "", "client_id": "", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "" } ``` ## Referenced by - [Credential store][] - [Credential library][] - [Session][] - [Target][] [credential library]: /boundary/docs/domain-model/credential-libraries [credential libraries]: /boundary/docs/domain-model/credential-libraries [credential store]: /boundary/docs/domain-model/credential-stores [credential stores]: /boundary/docs/domain-model/credential-stores [host]: /boundary/docs/domain-model/hosts [session]: /boundary/docs/domain-model/sessions [target]: /boundary/docs/domain-model/targets