CyberArk Secrets Manager - Retrieve Secrets (JWT)

Octopus.Script exported 2025-05-21 by gl-johnson belongs to ‘CyberArk’ category.

This step retrieves one or more secrets from CyberArk Secrets Manager and creates sensitive output variables for each value retrieved. It uses the JWT authenticator in Secrets Manager in combination with a Generic OIDC Account configured in Octopus to authenticate the workload.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Secrets Manager URL

CyberArk.SecretsManager.Url =

The URL of the Secrets Manager instance.

Secrets Manager Account

CyberArk.SecretsManager.Account = conjur

The Secrets Manager account.

Authenticator Service ID

CyberArk.SecretsManager.ServiceId = octopus

The service ID of the authn-jwt instance to be used for authentication to Secrets Manager.

OIDC Account

CyberArk.SecretsManager.Jwt =

The Generic OIDC Account configured in Octopus to generate JWT credentials for workload authentication to Secrets Manager.

Secrets Manager Variables

CyberArk.SecretsManager.Variables =

Specify the names of the secrets to be returned from Secrets Manager, in the format:

VariableID | OutputVariableName where:

  • VariableID is the Variable ID of the secret to be retrieved from Secrets Manager.
  • OutputVariableName is the optional Octopus output variable name to store the secret’s value in. If this value isn’t specified, an output name will be generated dynamically based on the Variable ID.

Note: Multiple Variable IDs can be retrieved by entering each one on a new line.

Trusted Server Certificate (Optional)

CyberArk.SecretsManager.Certificate =

CA bundle or server certificate to establish a trusted TLS connection with Secrets Manager.

You can also use this to trust self-signed certificates.

CyberArk.SecretsManager.PrintVariableNames = False

Write out the Octopus output variable names to the task log.

Script body

Steps based on this template will execute the following Python script.

import subprocess
import sys
import tempfile

# Install Conjur SDK
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'conjur-api', '--disable-pip-version-check'])
subprocess.check_call([sys.executable, '-m', 'pip', 'install', 'async-timeout', '--disable-pip-version-check'])

# Conjur SDK imports
from conjur_api.models import SslVerificationMode, ConjurConnectionInfo
from conjur_api.providers import JWTAuthenticationStrategy
from conjur_api import Client
from conjur_api.errors.errors import HttpStatusError

# Fetch configuration values
def retrieve_inputs():
    inputs = {}
    inputs["service_id"] = get_octopusvariable('CyberArk.SecretsManager.ServiceId')
    inputs["account"] = get_octopusvariable('CyberArk.SecretsManager.Account')
    inputs["url"] = get_octopusvariable('CyberArk.SecretsManager.Url')
    inputs["token"] = get_octopusvariable('CyberArk.SecretsManager.Jwt.OpenIdConnect.Jwt')
    inputs["variables"] = get_octopusvariable('CyberArk.SecretsManager.Variables')
    inputs["ca_bundle"] = get_octopusvariable('CyberArk.SecretsManager.Certificate')
    inputs["print_outputs"] = get_octopusvariable('CyberArk.SecretsManager.PrintVariableNames')
    return inputs

# Validate the required inputs are not empty
def validate_inputs(inputs):
    if not inputs["service_id"]:
        raise ValueError("Service ID is required.")
    if not inputs["account"]:
        raise ValueError("Account is required.")
    if not inputs["url"]:
        raise ValueError("Conjur URL is required.")
    if not inputs["token"]:
        raise ValueError("JWT token is required.")
    if not inputs["variables"]:
        raise ValueError("At least one variable must be specified.")

