redact-secret · Report
IAM user secret access key
The 40-character secret paired with an IAM user access key ID. Has no distinguishing prefix or lexical marker.
Research record
3 events in the review history: 2 observed, 1 reviewed. Latest: observed on 2026-09-29 by automation, project maintainer. Project-maintained review is not independent validation. The family record at this release.
Format
What it looks like
- Descriptive pattern
^[A-Za-z0-9/+]{40}$
Parts are shown as recorded. Evidence classes belong to the facts below; no class is assigned to a part.
Format facts
Tool corroborated ·
tool-corroboration· current · observed 2026-09-29Pinned scanner rules are consistent with the contract grammar (5 artifacts: awslabs/ferret-scan (AWS-authored, R2 not applied); awslabs/git-secrets (AWS-authored, R2 not applied); noseyparker; osv-scalibr; trufflehog (HEAD)).
- awslabs/ferret-scan @ c3b10fba90a5ed6178314ac646988546122afc60: internal/validators/secrets/validator.goprovider-documentation · last read 2026-09-29 · latest outcome read · supports awslabs/ferret-scan (AWS-authored, R2 not applied): [A-Za-z0-9/+]{40} gated by an AWS secret key name or an AKIA/ASIA id on the same or an adjacent line · #L1434-L1444
- awslabs/git-secrets @ 7d6b970cbd3c216353cb22b383b70c150140662e: git-secretsprovider-documentation · last read 2026-09-29 · latest outcome read · supports awslabs/git-secrets (AWS-authored, R2 not applied): key-name-gated [A-Za-z0-9/\+=]{40} · #L242
- google/osv-scalibr @ 5ab8022c6d67ff99d91d9750f2456ed9549fe8cb: veles/secrets/awsaccesskey/detector.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports osv-scalibr: \b[A-Za-z0-9+/]{40}\b paired with an id within 10 KiB · #L25-L26
- praetorian-inc/noseyparker @ 2e6e7f36ce36619852532bbe698d8cb7a26d2da7: crates/noseyparker/data/default/builtin/rules/aws.ymlscanner-rule-source · last read 2026-09-29 · latest outcome read · supports noseyparker: key-name-gated (?i)[a-z0-9/+=]{40} · #L30-L43
- trufflesecurity/trufflehog @ 48b58d3bf3f02ba17bf23b87f095499bc80c6fd7: pkg/detectors/aws/common.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports trufflehog (HEAD): [A-Za-z0-9+/]{40} with boundaries, only paired with an access key id · #L16
Provider documented ·
field-value· current · observed 2026-09-29value: exactly 40 [A-Za-z0-9/+], no prefix, no checksum (T2: one provider example shape plus AWS-owned and peer rules; the IAM AccessKey API type states only "String".)
- docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.htmlprovider-documentation · last read 2026-10-04 · latest outcome unchanged · supports the example secret is 40 characters of [A-Za-z0-9/]
- awslabs/ferret-scan @ c3b10fba90a5ed6178314ac646988546122afc60: internal/validators/secrets/validator.goprovider-documentation · last read 2026-09-29 · latest outcome read · supports value: exactly 40 [A-Za-z0-9/+], no prefix, no checksum · #L1434-L1444
- awslabs/git-secrets @ 7d6b970cbd3c216353cb22b383b70c150140662e: git-secretsprovider-documentation · last read 2026-09-29 · latest outcome read · supports value: exactly 40 [A-Za-z0-9/+], no prefix, no checksum · #L242
- summitroute.com/blog/2018/06/20/aws_security_credential_formats/third-party-writeup · last read 2026-10-04 · latest outcome read · supports Base64 of 30 random bytes
Provider documented ·
field-context· current · observed 2026-09-29context: an AWS secret key name on the value's own line, or an AKIA access key id on the same or an adjacent line (That AWS requires context is T1 (Macie); the name list itself is T2.)
- docs.aws.amazon.com/macie/latest/user/mdis-reference-credentials.htmlprovider-documentation · last read 2026-09-29 · latest outcome read · supports AWS_CREDENTIALS: keyword required
- awslabs/ferret-scan @ c3b10fba90a5ed6178314ac646988546122afc60: internal/validators/secrets/validator.goprovider-documentation · last read 2026-09-29 · latest outcome read · supports key-name or adjacent-id gate · #L1434-L1444
Tool corroborated ·
field-padding· current · observed 2026-09-29padding: = is not part of the 40 (30 bytes encode to 40 characters without padding) (git-secrets, betterleaks and noseyparker admit =; bounded out (contradiction 1 in the research record).)
- awslabs/ferret-scan @ c3b10fba90a5ed6178314ac646988546122afc60: internal/validators/secrets/validator.goprovider-documentation · last read 2026-09-29 · latest outcome read · supports padding: = is not part of the 40 (30 bytes encode to 40 characters without padding) · #L1434-L1444
- google/osv-scalibr @ 5ab8022c6d67ff99d91d9750f2456ed9549fe8cb: veles/secrets/awsaccesskey/detector.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports padding: = is not part of the 40 (30 bytes encode to 40 characters without padding) · #L25-L26
- trufflesecurity/trufflehog @ 48b58d3bf3f02ba17bf23b87f095499bc80c6fd7: pkg/detectors/aws/common.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports padding: = is not part of the 40 (30 bytes encode to 40 characters without padding) · #L16
Unresolved ·
field-temporary-secret· current · observed 2026-09-29temporary-secret: a temporary (STS) secret may be 41 characters; not claimed (Neither a positive nor a control: a 41-character value beside the gate is a length twin of the IAM-user shape only.)
- docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.htmlprovider-documentation · last read 2026-10-04 · latest outcome unchanged · supports the temporary example is 41 characters
- redact-secret/redact-secret @ 4fb78827f1ddf5b3106f25130ca510a836ada186: docs/audits/evidence/1012/aws-iam-user-secret-access-key.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports contradiction 2
Tool corroborated ·
field-peer-lag· current · observed 2026-09-29peer-lag: no secret-key rule in gitleaks 8.30.1; trufflehog 3.97.4 reports the secret only paired with an access key id, under its AWS label (mapped to aws-access-key)
- gitleaks/gitleaks @ v8.30.1: config/gitleaks.tomlscanner-rule-source · last read 2026-10-04 · latest outcome read · supports aws-access-token only
- trufflesecurity/trufflehog @ v3.97.4: pkg/detectorsscanner-rule-source · last read 2026-09-29 · latest outcome read · supports aws/access_keys pairs an id and a secret
Unresolved ·
listed-references· current · observed 2026-09-29The legacy contract lists 15 references without stating which property each supports.
- docs.aws.amazon.com/IAM/latest/APIReference/API_AccessKey.htmlother · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.htmlprovider-documentation · last read 2026-10-04 · latest outcome unchanged · supports Listed as a reference by the legacy contract
- docs.aws.amazon.com/macie/latest/user/mdis-reference-credentials.htmlprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- awslabs/ferret-scan @ c3b10fba90a5ed6178314ac646988546122afc60: internal/validators/secrets/validator.goprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L1434-L1444
- awslabs/git-secrets @ 7d6b970cbd3c216353cb22b383b70c150140662e: git-secretsprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L242
- google/osv-scalibr @ 5ab8022c6d67ff99d91d9750f2456ed9549fe8cb: veles/secrets/awsaccesskey/detector.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L25-L26
- praetorian-inc/noseyparker @ 2e6e7f36ce36619852532bbe698d8cb7a26d2da7: crates/noseyparker/data/default/builtin/rules/aws.ymlscanner-rule-source · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L30-L43
- github.com/redact-secret/redact-secret/issues/1028issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 4fb78827f1ddf5b3106f25130ca510a836ada186: docs/audits/evidence/1012/aws-iam-user-secret-access-key.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret/issues/860issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #issuecomment-5871306275
- github.com/redact-secret/redact-secret/issues/1012issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- github.com/redact-secret/redact-secret-benchmarks/issues/528issue-or-discussion · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- redact-secret/redact-secret @ 4fb78827f1ddf5b3106f25130ca510a836ada186: docs/audits/evidence/1012/README.mdproject-research-note · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract
- trufflesecurity/trufflehog @ 48b58d3bf3f02ba17bf23b87f095499bc80c6fd7: pkg/detectors/aws/common.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports Listed as a reference by the legacy contract · #L16
- summitroute.com/blog/2018/06/20/aws_security_credential_formats/third-party-writeup · last read 2026-10-04 · latest outcome read · supports Listed as a reference by the legacy contract
Tool corroborated ·
dossier-research· current · observed 2026-09-29Legacy dossier research (verdict ready, tier T2) cited 10 sources; the dossier does not attribute sources to individual properties.
- docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.htmlprovider-documentation · last read 2026-10-03 · latest outcome unchanged · supports Cited by the legacy dossier research for this family
- docs.aws.amazon.com/IAM/latest/APIReference/API_AccessKey.htmlother · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
- docs.github.com/en/code-security/secret-scanning/introduction/supported-secret-scanning-patternsprovider-documentation · last read 2026-10-05 · latest outcome read · supports Cited by the legacy dossier research for this family
- awslabs/ferret-scan @ c3b10fba90a5ed6178314ac646988546122afc60: internal/validators/secrets/validator.goprovider-documentation · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family · #L1434-L1444
- awslabs/git-secrets @ 7d6b970cbd3c216353cb22b383b70c150140662e: git-secretsprovider-documentation · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
- hashicorp/aws-sdk-go-base @ 41fc7e1b09a140821eb9cbe6889bb53072a0da2e: logging/aws.goother · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
- redact-secret/redact-secret @ 4fb78827f1ddf5b3106f25130ca510a836ada186: docs/audits/evidence/1012/aws-iam-user-secret-access-key.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports Final research evidence recorded by the legacy dossier
- trufflesecurity/trufflehog @ 48b58d3bf3f02ba17bf23b87f095499bc80c6fd7: pkg/detectors/aws/common.goscanner-rule-source · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
- Yelp/detect-secrets @ 5e141933554a0b74e7341841f318be21e895339c: detect_secrets/plugins/aws.pyother · last read 2026-09-29 · latest outcome read · supports Cited by the legacy dossier research for this family
- summitroute.com/blog/2018/06/20/aws_security_credential_formats/third-party-writeup · last read 2026-10-04 · latest outcome read · supports Cited by the legacy dossier research for this family
Unresolved ·
taxonomy-sources· current · observed 2026-09-29The legacy taxonomy lists 3 sources for this family. The taxonomy records no date; the dossier researchedAt is used as the observed-at date.
- docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.htmlprovider-documentation · last read 2026-10-04 · latest outcome unchanged · supports Listed as a source for this family in the legacy taxonomy
- docs.aws.amazon.com/macie/latest/user/mdis-reference-credentials.htmlprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
- redact-secret/redact-secret @ 4fb78827f1ddf5b3106f25130ca510a836ada186: docs/audits/evidence/1012/aws-iam-user-secret-access-key.mdprovider-documentation · last read 2026-09-29 · latest outcome read · supports Listed as a source for this family in the legacy taxonomy
Open questions
No open question is recorded for this revision.
Benchmark dossier notes
- Shape
- The 40-character secret paired with an access key ID, standard base64 characters (letters, digits,
+,/). It has no prefix or lexical marker. Temporary (ASIA) credentials carry a secret of the same shape. - Contract in core
- detector-families.md.
In this benchmark
- Fixtures
- 64
- Left readable
- 1
- Redacted too much
- 0
- False alarms
- 0
64 fixtures: 4 expect a redaction, 43 must stay quiet, 17 record project policy. See every row
| Evidence level | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| T1Provider-documented | 4 | 1 | 0 | 0 |
| T2Tool-corroborated | 18 | 0 | 0 | 0 |
| T3Project policy | 42 | 0 | 0 | 0 |
Every scanner on the same fixtures
In run order. Counts are what each scanner recorded on this family's fixtures, whichever rules it has; a scanner with no rule for the family has nothing to report on it.
| Scanner | Fixtures | Left readable | Too much | False alarms |
|---|---|---|---|---|
| flare-redactRuntime library · 1.6.1 · Published npm package · secrets-only (pii, generic_assignment disabled) · JavaScript engine1 rule targets it | 64 | 6 | 0 | 3 |
| gitleaksRepository scanner · 8.30.1 · Directory scan · default rulesNo rule maps to it | 64 | 8 | 0 | 0 |
| redact-secretProduct measured here · 0.1.0-beta.14 · Published npm package · default detectors1 detector mapped | 64 | 1 | 0 | 0 |
| trufflehogRepository scanner · 3.97.4 · Filesystem scan · verification disabled1 rule targets it | 64 | 19 | 0 | 0 |
Scanner rules for this family
| Scanner | Rule | What the rule matches |
|---|---|---|
| flare-redact · rules 1.6.1 | aws_secret_key | aws_secret_access_key assignment + 40 characters |
| openredaction · rules 1.1.5 | AWS_SECRET_KEY | aws or secret keyword + 40 characters |
| trufflehog · rules 3.97.4 | aws/access_keys | AKIA, ABIA or ACCA id, reported with its paired secret |
No rule maps to this family in gitleaks.
Fixtures in this family
| Fixture | Kind and evidence | redact-secret |
|---|---|---|
source-value-split-between-array-elementsjupyter-notebook-files-authored · notebook-cell-source-lines-joined-across-array-elements | Must redactT1 · Provider-documented | Left readable |
aws-secret-access-key-actions-envaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-aida-akia-next-line-twinaws · missing-context-marker | Must not flagT3 · Project policy · twin | Quiet |
aws-secret-access-key-aida-akia-same-line-twinaws · missing-context-marker | Must not flagT3 · Project policy · twin | Quiet |
aws-secret-access-key-akia-next-lineaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-akia-same-lineaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-boto3-kwargaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-chat-phraseaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-compose-envaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-create-access-key-yamlaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-credentials-fileaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-credentials-file-named-profileaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-dotenvaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-exportaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-iam-user-id-public-idaws · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-js-credentialsaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-json-memberaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-key-shape-bareaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-key-shape-quotedaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-key-shape-unicode-crlfaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
aws-secret-access-key-tfvarsaws · documented-format-literal | Project policyT3 · Project policy | Redacted |
same-value-in-source-stream-result-json-error-and-tracebackjupyter-notebook-files-authored · notebook-literal-repeated-in-source-and-each-saved-output-kind | Must redactT1 · Provider-documented | Redacted |
source-one-array-element-per-linejupyter-notebook-files-authored · notebook-cell-source-lines-joined-across-array-elements | Must redactT1 · Provider-documented | Redacted |
stdout-literal-where-source-has-environment-referencejupyter-notebook-files-authored · notebook-saved-output-holds-literal-that-source-only-references | Must redactT1 · Provider-documented | Redacted |
aws-secret-access-key-actions-secret-referenceaws · templated-reference | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-angle-placeholder-placeholderaws · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-artifact-digest-actions-twinaws · missing-context-marker | Must not flagT3 · Project policy · twin | Quiet |
aws-secret-access-key-bare-in-log-near-missaws · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-bare-in-prose-near-missaws · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-bare-line-near-missaws · format-near-miss | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-build-digest-chat-twinaws · missing-context-marker | Must not flagT3 · Project policy · twin | Quiet |
aws-secret-access-key-configure-list-placeholderaws · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-data-uri-encoded-valueaws · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-docs-note-proseaws · prose-mention | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-env-reference-referenceaws · templated-reference | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-equals-inside-twinaws · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
aws-secret-access-key-etag-encoded-valueaws · benign-encoded-value | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-git-sha-public-idaws · public-identifier | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-hyphen-inside-twinaws · wrong-alphabet | Must not flagT2 · Tool-corroborated · twin | Quiet |
aws-secret-access-key-key-shape-bare-twinaws · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
aws-secret-access-key-key-shape-quoted-twinaws · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
aws-secret-access-key-key-shape-unicode-crlf-twinaws · wrong-length | Must not flagT2 · Tool-corroborated · twin | Quiet |
aws-secret-access-key-kms-alias-export-twinaws · missing-context-marker | Must not flagT3 · Project policy · twin | Quiet |
aws-secret-access-key-label-proseaws · benign-lookalike | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-maskaws · benign-lookalike | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-masked-placeholderaws · documentation-placeholder | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-missing-keywordaws · benign-lookalike | Must not flagT2 · Tool-corroborated | Quiet |
aws-secret-access-key-policy-digest-yaml-twinaws · missing-context-marker | Must not flagT3 · Project policy · twin | Quiet |
aws-secret-access-key-python-environ-referenceaws · templated-reference | Must not flagT3 · Project policy | Quiet |
aws-secret-access-key-referenceaws · benign-lookalike | Must not flagT3 · Project policy | Quiet |
Sources
Documentation and code
- docs.aws.amazon.com/STS/latest/APIReference/API_GetAccessKeyInfo.html
- docs.aws.amazon.com/macie/latest/user/mdis-reference-credentials.html
- github.com/redact-secret/redact-secret/blob/4fb78827f1ddf5b3106f25130ca510a836ada186/docs/audits/evidence/1012/aws-iam-user-secret-access-key.md
- docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html
- docs.aws.amazon.com/IAM/latest/APIReference/API_AccessKey.html
- github.com/awslabs/git-secrets/blob/7d6b970cbd3c216353cb22b383b70c150140662e/git-secrets
- github.com/awslabs/ferret-scan/blob/c3b10fba90a5ed6178314ac646988546122afc60/internal/validators/secrets/validator.go#L1434-L1444
- github.com/Yelp/detect-secrets/blob/5e141933554a0b74e7341841f318be21e895339c/detect_secrets/plugins/aws.py
- github.com/trufflesecurity/trufflehog/blob/48b58d3bf3f02ba17bf23b87f095499bc80c6fd7/pkg/detectors/aws/common.go
- github.com/hashicorp/aws-sdk-go-base/blob/41fc7e1b09a140821eb9cbe6889bb53072a0da2e/logging/aws.go
- summitroute.com/blog/2018/06/20/aws_security_credential_formats/
- docs.github.com/en/code-security/secret-scanning/introduction/supported-secret-scanning-patterns
Research log
- redact-secret/redact-secret-benchmarks#473Research issue
- redact-secret/redact-secret#1012Research issue
- redact-secret/redact-secret#1028Research issue
- redact-secret/redact-secret-benchmarks#528Research issue
- Final evidence, pinned to a commit/redact-secret/redact-secret/blob/4fb78827f1ddf5b3106f25130ca510a836ada186/docs/audits/evidence/1012/aws-iam-user-secret-access-key.md