Skip to main content

Secrets and Configuration

Separate secret-classified values from ordinary environment configuration and assign an owner to both. Documentation should describe purpose and ownership without containing real secret values.

Classification

TypeExamplesHandling
SecretAPI key, OAuth client secret, signing key, passwordApproved secret store, restricted access, rotation
Connection stringDatabase or provider connection containing credentialsTreat as a secret even when generated by infrastructure
Sensitive identifierTenant, subscription, internal endpoint, account identifierControlled documentation and environment-specific validation
ConfigurationFeature flag, model deployment name, sender address, timeoutVersioned configuration with review and validation

Mandatory Controls

  • Never place real secrets in documentation, tickets, chat, email, screenshots, source control, or deployment reports.
  • Store production secrets in Azure Key Vault or the customer-approved secret manager.
  • Prefer managed identity over credentials where supported.
  • Separate environments and prevent test credentials from reaching production.
  • Give every credential an owner, purpose, allowed consumers, creation date, and rotation or expiry rule.
  • Rotate credentials after suspected exposure, owner departure, provider policy change, or agreed maximum age.
  • Validate customer-specific endpoints, tenants, senders, and model deployments before go-live.
  • Log secret access events without logging secret values.

Handover Inventory

The customer-safe inventory should list the configuration category, purpose, owning service, source of value, sensitivity class, owner, rotation method, and validation status. It should not expose repository paths, local build paths, raw deployment output, or the secret-store value itself.

Include credential rotation and emergency revocation in Incident Response.