Compares the kms:RecipientAttestation:PCR<N> (and equivalent ImageSha384) values referenced by an enclave key policy against a customer-provided list of trusted PCR hashes configured under enclave_golden_pcr_values in audit_config. Detects image provenance drift: policies whose attestation conditions still reference PCRs that no longer correspond to a known-good build.
Risk
A KMS enclave key policy that still binds attestation but whose PCR values point at an untrusted or unknown enclave image undermines the integrity the attestation was supposed to enforce. A poisoned CI/CD pipeline or malicious policy update can preserve KMS access under an image the operator has never audited.
prowler aws --checks kms_key_enclave_attestation_pcr_mismatch
Recommendation
Treat KMS enclave policies as provenance contracts: pin them to PCR hashes produced by an auditable build pipeline and configure Prowler's golden list so drift is caught before it becomes an incident.
Remediation
aws kms put-key-policy --key-id <key-id> --policy-name default --policy file://enclave-policy.json
- Configure the Prowler
audit_configwith the trusted PCR values produced by your enclave CI/CD pipeline underenclave_golden_pcr_values(per PCR bucket), e.g.enclave_golden_pcr_values: {PCR0: [<trusted-pcr0-hash-from-ci>], PCR8: [<trusted-signing-cert-hash>]}. - When rotating enclave images, publish the new PCRs to the golden list before the KMS policy is updated so any drift surfaces immediately.
- Rotate KMS policies whose PCRs are not in the golden list, or update the golden list to reflect the newly audited image.
Source Code
Resource Type
AwsKmsKey