Skip to content

Keyboard shortcuts

Go

  • Scope — the control cataloggm
  • Plan — your last certification classgp
  • Collect — the recipe indexgc
  • The control you are workinggw
  • Startgh

Move

  • Next rowj
  • Previous rowk
  • Previous in this run[
  • Next in this run]
  • Filter this page's list/
  • Search everythingK

Act

  • Copy this page's permalinky
  • Toggle dark moded
  • This sheet?

Rows are whatever the current page lists — controls on Scope, recipes on Plan and Collect.

Control index

AWS Config compliance results proving the audit trail exists and is protected — CloudTrail enabled and multi-region so management events are captured account-wide, log-file validation on so records are tamper-evident, and SSE-KMS encryption on so the logs themselves are protected at rest

The API supplies the facts, but a human judgement against a documented baseline turns them into evidence.

partial — needs judgementconfig-rulecontinuousAWS ConfigAWS CloudTrailAWS KMS

Fetch

$ aws configservice get-compliance-details-by-config-rule --config-rule-name cloudtrail-enabled --compliance-types NON_COMPLIANT
$ aws configservice get-compliance-details-by-config-rule --config-rule-name multi-region-cloudtrail-enabled --compliance-types NON_COMPLIANT
$ aws configservice get-compliance-details-by-config-rule --config-rule-name cloud-trail-log-file-validation-enabled --compliance-types NON_COMPLIANT
$ aws configservice get-compliance-details-by-config-rule --config-rule-name cloud-trail-encryption-enabled --compliance-types NON_COMPLIANT
$ aws configservice describe-configuration-recorder-status
$ aws configservice describe-config-rule-evaluation-status --config-rule-names cloudtrail-enabled
$ aws configservice describe-config-rule-evaluation-status --config-rule-names multi-region-cloudtrail-enabled
$ aws configservice describe-config-rule-evaluation-status --config-rule-names cloud-trail-log-file-validation-enabled
$ aws configservice describe-config-rule-evaluation-status --config-rule-names cloud-trail-encryption-enabled
$ aws ec2 describe-regions --query 'Regions[].RegionName' --output text
$ aws organizations list-accounts --query 'Accounts[].Id' --output text

Expected output

Four EvaluationResults arrays; empty NON_COMPLIANT sets mean a trail is enabled, at least one trail is multi-region, log-file validation (SHA-256 signed digest) is on, and the trail delivers SSE-KMS-encrypted logs. Managed rule identifiers: CLOUD_TRAIL_ENABLED (rule name cloudtrail-enabled), MULTI_REGION_CLOUD_TRAIL_ENABLED (rule name multi-region-cloudtrail-enabled), CLOUD_TRAIL_LOG_FILE_VALIDATION_ENABLED, CLOUD_TRAIL_ENCRYPTION_ENABLED Plus describe-configuration-recorder-status showing recording=true and, per rule, describe-config-rule-evaluation-status showing FirstEvaluationStarted=true with a LastSuccessfulEvaluationTime — the proof the empty set was produced by a check that ran.

Assertions — what makes it a pass

