Fabric supports integration with Secrets Management services, with the intention of not storing secrets in Fabric itself. An example of a secret is a password that is used in interfaces, Environments and Fabric System Database as a way to enable communication with external systems. Click here for further information about secured storage of secrets in Fabric.
Secrets Management services are tools that aim to securely store, manage, access, and audit sensitive information, such as passwords, API keys, and other credentials, across the organization. The features included in Secrets Management services are encryption, access controls, auditing, and automatic rotation of secrets.
The advantages of Secrets Management are:
Fabric supports integration with various external Secrets Management providers, in which case Fabric does not store the secrets but rather their reference IDs.
These are the currently supported Secrets Management providers, along with their official webpages:
AWS Secret Manager - AWS Secret Manager
HashiCorp Vault - HashiCorp Vault
Azure Key Vault - Azure Key Vault
CyberArk CCP - CyberArk CCP
Google Cloud Secret Manager - Google Cloud Secret Manager
OneIdentity Safeguard - OneIdentity Safeguard
To use a Secrets Management provider, you should:
Each supported Secrets Management provider has a dedicated section in the config.ini file with all the required access and permission details.
In addition to populating these details, you must turn it on by setting the 'ENABLED' property to 'true' in the chosen Secrets Management provider section.
The following are the required config.ini file attributes for each Secrets Management provider:
Section name: [encryption_aws_sm] properties:
Authentication and authorization processes can be done by the service account associated with the server. This is an alternative to using an Access ID and an Access Key.
Section name: [encryption_hashicorp_sm]
The authentication within HashiCorp Vault is done by either tokens that can be used directly or using one of HashiCorp's other auth methods, in which case the token is dynamically generated.
Fabric supports two authentication methods:
Directly - where AUTH_TOKEN should be set.
When using this method, Fabric accesses the Vault URL with the token as the auth credentials to get the secret.
AppRole - which is based on the role that Fabric is associated to in the Vault.
When using the AppRole method, Fabric first accesses the approle URL to dynamically get a token, then uses the token as the auth credentials to get the secret. For this method, you should specify the following attributes:
Additionally, this parameter should be set:
Optional properties:
Fabric supports one of the following authentication methods for Azure Key Vault:
Section name: [encryption_azure_sm]
Section name: [encryption_cyberark_sm]
The authentication is done by using either an API key or user and password and accordingly, the following parameters have to be set:
Other parameters:
Section name: [encryption_gcp_sm]
The authentication is done by a credentials file:
Other parameters:
PROJECT_ID
LOCATION_ID (optional) - in case you use a regional secret manager.
Section name: [encryption_safeguard_sm]
The authentication is done by certifications and keys that should be applied.
For Studio to mark an interface's property needing to be taken from the Secrets Management provider, you should use the following pattern for its value:
${secretmanager:<secret-manager-id>}.
For example: ${secretmanager:mysql-password}.
Each Secret Manager service follows a specific pattern, usually a hierarchy (e.g., with a dot sign inside the key name); you should follow this pattern.
The Secrets Management service can also manage interface connection details in environments. Each environment and its interfaces are independent, so some environments, such as local testing, may use Secrets Management services, while others, such as local testing, might not.
When the Secrets Management service is activated, you can also use the Test connection option to validate the connection settings.
The Secrets Management provider can handle the following properties: host, user, and password for the DB interface types. For all other interfaces, all connection details properties can be set to use the Secrets Management provider.
Additional notes and considerations regarding specific Secrets Management providers:
The AppID parameter is optional and can be added for more granularity rather than a general AppID that can be set in the config.ini file.
The credentials of the Fabric System Database are configured in the config.ini and are encrypted by Fabric. You can also use one of the integrated Secret Managers to store these. The following parameters of the config.ini are supported for the System Database:
For example, a key-value convention of “system_db.[value]” would be configured as follows when configured in the Secret Manager and used in conjunction with the System Database. In this example, the SYSTEM_DB_HOST key does not use a Secret Manager to host its value.
An excerpt from the config.ini file is shown here.
## System DB to use for Fabric internal storage (SQLITE,POSTGRESQL,CASSANDRA). Default: CASSANDRA SYSTEM_DB_TYPE=POSTGRESQL SYSTEM_DB_HOST=10.21.2.94 SYSTEM_DB_PASSWORD=${secretmanager:system_db.SYSTEM_DB_PASSWORD} SYSTEM_DB_USER=${secretmanager:system_db.SYSTEM_DB_USER} SYSTEM_DB_PORT=5432 SYSTEM_DB_DATABASE=test
Fabric supports integration with Secrets Management services, with the intention of not storing secrets in Fabric itself. An example of a secret is a password that is used in interfaces, Environments and Fabric System Database as a way to enable communication with external systems. Click here for further information about secured storage of secrets in Fabric.
Secrets Management services are tools that aim to securely store, manage, access, and audit sensitive information, such as passwords, API keys, and other credentials, across the organization. The features included in Secrets Management services are encryption, access controls, auditing, and automatic rotation of secrets.
The advantages of Secrets Management are:
Fabric supports integration with various external Secrets Management providers, in which case Fabric does not store the secrets but rather their reference IDs.
These are the currently supported Secrets Management providers, along with their official webpages:
AWS Secret Manager - AWS Secret Manager
HashiCorp Vault - HashiCorp Vault
Azure Key Vault - Azure Key Vault
CyberArk CCP - CyberArk CCP
Google Cloud Secret Manager - Google Cloud Secret Manager
OneIdentity Safeguard - OneIdentity Safeguard
To use a Secrets Management provider, you should:
Each supported Secrets Management provider has a dedicated section in the config.ini file with all the required access and permission details.
In addition to populating these details, you must turn it on by setting the 'ENABLED' property to 'true' in the chosen Secrets Management provider section.
The following are the required config.ini file attributes for each Secrets Management provider:
Section name: [encryption_aws_sm] properties:
Authentication and authorization processes can be done by the service account associated with the server. This is an alternative to using an Access ID and an Access Key.
Section name: [encryption_hashicorp_sm]
The authentication within HashiCorp Vault is done by either tokens that can be used directly or using one of HashiCorp's other auth methods, in which case the token is dynamically generated.
Fabric supports two authentication methods:
Directly - where AUTH_TOKEN should be set.
When using this method, Fabric accesses the Vault URL with the token as the auth credentials to get the secret.
AppRole - which is based on the role that Fabric is associated to in the Vault.
When using the AppRole method, Fabric first accesses the approle URL to dynamically get a token, then uses the token as the auth credentials to get the secret. For this method, you should specify the following attributes:
Additionally, this parameter should be set:
Optional properties:
Fabric supports one of the following authentication methods for Azure Key Vault:
Section name: [encryption_azure_sm]
Section name: [encryption_cyberark_sm]
The authentication is done by using either an API key or user and password and accordingly, the following parameters have to be set:
Other parameters:
Section name: [encryption_gcp_sm]
The authentication is done by a credentials file:
Other parameters:
PROJECT_ID
LOCATION_ID (optional) - in case you use a regional secret manager.
Section name: [encryption_safeguard_sm]
The authentication is done by certifications and keys that should be applied.
For Studio to mark an interface's property needing to be taken from the Secrets Management provider, you should use the following pattern for its value:
${secretmanager:<secret-manager-id>}.
For example: ${secretmanager:mysql-password}.
Each Secret Manager service follows a specific pattern, usually a hierarchy (e.g., with a dot sign inside the key name); you should follow this pattern.
The Secrets Management service can also manage interface connection details in environments. Each environment and its interfaces are independent, so some environments, such as local testing, may use Secrets Management services, while others, such as local testing, might not.
When the Secrets Management service is activated, you can also use the Test connection option to validate the connection settings.
The Secrets Management provider can handle the following properties: host, user, and password for the DB interface types. For all other interfaces, all connection details properties can be set to use the Secrets Management provider.
Additional notes and considerations regarding specific Secrets Management providers:
The AppID parameter is optional and can be added for more granularity rather than a general AppID that can be set in the config.ini file.
The credentials of the Fabric System Database are configured in the config.ini and are encrypted by Fabric. You can also use one of the integrated Secret Managers to store these. The following parameters of the config.ini are supported for the System Database:
For example, a key-value convention of “system_db.[value]” would be configured as follows when configured in the Secret Manager and used in conjunction with the System Database. In this example, the SYSTEM_DB_HOST key does not use a Secret Manager to host its value.
An excerpt from the config.ini file is shown here.
## System DB to use for Fabric internal storage (SQLITE,POSTGRESQL,CASSANDRA). Default: CASSANDRA SYSTEM_DB_TYPE=POSTGRESQL SYSTEM_DB_HOST=10.21.2.94 SYSTEM_DB_PASSWORD=${secretmanager:system_db.SYSTEM_DB_PASSWORD} SYSTEM_DB_USER=${secretmanager:system_db.SYSTEM_DB_USER} SYSTEM_DB_PORT=5432 SYSTEM_DB_DATABASE=test