AMD SEV-SNP#
How to use the AMD SEV-SNP platform#
CCF must run on an AMD CPU which supports SEV-SNP.
To use SNP, set the enclave type in the node configuration to Virtual
.
Attestation#
SNP attestation provide several fields needed to establish trust. This is specific to the SNP hardware as deployed in confidential Azure Container Instances, see here for more information.
Measurement
Measurement is a digest of the initial memory pages for the SEV-SNP VM, which CCF stores in the nodes.snp.measurements table. New nodes joining a network will provide their code id and the primary will perform an identity check against the table entries.
The first node in a new network will add its code id to the table. Members can then manage which code ids are present in the table with the add_snp_measurement
and remove_node_code
actions.
Security Policy
On startup, the UVM checks code in the container against a security policy. A digest of the security policy is then provided in the attestation in the host_data field. CCF stores authorised host data in the nodes.snp.host_data table. New nodes joining a network will provide their policy digest and the primary will perform an identity check against the table entries.
The first node in a new network will add its policy digest to the table. Members can then manage which policy digests are present in the table with the add_snp_host_data
and remove_snp_host_data
actions.
Note
A node’s security policy can be obtained by decoding the value of the SECURITY_POLICY
environment variable from its base64 encoding to get a raw policy string. The digest is then a SHA256 hash of this raw string.