Many integrations require granting Apono connector credentials to allow it to authenticate and connect. You can create secrets in different secrets managers (e.g. AWS, GCP, Azure) and specify them in the integration secret store. This allows the connector to safely and securely retrieve its credentials in order to connect to the desired integration resources.
Apono supports the following secret managers:
Use Apono to store your connector credentials for the desired integration resources.
Using the Apono secret store option is not recommended for production environments.
We suggest creating a secret in one of the supported cloud providers secret manager or in a Kubernetes secret. Storing secrets in a secret manager enables Apono to sync and provision cloud resources without the need to store credentials for a specific environment in Apono.
From your Integration configuration page expand Secret Store, click on the APONO tab and enter the required credentials information for the integration.
Use Kubernetes secret to store your connector credentials for the desired integration resources.
Apono connector installed in your Kubernetes cluster
Kubectl command-line interface
Run the following commands to create a secret from the Kubectl CLI.
Create the secret.
Label the secret with apono-connector-read:true
Give the Apono connector permissions to the secret:
Apono connector installed in your Kubernetes cluster
Terraform command-line interface
Use the following configuration to create a secret from the Terraform CLI.
From your Integration configuration page expand Secret Store, click on the Kubernetes tab and enter the required secret namespace and name.
Use AWS Secret Manager to store your connector credentials for the desired integration resources.
AWS role or user with SecretsManagerReadWrite
attached policy
AWS command-line interface
Run the following commands to create a secret from the AWS CLI.
AWS role or user with SecretsManagerReadWrite
attached policy.
Follow these steps to create a secret:
From the Secret Manager, click Store a new secret. The Choose secret type page appears.
Select Other type of secret.
Under Key/value pairs, enter your secret through one of the following approaches:
On the Key/value tab, enter your information in the two fields: key in the first field, value in the second field.
On the Plaintext tab, enter your secret in JSON key/value pairs.
Click Next. The Configure secret page appears.
Under Tags, click Add.
In the Key field, enter apono-connector-read.
In the Value field, enter true.
AWS role or user with SecretsManagerReadWrite
attached policy
Terraform command-line interface
Use the following configuration to create a secret from the Terraform CLI.
From your Integration configuration page expand Secret Store, click on the AWS tab and enter the required secret region and secret name.
Use Azure Key Vault to store your connector credentials for the desired integration resources.
Azure user with the following permission on the Key Vault:
For Azure Key Vault that configured with 'Azure role-based access control' permission model grant the user the Key Vault Secrets Officer
role.
For Azure Key Vault that configured with 'access policy' permission model create and grant the user an access policy with the following secret permissions (Secret Management Operations):
Get
Set
Azure command-line interface
Run the following commands to create a secret from the Azure CLI.
Azure user with the following permission on the Key Vault:
For Azure Key Vault that configured with 'Azure role-based access control' permission model grant the user the Key Vault Secrets Officer
role.
For Azure Key Vault that configured with 'access policy' permission model create and grant the user an access policy with the following secret permissions (Secret Management Operations):
Get
Set
Follow these steps to create a secret:
Navigate to your key vault in the Azure portal.
On the Key Vault left-hand sidebar, select Objects then select Secrets.
Select + Generate/Import.
On the Create a secret screen choose the following values:
Upload options: Manual.
Name: Type a name for the secret. The secret name must be unique within a Key Vault. The name must be a 1-127 character string, starting with a letter and containing only 0-9, a-z, A-Z, and -. For more information on naming, see Key Vault objects, identifiers, and versioning
Value: Type a value for the secret. Key Vault APIs accept and return secret values as strings.
Leave the other values to their defaults. Select Create.
Azure user with the following permission on the Key Vault:
For Azure Key Vault that configured with 'Azure role-based access control' permission model grant the user the Key Vault Secrets Officer
role.
For Azure Key Vault that configured with 'access policy' permission model create and grant the user an access policy with the following secret permissions (Secret Management Operations):
Get
Set
Terraform command-line interface
Use the following configuration to create a secret from the Terraform CLI.
From your Integration configuration page expand Secret Store, click on the Azure tab and enter the required secret key vault URL and secret nam
Use GCP Secret Manager to store your connector credentials for the desired integration resources.
GCP user with Secret Manager Admin
(roles/secretmanager.admin)
role.
Secret Manager API (enabled once per project)
gcloud command-line interface
Run the following commands to create a secret from the gcloud CLI.
GCP user with Secret Manager Admin
(roles/secretmanager.admin)
role.
Secret Manager API (enabled once per project)
Follow these steps to create a secret:
Go to the Secret Manager page in the Google Cloud console.
On the Secret Manager page, click Create Secret.
On the Create secret page, under Name, enter my-secret
.
In the Secret value field, enter my super secret data
.
Click the Create secret button.
GCP user with Secret Manager Admin
(roles/secretmanager.admin)
role.
Secret Manager API (enabled once per project)
Terraform command-line interface
Use the following configuration to create a secret from the Terraform CLI.
From your Integration configuration page expand Secret Store, click on the GCP tab and enter the required secret Project and secret ID.
Use HashiCorp Vault to store your connector credentials for the desired integration resources.
Required Apono connector version: 1.6.6
HashiCorp Vault token
Create token using:
You can use one of the following methods to create a secret in HashiCorp Vault to use in your integration.
Enable Secret Engine
If you did not set the VAULT_ADDR
, VAULT_NAMESPACE
, and VAULT_TOKEN
environment variables, refer to the steps in the Create a Vault Cluster on HCP tutorial.
Verify that the VAULT_NAMESPACE
environment variable is set to admin
.
If not, be sure to set it before you continue.
Enable key/value v2 secrets engine (kv-v2
) at secret/
.
Create New Secret
Store api-key
with value ABC0DEFG9876
at the path secret/test/webapp
.
Example output:
To verify, read back the secret at secret/test/webapp
.
Example output:
Enable Secret Engine
In the Vault UI, set the current namespace to admin/
.
Select Secrets engines.
Click Enable new engine.
Select KV from the list, and then click Next.
Enter secret
in the Path field.
Click Enable Engine to complete.
Now that you have a secret engine enabled, you will create a new secret.
Create New Secret
Click Create secret. Enter test/webapp
in the Path for this secret field.
Under the Secret data section, enter api-key
in the key field, and ABC0DEFG9876
in the value field. You can click on the sensitive information toggle to show or hide the entered secret values.
Update Apono Connector Configuration to Integrate with HashiCorp Vault
Define vault in your connector using:
environment variable: export HASHICORP_VAULT_CONFIG='[{"address":"http://HASHICORP_VAULT_URL","token":"HASHICORP_VAULT_TOKEN"}]'
Read from file (docker secrets/secret file mount into the container): export HASHICORP_VAULT_CONFIG_FILE_PATH="/path/to/vault/config.json"
To authenticate HashiCorp Vault with SSL/TLS client certificate you can use the following environment variable:
[{"address":"http://HASHICORP_VAULT_URL","token":"HASHICORP_VAULT_TOKEN", "ca_cert_base64": "BASE64_HASHICORP_VAULT"}]
To skip certificate verification use the following environment variable:
[{"address":"http://HASHICORP_VAULT_URL","token":"HASHICORP_VAULT_TOKEN", "skip_verify": "true"}]
Define HashiCorp Vault Fetch Secret Definition from Secret Manager
You can define HashiCorp vault to fetch secret definition from AWS, GCP, Azure or Kubernetes secret managers using the following environment variable:
From your Integration configuration page expand Secret Store, click on the HashiCorp tab and enter the required secret Secret engine and Secret path.