SOC 2 Control Implementation Guide

Logical Access

Secrets and Service Credential Management for SOC 2

Service accounts, API keys, tokens, certificates, automation credentials, and privileged secrets are inventoried where feasible, least-privileged, protected, rotated or reviewed based on risk, and removed when no longer required.

Use this guide to put the control into operation, decide what records to retain, and check that an auditor can trace the evidence back to the work your team performed.

Maintained by GreenHat Security · Reviewed August 21, 2026

What this control should accomplish

Service accounts, API keys, tokens, certificates, automation credentials, and privileged secrets have known owners, constrained permissions, protected storage, monitored use, and a reliable retirement path.

First SOC 2 program

A credible starting point

Place production secrets in a managed secrets service, stop committing credentials to source control or build settings, assign an owner to every machine identity, separate credentials by service and environment, and scan repositories for exposed values.

As the company scales

Make it repeatable

Prefer workload identity and short-lived credentials, automate rotation and certificate renewal, centralize machine-identity inventory, detect stale or unusual use, and make revocation part of service and employee lifecycle workflows.

How to implement Secrets and Service Credential Management

  1. 1

    Discover machine identities and secrets

    Scan source, delivery settings, cloud accounts, application runtimes, integrations, and certificate stores for credentials and machine identities, including values that are no longer referenced.

    You should end up with: An initial secret and service-identity inventory with location, purpose, environment, and last-known use.

  2. 2

    Assign owners and risk

    Record the service owner, target systems, permissions, exposure impact, creation method, expiry or review date, and approved consumers for each active identity.

    You should end up with: An accountable inventory that highlights unknown owners, broad privilege, and long-lived credentials.

  3. 3

    Protect storage and delivery

    Move secrets into a managed service, restrict read and administration permissions, inject values only at runtime, mask them from logs, and separate production from nonproduction.

    You should end up with: Secrets-service configuration and access policies showing controlled retrieval and environment separation.

  4. 4

    Replace and rotate safely

    Rotate exposed, shared, ownerless, or aging credentials using a tested sequence that supports overlap where needed, confirms the new value works, and revokes the old value.

    You should end up with: Rotation events, deployment confirmation, and revocation evidence tied to the affected identity.

  5. 5

    Monitor use and retirement

    Alert on unusual secret retrieval, failed machine authentication, expired certificates, dormant keys, and use from unexpected workloads; retire credentials when integrations or services end.

    You should end up with: Usage alerts, expiry monitoring, periodic review decisions, and credential revocation records.

Evidence to keep, and what it should prove

Build the evidence set in three layers: what defines the control, who approved or reviewed it, and what proves it operated. Collect operating records when the work happens so they remain dated, attributable, correctly scoped, and traceable to the underlying activity.

Before sharing, remove unrelated personal or customer data, never expose passwords, tokens, or secret values, preserve enough source context to authenticate the record, and use the secure exchange approved for the engagement.

Policy / design artifacts

Documents that define the control, its scope, ownership, and expected way of working.

Service account register

  • Confirm what the record proves

    The current machine-identity population records a responsible owner, purpose, environment, privileges, consumers, and lifecycle state for each service account.

  • Include this context

    Service identity

  • Include this context

    Owner and purpose

  • Include this context

    Environment and systems

  • Include this context

    Privileges

  • Include this context

    Credential type

  • Include this context

    Review or expiry date

Weak evidence to avoid

A list of account names with no owner, workload, environment, effective privilege, credential type, or lifecycle date.

secrets manager inventory

  • Confirm what the record proves

    The current managed store identifies protected production secrets, their locations, access policies, versions, owners, and recent use without exposing secret values.

  • Include this context

    Secret identifier

  • Include this context

    Environment

  • Include this context

    Owner or service

  • Include this context

    Access policy

  • Include this context

    Version or rotation date

  • Include this context

    Last-used or status field

Weak evidence to avoid

A screenshot of secret names that omits environment, access policy, owner, version age, usage status, and the scope of the export.

Approval / review evidence

Records showing that an accountable person reviewed, approved, challenged, or accepted the work.

rotation/review evidence

  • Confirm what the record proves

    The owner evaluated a credential’s need and privilege or completed a rotation sequence that activated the replacement and retired the prior value.

  • Include this context

    Credential or secret ID

  • Include this context

    Owner or reviewer

  • Include this context

    Review or rotation date

  • Include this context

    New-version activation

  • Include this context

    Old-version revocation

  • Include this context

    Consumer validation result

Weak evidence to avoid

A new secret version exists, but there is no proof consumers adopted it, the previous credential was revoked, or an owner reviewed continued need.

Operating / technical evidence

Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.

credential revocation records

  • Confirm what the record proves

    An expired, exposed, dormant, or retired service credential was disabled and subsequent attempts or use no longer succeed.

  • Include this context

    Credential identifier

  • Include this context

    Revocation reason

  • Include this context

    Revocation timestamp

  • Include this context

    Actor or automation

  • Include this context

    Affected consumers

  • Include this context

    Resulting status

Weak evidence to avoid

A ticket says a key was removed without a provider event, credential identifier, revocation time, consumer impact, or final disabled state.

Which records should you prepare for the audit?

Type 1

Evidence at the as-of date