# Parse the requested input/output variables
# If no output variable name is provided, the Conjur var ID will be used
def parse_variables(variables):
    var_map = {}
    for line_number, line in enumerate(variables.strip().splitlines(), start=1):
        line = line.strip()
        if not line:
            continue

        parts = [part.strip() for part in line.split('|')]
        input_var = parts[0]
        if len(parts) == 1:
            output_var = input_var
        elif len(parts) == 2:
            output_var = parts[1]
        else:
            raise ValueError(f"Variables line {line_number} has too many '|' characters: '{line}'")

        # Basic validations
        if not input_var:
            raise ValueError(f"Variables line {line_number} is missing an input variable name: '{line}'")
        if ' ' in input_var or ' ' in output_var:
            raise ValueError(f"Variables line {line_number} has illegal spaces in a variable name: '{line}'")

        # Warn if any duplicate output vars exist
        if output_var in var_map.values():
            print(f"WARN: Two or more secrets mapped to the same output variable: `{output_var}`. The earlier value will be overwritten.")
        var_map[input_var] = output_var
    return var_map

# Configure a Conjur client for JWT authentication
def create_conjur_client(inputs):
    ssl_verification_mode = SslVerificationMode.TRUST_STORE
    cert_file = None
    # If a server certificate or CA was provided, use that instead of the default trust store
    if inputs["ca_bundle"]:
        with tempfile.NamedTemporaryFile(mode='w', delete=False) as temp_cert_file:
            temp_cert_file.write(inputs["ca_bundle"])
            cert_file = temp_cert_file.name
        ssl_verification_mode = SslVerificationMode.CA_BUNDLE

    connection_info = ConjurConnectionInfo(conjur_url=inputs["url"],
                                           account=inputs["account"],
                                           service_id=inputs["service_id"],
                                           cert_file=cert_file)
    jwt_provider = JWTAuthenticationStrategy(inputs["token"])
    return Client(connection_info,
                    authn_strategy=jwt_provider,
                    ssl_verification_mode=ssl_verification_mode,
                    async_mode=False)

# Retrieve requested secrets from Conjur and set them as sensitive Octopus variables
def retrieve_secrets(var_map, client, inputs):
    variable_ids = list(var_map.keys())
    print(f"INFO: Attempting to authenticate and retrieve {len(variable_ids)} secrets...")
    try:
        retrieval_response = client.get_many(*variable_ids)
    except HttpStatusError as e:
        if e.response is not None:
            if e.status == 401:
                print("ERROR: Authentication failed. Please validate the JWT and authenticator configuration.")
            elif e.status == 403:
                print("ERROR: Access denied. Please ensure the role has permissions to access the requested variables.")
            elif e.status == 404:
                print("ERROR: One or more requested variables not found.")
        raise

    print("INFO: Successfully retrieved secrets.")

    # Set the output variables
    for input_var, output_var in var_map.items():
        if input_var in retrieval_response:
            set_octopusvariable(output_var, retrieval_response[input_var], True)

    # Print a list output variable names if requested
    if inputs["print_outputs"]:
        output_var_names = list(dict.fromkeys(var_map.values()))
        print(f"INFO: Populated sensitive output variables: {', '.join(output_var_names)}")