Assertions for AWS Config compliance results proving the audit trail exists and is protected — CloudTrail enabled and multi-region so management events are captured account-wide, log-file validation on so records are tamper-evident, and SSE-KMS encryption on so the logs themselves are protected at rest: the field checked, the condition it must satisfy, the rows it applies to, and the controls a pass proves.
FieldMust beForProves
cloudtrail-enabled.EvaluationResultscount_eq 0A CloudTrail trail is enabled, so audit records are generated at all.every rowAU-02AU-12
multi-region-cloudtrail-enabled.EvaluationResultscount_eq 0At least one trail is multi-region, so the record covers management events account-wide rather than in one Region.every rowAU-02
cloud-trail-log-file-validation-enabled.EvaluationResultscount_eq 0Log-file validation is on, so delivered logs carry a signed digest and tampering is detectable.every rowAU-09
cloud-trail-encryption-enabled.EvaluationResultscount_eq 0The trail delivers SSE-KMS-encrypted logs, protecting the audit information at rest.every rowAU-09
configuration-recorder-status.ConfigurationRecordersStatus[].recordingeq trueThe configuration recorder is on — without it an empty NON_COMPLIANT set is indistinguishable from a recorder that never ran.every rowAU-02AU-09AU-12
cloudtrail-enabled-evaluation-status.ConfigRulesEvaluationStatus[].FirstEvaluationStartedeq truecloudtrail-enabled has evaluated at least once; a deployed-but-never-evaluated rule also returns an empty result.every rowAU-02AU-09AU-12
cloudtrail-enabled-evaluation-status.ConfigRulesEvaluationStatus[].LastSuccessfulEvaluationTimeexistscloudtrail-enabled has a successful evaluation on record.every rowAU-02AU-09AU-12
multi-region-cloudtrail-enabled-evaluation-status.ConfigRulesEvaluationStatus[].FirstEvaluationStartedeq truemulti-region-cloudtrail-enabled has evaluated at least once; a deployed-but-never-evaluated rule also returns an empty result.every rowAU-02AU-09AU-12
multi-region-cloudtrail-enabled-evaluation-status.ConfigRulesEvaluationStatus[].LastSuccessfulEvaluationTimeexistsmulti-region-cloudtrail-enabled has a successful evaluation on record.every rowAU-02AU-09AU-12
cloud-trail-log-file-validation-enabled-evaluation-status.ConfigRulesEvaluationStatus[].FirstEvaluationStartedeq truecloud-trail-log-file-validation-enabled has evaluated at least once; a deployed-but-never-evaluated rule also returns an empty result.every rowAU-02AU-09AU-12
cloud-trail-log-file-validation-enabled-evaluation-status.ConfigRulesEvaluationStatus[].LastSuccessfulEvaluationTimeexistscloud-trail-log-file-validation-enabled has a successful evaluation on record.every rowAU-02AU-09AU-12
cloud-trail-encryption-enabled-evaluation-status.ConfigRulesEvaluationStatus[].FirstEvaluationStartedeq truecloud-trail-encryption-enabled has evaluated at least once; a deployed-but-never-evaluated rule also returns an empty result.every rowAU-02AU-09AU-12
cloud-trail-encryption-enabled-evaluation-status.ConfigRulesEvaluationStatus[].LastSuccessfulEvaluationTimeexistscloud-trail-encryption-enabled has a successful evaluation on record.every rowAU-02AU-09AU-12

Authored opinion, like the commands. Units live in the operator name — max-age-days is days, and nothing here is converted for you.

Map — what it proves

  • recipe3
Key Security Indicators
NIST 800-53 controls
  • recipean authored recipe collects evidence for this control
  • KSI onlya Key Security Indicator reaches it, but no recipe is authored yet
  • orphanno Key Security Indicator reaches it — a person writes it up instead

What else these families can fetch:AU 11/27

GovCloud

AWS Config, CloudTrail, and all four managed rules are available in AWS GovCloud (US); trail, bucket, and KMS key ARNs use partition arn:aws-us-gov

Notes & assertions

Together these prove audit-record generation (AU-02/AU-12) and protection of the audit information — integrity via log-file validation and confidentiality via SSE-KMS (AU-09). This is the trail's existence and protection, not review of its contents: pair with the log-review/alerting recipe (MLA) for AU-06. Pass the S3/CloudWatch parameters to CLOUD_TRAIL_ENABLED to assert delivery to your specific log destination. A trail existing proves generation, not content — AU-03 is not claimed, because no Config rule reads record content. AU-02's organization-defined event types and AU-12's component list (OS, container and application audit are components) are SSP parameters a human compares this output against, and AU-09's protection from unauthorized access and deletion needs the log bucket's policy, Object Lock and MFA-delete posture, which is not collected here.

References

This AWS mapping is authored opinion (overlay v3.0.0), versioned separately from the dataset and written against ruleset 2026.07.14.01. The upstream FedRAMP dataset names none of these tools.

The Monitoring, Logging, and Auditing run (7)

  • automatable
  • partial — needs judgement
  • narrative — no API proves this

Every authored recipe filed under MLA, in the order the plan works them. The mark says how much of the evidence the command produces on its own.