2021-06-25 15:31:10 -04:00
---
layout: docs
2024-12-04 11:01:09 -05:00
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.
2021-06-25 15:31:10 -04:00
---
# Credentials
2023-02-03 16:25:08 -05:00
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][].
2021-06-25 15:31:10 -04:00
2023-02-03 16:25:08 -05:00
## Credential types
2021-06-25 15:31:10 -04:00
2023-02-03 16:25:08 -05:00
Optionally, credentials can be typed to indicate compliance with a specific format.
The following credential types are supported in Boundary:
2022-06-22 00:37:49 -06:00
2023-02-03 16:25:08 -05:00
- [Username password](#username-password)
- [SSH private key](#ssh-private-key)
- [SSH certificate](#ssh-certificate)
- [JSON](#json)
2022-06-22 00:37:49 -06:00
2023-02-03 16:25:08 -05:00
### Username password
2022-06-22 00:37:49 -06:00
2022-07-25 10:12:10 -07:00
`username_password` credentials contain the following fields:
- `username` - The username field associated with the credential.
- `password` - The password field associated with the credential.
2023-02-03 16:25:08 -05:00
### SSH private key
2022-07-25 10:12:10 -07:00
`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.
2022-06-22 00:37:49 -06:00
2023-02-03 16:25:08 -05:00
### 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
As of Boundary 0.11.0, you can provide credentials using a JSON blob.
JSON credentials are only brokered to users that connect to machines.
2023-02-06 12:37:38 -05:00
There is no required structure for the JSON blob, other than it must be a key value map.
Refer to the example below:
<CodeBlockConfig heading="JSON credentials blob example">
```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": ""
}
```
</CodeBlockConfig>
2023-02-03 16:25:08 -05:00
## Referenced by
2021-06-25 15:31:10 -04:00
- [Credential Store][]
- [Credential Library][]
- [Session][]
2023-01-10 13:43:22 -05:00
- [Target][]
2021-06-25 15:31:10 -04:00
2023-01-20 18:17:34 -05:00
[credential library]: /boundary/docs/concepts/domain-model/credential-libraries
[credential libraries]: /boundary/docs/concepts/domain-model/credential-libraries
[credential store]: /boundary/docs/concepts/domain-model/credential-stores
[credential stores]: /boundary/docs/concepts/domain-model/credential-stores
[host]: /boundary/docs/concepts/domain-model/hosts
[session]: /boundary/docs/concepts/domain-model/sessions
[target]: /boundary/docs/concepts/domain-model/targets