Skip to main content

CyberArk Secrets Manager Self-Hosted Integration

ggscout supports integration with CyberArk Secrets Manager Self-Hosted (Conjur Enterprise and OSS) to collect and monitor your secrets. This guide will help you set up and configure the integration.

Supported Features

  • Multiple secret versions collection
  • User and API authentication
  • Self-hosted server configuration
  • Account-based access

Configuration

The following table lists the available configuration options for ggscout when integrating with CyberArk Secrets Manager Self-Hosted:

ParameterDescriptionRequiredDefault Value
typeMust be set to "cyberarkselfhosted"Yes
server_urlThe URL of your self-hosted CyberArk Secrets Manager serverYes
accountThe Conjur account nameYes
auth_modeAuthentication mode (one of: "user", "api")Yes
fetch_all_versionsWhether to collect all versions of secretsYes
accept_invalid_certsAccept invalid/self-signed certificates (for development only)Nofalse
modeIntegration mode (one of: "read", "write", "read/write")No"read"
envEnvironment label for categorizing secrets (e.g., "production", "staging", "development")No
includeList of path patterns to include in secret collectionNo
excludeList of path patterns to exclude from secret collectionNo

With additional parameters depending on the chosen authentication mode:

For User Authentication:

ParameterDescriptionRequiredDefault Value
usernameUsername for authenticationYes
passwordPassword for authenticationYes

For API Authentication:

ParameterDescriptionRequiredDefault Value
loginLogin identity (including host/ prefix for workloads)Yes
api_keyAPI key for authenticationYes

Authentication

ggscout supports two authentication methods for CyberArk Secrets Manager Self-Hosted:

User Authentication

Use this method when authenticating with a username and password:

[sources.cyberarkselfhosted]
type = "cyberarkselfhosted"
server_url = "https://conjur.example.com"
account = "myorg"
auth_mode = "user"
username = "${CONJUR_USERNAME}"
password = "${CONJUR_PASSWORD}"
fetch_all_versions = true
mode = "read"
env = "production"

[[sources.cyberarkselfhosted.include]]
resource_ids = ["app/*", "database/*", "api-key"]

[[sources.cyberarkselfhosted.exclude]]
resource_ids = ["test/*", "temp/*", "old-secret"]

API Authentication

Use this method when authenticating with an API key and login identity. This is the recommended approach for workloads:

[sources.cyberarkselfhosted]
type = "cyberarkselfhosted"
server_url = "https://conjur.example.com"
account = "myorg"
auth_mode = "api"
login = "${CONJUR_LOGIN}"
api_key = "${CONJUR_API_KEY}"
fetch_all_versions = true
mode = "read"
env = "production"

[[sources.cyberarkselfhosted.include]]
resource_ids = ["app/*", "database/*", "api-key"]

[[sources.cyberarkselfhosted.exclude]]
resource_ids = ["test/*", "temp/*", "old-secret"]
tip

For host/workload authentication, the login parameter should include the host/ prefix followed by the host identity path. For example: host/myapp/production/ggscout.

Self-Signed Certificates

If your self-hosted CyberArk Secrets Manager uses self-signed certificates, you can disable certificate verification for development environments:

[sources.cyberarkselfhosted]
type = "cyberarkselfhosted"
server_url = "https://conjur.example.com"
account = "myorg"
auth_mode = "api"
login = "${CONJUR_LOGIN}"
api_key = "${CONJUR_API_KEY}"
fetch_all_versions = true
accept_invalid_certs = true # Only for development!
warning

Setting accept_invalid_certs = true disables TLS certificate verification. This should only be used in development environments, never in production.

Include and Exclude Patterns

You can control which secrets are collected using include and exclude patterns:

[sources.cyberarkselfhosted]
type = "cyberarkselfhosted"
server_url = "https://conjur.example.com"
account = "myorg"
auth_mode = "api"
login = "${CONJUR_LOGIN}"
api_key = "${CONJUR_API_KEY}"
fetch_all_versions = true

# Only collect secrets matching these patterns
[[sources.cyberarkselfhosted.include]]
resource_ids = ["production/*", "shared/*"]

# Exclude secrets matching these patterns
[[sources.cyberarkselfhosted.exclude]]
resource_ids = ["test-*", "temp-*"]

Write Mode

To enable secret synchronization (writing secrets back to CyberArk Secrets Manager Self-Hosted), set the mode to read/write or write:

[sources.cyberarkselfhosted]
type = "cyberarkselfhosted"
server_url = "https://conjur.example.com"
account = "myorg"
auth_mode = "api"
login = "${CONJUR_LOGIN}"
api_key = "${CONJUR_API_KEY}"
fetch_all_versions = true
mode = "read/write"
note

The identity must have update privileges on the target variables to write secrets.