hcp-vault-secrets
Python package to implement the Hashicorp Cloud Platform - Vault Secrets API
Description
Python package to implement the Hashicorp Cloud Platform - Vault Secrets API. In order for the code to function properly, we will need to set a few environment variables to provide authentication against the HCP API such that, we can retrieve the secret values containing sensitive information (i.e passwords, api_tokens, etc..) from various vault secret applications located within a given project. Please refer to the Package Requirements section for more information on the (4) required environment variables
You can find the organizationID and projectID in their respective settings tab in HCP. However, in order to get the clientID and clientSecret, you will need to navigate to the Projects -> <Project Name> -> Access Control (IAM) -> Service Principals tab within your organization. Create a service principal with the Contributer Role and generate keys. This will populate a clientID and clientSecret that the code will use to authenticate to the HCP API
Installation
pip install hcp-vault-secrets
Package Requirements
Packages
pip install requests
Environment Variables
-
clientID: This is the clientID that is associated with the service principal in HashiCorp Cloud Platform.
-
clientSecret: This is the clientSecret that is associated with the service principal in HashiCorp Cloud Platform.
-
organizationID: The HashiCorp Cloud Platform organization ID that owns the Vault Secrets application
-
projectID: The HashiCorp Cloud Platform project ID where the Vault Secrets application is located
Hashicorp Cloud Platform (HCP)
HCP Topology
- Organization -> Project(s) -> Service(s) [e.g Vault Secrets] -> Application -> Key/Value (secret)

How to use
Create Hashicorp Cloud Platform Instance
# import hcp_vault_secrets package
import hcp_vault_secrets.vaultsecrets as vaultsecrets
# create hcp instance
hcp = vaultsecrets.vaultsecrets()
API ENDPOINTS Implemented
/apps/{app_name}/open/{secret_name}
GET
Path Parameters
| appName | string | The name of the vault secrets application where the key is stored | True |
| secretName | string | The name of the secrets' key you want to retrieve | True |
EXAMPLES
import hcp_vault_secrets.vaultsecrets as vaultsecrets
# create hcp instance
hcp = vaultsecrets.vaultsecrets()
# get the secret named "token" from the "assisted-installer" vault secrets application
# return type is <str>
token = hcp.getAppSecret(appName="assisted-installer", secretName="token")
# get the secret named "pull_secret" from the "assisted-installer" vault secrets application
# return type is <str>
pull_secret = hcp.getAppSecret(appName="assisted-installer", secretName="pull_secret")
# get the secret named "password" from the "proxmox" vault secrets application (in the same project)
# return type is <str>
prox = hcp.getAppSecret("proxmox", "password")
References