As of the selected date, retain the current service-account and managed-secret inventories, effective access policies, and the latest completed credential review or rotation with confirmed prior-version revocation.

Type 2

Evidence across the review period

Include every active service account, API key, token, certificate, automation credential, and privileged secret at each required review point, plus every creation, permission change, retrieval-policy change, rotation, expiry, revocation, exposure, and retirement event during the review period.

Completeness check

Reconcile cloud service identities, managed secrets, certificates, delivery variables, and discovered credentials to the service-account register, then reconcile rotation and revocation events to active versions and actual recent use so dormant or unmanaged credentials cannot disappear from the population.

Build the record set from

  • Service-account register
  • Cloud IAM and workload identity
  • Secrets manager and key service
  • Certificate management service
  • Delivery-platform secret stores
  • Secret scanning and audit logs

Keep these fields for each record

  • Machine identity or credential ID
  • Owner, purpose, and environment
  • Effective privilege or access policy
  • Event type and timestamp
  • Version, expiry, or last use
  • Review, rotation, or revocation result

How an auditor may test this control

Use this checklist to prepare for procedures an auditor may perform. The exact steps and sample selection depend on your engagement scope and the service auditor's professional judgment.

  • Confirm the intended control outcome

    Determine whether the control is designed to achieve this result: Service accounts, API keys, tokens, certificates, automation credentials, and privileged secrets have known owners, constrained permissions, protected storage, monitored use, and a reliable retirement path.

  • Confirm ownership and operating cadence

    Compare the documented owner with the intended role (IT / Infrastructure Owner / System Owners), then compare dated records with the stated cadence: Per request/change; periodic review quarterly/annually by risk.

  • Establish the complete audit record set

    Reconcile cloud service identities, managed secrets, certificates, delivery variables, and discovered credentials to the service-account register, then reconcile rotation and revocation events to active versions and actual recent use so dormant or unmanaged credentials cannot disappear from the population.

  • Prepare the as-of-date evidence for a Type 1 engagement

    As of the selected date, retain the current service-account and managed-secret inventories, effective access policies, and the latest completed credential review or rotation with confirmed prior-version revocation.

  • Prepare period evidence for a Type 2 engagement

    Include every active service account, API key, token, certificate, automation credential, and privileged secret at each required review point, plus every creation, permission change, retrieval-policy change, rotation, expiry, revocation, exposure, and retirement event during the review period.

  • Inspect the policy / design artifacts

    Documents that define the control, its scope, ownership, and expected way of working.

    • Inspect Service account register

      For each selected record, confirm it demonstrates The current machine-identity population records a responsible owner, purpose, environment, privileges, consumers, and lifecycle state for each service account.

      • Service identity
      • Owner and purpose
      • Environment and systems
      • Privileges
      • Credential type
      • Review or expiry date
    • Inspect secrets manager inventory

      For each selected record, confirm it demonstrates The current managed store identifies protected production secrets, their locations, access policies, versions, owners, and recent use without exposing secret values.

      • Secret identifier
      • Environment
      • Owner or service
      • Access policy
      • Version or rotation date
      • Last-used or status field
  • Inspect the approval / review evidence

    Records showing that an accountable person reviewed, approved, challenged, or accepted the work.

    • Inspect rotation/review evidence

      For each selected record, confirm it demonstrates The owner evaluated a credential’s need and privilege or completed a rotation sequence that activated the replacement and retired the prior value.

      • Credential or secret ID
      • Owner or reviewer
      • Review or rotation date
      • New-version activation
      • Old-version revocation
      • Consumer validation result
  • Inspect the operating / technical evidence

    Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.

    • Inspect credential revocation records

      For each selected record, confirm it demonstrates An expired, exposed, dormant, or retired service credential was disabled and subsequent attempts or use no longer succeed.

      • Credential identifier
      • Revocation reason
      • Revocation timestamp
      • Actor or automation
      • Affected consumers
      • Resulting status
  • Trace the control from design to operation

    Use the categories that apply to this control: connect any policy or design artifact to its approval or review record, then trace a selected operating record through execution, result, and any exception or remediation.

Common implementation and evidence gaps

  • A secret was deleted from the current source file but remains usable and visible in repository history.
  • One credential is shared across services or environments, making ownership and containment unclear.
  • Rotation changes the stored value but never verifies every consumer adopted it before the old value was revoked.
  • Sensitive values appear in application logs, build output, error reports, or support messages.
  • Long-lived cloud keys remain active because no owner can confirm whether a workload still needs them.

Before you call this control ready

  • Can every active service identity and privileged secret be tied to an owner, purpose, consumer, and environment?
  • Are production credentials absent from source history, ordinary configuration files, logs, and support channels?
  • Do machine identities have only the target permissions required for their workload?
  • Can we demonstrate a successful rotation that also revoked the previous credential?
  • Are dormant keys, expiring certificates, and unusual retrievals detected and acted upon?

Trust Services Criteria references

These identifiers help you navigate related Trust Services Criteria. They do not reproduce the criteria or prove that this control fully addresses them in your environment.

  • CC6.1
  • CC6.6
  • CC6.7
  • C1.1

Confirm final scope, mappings, and testing expectations with your service auditor. SOC 2® is an AICPA trademark; GreenHat Security is not affiliated with or endorsed by AICPA.