# Main execution starts here - this has to be inline to run in the Octopus environment
inputs = retrieve_inputs()
validate_inputs(inputs)
var_map = parse_variables(inputs["variables"])
client = create_conjur_client(inputs)
retrieve_secrets(var_map, client, inputs)

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "4b30f084-fb30-4c12-b0c4-0cd4eab05793",
  "Name": "CyberArk Secrets Manager - Retrieve Secrets (JWT)",
  "Description": "This step retrieves one or more secrets from CyberArk Secrets Manager and creates sensitive output variables for each value retrieved. It uses the JWT authenticator in Secrets Manager in combination with a Generic OIDC Account configured in Octopus to authenticate the workload.",
  "Version": 1,
  "ExportedAt": "2025-05-21T14:32:50.303Z",
  "ActionType": "Octopus.Script",
  "Author": "gl-johnson",
  "Packages": [],
  "Parameters": [
    {
      "Id": "e750e1fc-3ffc-40cb-9d74-a2519d5451c1",
      "Name": "CyberArk.SecretsManager.Url",
      "Label": "Secrets Manager URL",
      "HelpText": "The URL of the Secrets Manager instance.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "68b8272e-17e4-46ee-8042-09780a763530",
      "Name": "CyberArk.SecretsManager.Account",
      "Label": "Secrets Manager Account",
      "HelpText": "The Secrets Manager account.",
      "DefaultValue": "conjur",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "8ac15e8c-ba7f-4b20-8329-52df64f69729",
      "Name": "CyberArk.SecretsManager.ServiceId",
      "Label": "Authenticator Service ID",
      "HelpText": "The service ID of the authn-jwt instance to be used for authentication to Secrets Manager.",
      "DefaultValue": "octopus",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "42d42fe0-6d39-4970-be62-8ad34f611462",
      "Name": "CyberArk.SecretsManager.Jwt",
      "Label": "OIDC Account",
      "HelpText": "The Generic OIDC Account configured in Octopus to generate JWT credentials for workload authentication to Secrets Manager.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "GenericOidcAccount"
      }
    },
    {
      "Id": "fe47f2ea-efa9-4468-b837-79a52ce3c22e",
      "Name": "CyberArk.SecretsManager.Variables",
      "Label": "Secrets Manager Variables",
      "HelpText": "Specify the names of the secrets to be returned from Secrets Manager, in the format:\n\n`VariableID | OutputVariableName` where:\n\n* VariableID is the Variable ID of the secret to be retrieved from Secrets Manager.\n* OutputVariableName is the optional Octopus output variable name to store the secret's value in. If this value isn't specified, an output name will be generated dynamically based on the Variable ID.\n\n**Note:** Multiple Variable IDs can be retrieved by entering each one on a new line.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "MultiLineText"
      }
    },
    {
      "Id": "8f8672c4-4e93-44b0-b7a7-ecf77e45f919",
      "Name": "CyberArk.SecretsManager.Certificate",
      "Label": "Trusted Server Certificate (Optional)",
      "HelpText": "CA bundle or server certificate to establish a trusted TLS connection with Secrets Manager.\n\nYou can also use this to trust self-signed certificates.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "MultiLineText"
      }
    },
    {
      "Id": "5ae5bb25-5f20-46d9-af93-90a493f75123",
      "Name": "CyberArk.SecretsManager.PrintVariableNames",
      "Label": "Print output variable names",
      "HelpText": "Write out the Octopus output variable names to the task log.",
      "DefaultValue": "False",
      "DisplaySettings": {
        "Octopus.ControlType": "Checkbox"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "Python",
    "Octopus.Action.Script.ScriptBody": "import subprocess\nimport sys\nimport tempfile\n\n# Install Conjur SDK\nsubprocess.check_call([sys.executable, '-m', 'pip', 'install', 'conjur-api', '--disable-pip-version-check'])\nsubprocess.check_call([sys.executable, '-m', 'pip', 'install', 'async-timeout', '--disable-pip-version-check'])\n\n# Conjur SDK imports\nfrom conjur_api.models import SslVerificationMode, ConjurConnectionInfo\nfrom conjur_api.providers import JWTAuthenticationStrategy\nfrom conjur_api import Client\nfrom conjur_api.errors.errors import HttpStatusError\n\n# Fetch configuration values\ndef retrieve_inputs():\n    inputs = {}\n    inputs[\"service_id\"] = get_octopusvariable('CyberArk.SecretsManager.ServiceId')\n    inputs[\"account\"] = get_octopusvariable('CyberArk.SecretsManager.Account')\n    inputs[\"url\"] = get_octopusvariable('CyberArk.SecretsManager.Url')\n    inputs[\"token\"] = get_octopusvariable('CyberArk.SecretsManager.Jwt.OpenIdConnect.Jwt')\n    inputs[\"variables\"] = get_octopusvariable('CyberArk.SecretsManager.Variables')\n    inputs[\"ca_bundle\"] = get_octopusvariable('CyberArk.SecretsManager.Certificate')\n    inputs[\"print_outputs\"] = get_octopusvariable('CyberArk.SecretsManager.PrintVariableNames')\n    return inputs\n\n# Validate the required inputs are not empty\ndef validate_inputs(inputs):\n    if not inputs[\"service_id\"]:\n        raise ValueError(\"Service ID is required.\")\n    if not inputs[\"account\"]:\n        raise ValueError(\"Account is required.\")\n    if not inputs[\"url\"]:\n        raise ValueError(\"Conjur URL is required.\")\n    if not inputs[\"token\"]:\n        raise ValueError(\"JWT token is required.\")\n    if not inputs[\"variables\"]:\n        raise ValueError(\"At least one variable must be specified.\")\n\n# Parse the requested input/output variables\n# If no output variable name is provided, the Conjur var ID will be used\ndef parse_variables(variables):\n    var_map = {}\n    for line_number, line in enumerate(variables.strip().splitlines(), start=1):\n        line = line.strip()\n        if not line:\n            continue\n\n        parts = [part.strip() for part in line.split('|')]\n        input_var = parts[0]\n        if len(parts) == 1:\n            output_var = input_var\n        elif len(parts) == 2:\n            output_var = parts[1]\n        else:\n            raise ValueError(f\"Variables line {line_number} has too many '|' characters: '{line}'\")\n\n        # Basic validations\n        if not input_var:\n            raise ValueError(f\"Variables line {line_number} is missing an input variable name: '{line}'\")\n        if ' ' in input_var or ' ' in output_var:\n            raise ValueError(f\"Variables line {line_number} has illegal spaces in a variable name: '{line}'\")\n\n        # Warn if any duplicate output vars exist\n        if output_var in var_map.values():\n            print(f\"WARN: Two or more secrets mapped to the same output variable: `{output_var}`. The earlier value will be overwritten.\")\n        var_map[input_var] = output_var\n    return var_map\n\n# Configure a Conjur client for JWT authentication\ndef create_conjur_client(inputs):\n    ssl_verification_mode = SslVerificationMode.TRUST_STORE\n    cert_file = None\n    # If a server certificate or CA was provided, use that instead of the default trust store\n    if inputs[\"ca_bundle\"]:\n        with tempfile.NamedTemporaryFile(mode='w', delete=False) as temp_cert_file:\n            temp_cert_file.write(inputs[\"ca_bundle\"])\n            cert_file = temp_cert_file.name\n        ssl_verification_mode = SslVerificationMode.CA_BUNDLE\n\n    connection_info = ConjurConnectionInfo(conjur_url=inputs[\"url\"],\n                                           account=inputs[\"account\"],\n                                           service_id=inputs[\"service_id\"],\n                                           cert_file=cert_file)\n    jwt_provider = JWTAuthenticationStrategy(inputs[\"token\"])\n    return Client(connection_info,\n                    authn_strategy=jwt_provider,\n                    ssl_verification_mode=ssl_verification_mode,\n                    async_mode=False)\n\n# Retrieve requested secrets from Conjur and set them as sensitive Octopus variables\ndef retrieve_secrets(var_map, client, inputs):\n    variable_ids = list(var_map.keys())\n    print(f\"INFO: Attempting to authenticate and retrieve {len(variable_ids)} secrets...\")\n    try:\n        retrieval_response = client.get_many(*variable_ids)\n    except HttpStatusError as e:\n        if e.response is not None:\n            if e.status == 401:\n                print(\"ERROR: Authentication failed. Please validate the JWT and authenticator configuration.\")\n            elif e.status == 403:\n                print(\"ERROR: Access denied. Please ensure the role has permissions to access the requested variables.\")\n            elif e.status == 404:\n                print(\"ERROR: One or more requested variables not found.\")\n        raise\n\n    print(\"INFO: Successfully retrieved secrets.\")\n\n    # Set the output variables\n    for input_var, output_var in var_map.items():\n        if input_var in retrieval_response:\n            set_octopusvariable(output_var, retrieval_response[input_var], True)\n\n    # Print a list output variable names if requested\n    if inputs[\"print_outputs\"]:\n        output_var_names = list(dict.fromkeys(var_map.values()))\n        print(f\"INFO: Populated sensitive output variables: {', '.join(output_var_names)}\")\n\n# Main execution starts here - this has to be inline to run in the Octopus environment\ninputs = retrieve_inputs()\nvalidate_inputs(inputs)\nvar_map = parse_variables(inputs[\"variables\"])\nclient = create_conjur_client(inputs)\nretrieve_secrets(var_map, client, inputs)\n"
  },
  "Category": "CyberArk",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/cyberark-secretsmanager-retrieve-secrets-jwt.json",
  "Website": "/step-templates/4b30f084-fb30-4c12-b0c4-0cd4eab05793",
  "Logo": "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f/rT5pgoL6KI/Pa3vz322GNvv/32BCiq+vnPfz7BSi6XW7JkyQ033FA2SeXjJMqgp6fnm9/8pqrW1tYC+MlPfnLyyScnyEg+lkqlkj+3YciSYz7zzDOnn376r3/9a2vt5h5eLpdLFO0OmrPNbVMYhsnvt30EZn711VfPOeecH/7whwmd473fMhb7JyiaO5983ecbw9EN1FTHTbU8vM6OHtZlGm97/A0gpGTO9KZftYoUHCBBylJjIzcPo6YGNNWjuZ6aaml4nhrz1FxHzXW2KR8050xjrifbNOOd2n/6X89++zePFsiSOkmK3KBKAsDkajGi3jbVcWOtaa5F08hsugEQuF5jg1sfmnPjnxcGe+3JI5gbM8HIujA7knq7f/utj5555NQ4ihOrNWbMmLPOOuuss84aN25cYj3sIKfnl7/85eWXX26MyeVyvb29uVzuxBNPPPTQQ/fZZ58wDJctW/bcc88988wzra2txpi2trarr776gx/84NixYxPEfOtb35oxY8ayZcuMMT/96U8/+tGPHnfccWXEJMttjPnZz342c+bMfD7f1dV15plnfulLXyqb1OTPRFOWSqWGhoZzzjnHWpt8oOxRdXV1Pf3008kW1zl3xRVXHHroodOmTRvk2CXKwzlXU1Nz2GGHJdewRYgYY7q6ukaNGrW521R2ns4///x8Pj/IlY7j+LXXXpszZ04QBM65q6++esqUKRdccMHmyn5AT4ix4WsrWv84cw3VjPFRSSlI3C5xHg31d76y4J/PPnDvEfVe/KbFiSrkoQoQeVUfqStAHSiZCQqwL7eFdmQBhnOgDNcPN/mmGx+Y15BPfevCD5IrElmwCEGAWC187L1TcQwLEVEApTCbeeq1lVf+19/c2JEwHegTUEYzoa5ecP2l0z/2gb174jhtOHmpkiVKVib5qy2bJ2vto48+evnllycGpbe395JLLrnyyisPOOCAyvf4y1/+8tKlS//jP/7j+uuvnzhx4t133z127NhEaUVRNH78+Guvvfbiiy9O/vqtb33r0UcfzWazybubeG+zZs36wQ9+QETd3d11dXXXXnttKpUqlUrJnmCQU7LXXnvddNNNuVxu0OMkosWLF1911VX33ntvEASlUumOO+6YNm3aFkGjqvvuu+8999yTz+fL3tgWNwHJVrfyA2WnLZ1O//CHP5w0aVIldssov/HG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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Wednesday, May 21, 2025