ENCLAVE-07: Enclave EIF is signed by an approved signer (PCR8 pinned)¶
| Property | Value |
|---|---|
| Severity | high |
| Platform | AWS Nitro Enclaves |
| Lifecycle stage | attest |
| Mode | Active: runs fixed read-only commands on the host. Skipped with --read-only. |
What it checks¶
It passes when:
- EIF PCR8 matches an approved signer certificate (…).
How to fix¶
- Build and sign the EIF in CI with your trusted signing certificate (nitro-cli build-enclave --signing-certificate), and pass its PCR8 (SHA-384 of the certificate) in --nitro-approved-signers. Rotate approved signers through your signing policy, and pair this with NITRO-ATT-02 so the running enclave's attestation document is cryptographically verified.
After the fix, scan again: the check should report PASS.
When it is not assessed¶
SKIP:
- Need --instance-id and --nitro-approved-signers; skipping check.
Scan inputs¶
The untrust scan options this check reads:
| Option | Description |
|---|---|
--instance-id |
EC2 instance ID running the Nitro Enclave. |
--nitro-approved-signers |
Approved EIF signing-certificate measurements (PCR8 SHA-384 hex, comma/space separated) for ENCLAVE-07. |
--region |
AWS region. |
Permissions¶
The cloud API calls this check makes, read from the scanner's source:
| Cloud | API call | Permission | Access |
|---|---|---|---|
| AWS | ssm.get_command_invocation |
ssm:GetCommandInvocation |
read |
| AWS | ssm.send_command |
ssm:SendCommand |
run command |
Every AWS scan also calls sts:GetCallerIdentity. See Required permissions for a complete policy.
Generated from untrust 1.3.0 (commit 7ef462d9a0c3).