Skip to main content
Solved

Managing Secrets & Environment Variables for Custom Python Scripts in Google SecOps SOAR IDE

  • June 24, 2026
  • 4 replies
  • 61 views

joaocarvalho
Forum|alt.badge.img+4

Hi everyone,

 

I am currently developing custom Jobs and scripts in the Google SecOps SOAR IDE using Python, and I'm facing an OpSec and architectural dilemma regarding credential management.

 

When I need to authenticate external API clients (like GCP Service Accounts, API tokens, or third-party platforms), the immediate path of least resistance is to hardcode these credentials directly into the script as dictionaries or string variables.

 

While the automation executes fine, hardcoding credentials in the IDE is obviously not a best practice. As it stands today, the only layer of security preventing exposure of these keys is the IAM role definitions controlling who has access to the SecOps IDE. This violates the principle of least privilege and defense in depth, as anyone viewing, reviewing, or exporting the code can read the sensitive material in clear text.

 

My questions are:

  1. Is there a native way to use "Environment Variables" or a built-in Secret Vault specifically for custom Python scripts/Jobs running via the SecOps IDE?
  2. What is the recommended architectural approach here? Can we leverage native SOAR Environment configurations, or is the standard practice to dynamically fetch these credentials from a tool like Google Secret Manager during runtime?

 

I am looking for a way to retrieve these credentials programmatically without exposing the raw values in the source code. Has anyone tackled this issue before or could point me toward the recommended best practice?

Thanks in advance!

Best answer by ar3diu

You can use job parameters and set the type to `Password`.

secret = siemplify.extract_job_param(param_name="Secret")

OR you can also use the new Secret Manager integration.

4 replies

ar3diu
Forum|alt.badge.img+11
  • Silver 2
  • Answer
  • June 25, 2026

You can use job parameters and set the type to `Password`.

secret = siemplify.extract_job_param(param_name="Secret")

OR you can also use the new Secret Manager integration.


joaocarvalho
Forum|alt.badge.img+4
  • Author
  • Bronze 2
  • June 25, 2026
That's true; I had never realized that using the parameter with the "password" type would make it behave like an environment variable and render it inaccessible after inclusion.Thanks for the help!

joaocarvalho
Forum|alt.badge.img+4
  • Author
  • Bronze 2
  • June 25, 2026

Just one more question: is it best practice to set the parameter value as the "default value," or to pass it only when I'm actually using the parameter—for example, in the "job scheduler"?


ar3diu
Forum|alt.badge.img+11
  • Silver 2
  • June 29, 2026

I would assume that the best practice is to add credentials only when creating a job instance. That way, your secrets aren't stored on the platform when you don't have any jobs configured.