Store secrets in a dedicated secrets manager (e.g., Vault, AWS Secrets Manager), inject them at runtime, and rotate regularly. Avoid hardcoding, keep least-privilege access, and audit secret usage in CI/CD logs.
Advanced answer
Deep dive
Secrets should be short-lived, scoped, and auditable:
Use a secrets manager and fetch at runtime (not build time).
Use OIDC workload identity in CI to get temporary credentials.
Rotate keys, revoke on incident, and scan for leaked secrets.
Prevent secrets from appearing in logs or client bundles.
Examples
CI uses OIDC to request short-lived cloud credentials: