Help improve this page
To contribute to this user guide, choose the Edit this page on GitHub link that is located in the right pane of every page.
IAM permissions for Nitro Sandboxes
The following IAM permissions are required for specific Nitro Sandboxes features.
Encrypted container images
The pod’s IAM role (through EKS Pod Identity) must have kms:Decrypt permission on the KMS key used to encrypt the image layers. The Nitro Sandbox does not use IRSA credentials for this call:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws-cn:kms:region-code:111122223333:key/mrk-example" } ] }
Image signature verification
For image signature verification, the pod’s IAM role (through EKS Pod Identity) must have the following Amazon Signer permissions:
| Action | Purpose |
|---|---|
|
|
Check whether an individual signing job or certificate has been revoked. |
|
|
Check whether the signing profile has been revoked with |
Both Signer actions are required
Both actions are required. If either call fails, or returns a permission error, signature verification fails closed and the agent denies container creation. Signature verification also requires network access from the Nitro Sandbox to the Amazon Signer endpoint. Pods with sandbox.amazonaws.com/network-isolated set to "true" cannot use image signature verification.
KMS attestation conditions
To release KMS-protected secrets only to attested sandboxes, add kms:RecipientAttestation:PCR<PCR_ID> conditions to your KMS key policy. Gate on PCR17 (the Cedar policy hash) set to the predicted value from eks-nitro-sandbox-genpolicy, and also add a kms:RecipientAttestation:PCR8:ServiceName condition set to eks.amazonaws.com so that only attestations from the EKS Nitro Sandbox service are accepted. Gating on PCR17 alone is not sufficient:
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws-cn:iam::111122223333:role/my-workload-role" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "kms:RecipientAttestation:PCR17": "<PCR17-value-from-genpolicy>", "kms:RecipientAttestation:PCR8:ServiceName": "eks.amazonaws.com" } } }
The eks-nitro-sandbox-genpolicy command prints the predicted PCR17 value when it generates a policy. Use this value to configure your KMS key policy before deploying, without needing a running sandbox.
For more information, see the Amazon KMS documentation on recipient attestation conditions and the Nitro Sandbox security model in Security model and parent instance trust assumptions.