anjuna-gcp-cli instance describe
anjuna-gcp-cli instance describe --instance <instance-name> [OPTIONS...]
Gets additional information (such as serial and attestation report) for the Google Cloud VM instance.
The anjuna-gcp-cli instance describe
command displays information on the specified
Anjuna Confidential Container running on top of a Google Cloud Confidential VM (CVM) instance.
When no parameters are provided (other than --instance
, which is required),
the command displays the values of all the configuration parameters for the instance.
Options
--logs
Shows messages from Google Cloud Logging service
The Anjuna Confidential Container supports both a serial console and Google Cloud Logging.
Using Cloud Logging is recommended. Application logs are automatically pushed to Cloud Logging if a service account with the Log Writer role is used to create the instance.
The option --logs
shows instance logs from Google Cloud Logging.
By default, it will print the recent instance output and then exit.
Add the --tail
option to stream the output until the Anjuna Confidential Container terminates or the command
is interrupted.
Logs from the Anjuna SEV Runtime include a UTC timestamp with the format %Y/%m/%d %H:%M:%S
.
For example, ANJ-ENCLAVE: 2024/08/26 14:01:59 Powered on
.
To access the logs on the Google Cloud Logging service, you will need to grant the Logs Viewer role to the account being used. |
See Controlling log access for a more detailed explanation on how to use service accounts to control access to the logs.
Google Cloud projects have quota settings that also apply to Cloud Logging I/O loads.
Check Cloud Logging Quotas
for more information on how to configure them for your project.
Frequent read requests can trigger a quota violation error.
anjuna-gcp-cli implements exponential backoff to work with Google’s APIs.
It will print a warning when it adds a pause to slow down the rate.
|
$ anjuna-gcp-cli --project my-project instance describe --instance anjuna-gcp-nginx-instance --logs
ANJ-ENCLAVE: Loaded container image docker.io/library/nginx:latest
ANJ-ENCLAVE: Creating container...
ANJ-ENCLAVE: Created container b01643e5e85f12d8da1e81c4f68bcdd0bfb1e6ac9fa6c25be5115311e5e1363b
ANJ-ENCLAVE: Started container
2025/07/18 20:35:39 [notice] 1#1: using the "epoll" event method
2025/07/18 20:35:39 [notice] 1#1: nginx/1.29.0
2025/07/18 20:35:39 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14+deb12u1)
2025/07/18 20:35:39 [notice] 1#1: OS: Linux 5.16.16
2025/07/18 20:35:39 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2025/07/18 20:35:39 [notice] 1#1: start worker processes
2025/07/18 20:35:39 [notice] 1#1: start worker process 29
2025/07/18 20:35:39 [notice] 1#1: start worker process 30
--serial
Shows messages from the serial console
If Cloud Logging is not available, the Anjuna Confidential Container falls back to logging to the serial console.
The serial console can be viewed by anyone with access to the project, which may expose confidential information in the application logs. The serial console is also extremely slow and may have a significant performance impact. Using Cloud Logging by attaching a service account with appropriate permissions is recommended instead. |
The serial console logs may also be used to diagnose issues if the Anjuna Confidential Container fails to boot before Cloud Logging is available.
By default, --serial
will print the full serial console output and then exit.
Add the --tail
option to stream the output
until the Anjuna Confidential Container terminates or the command is interrupted.
--tail
Streams the output when using the --logs
or --serial
options
--tail
streams the output until the Anjuna Confidential Container terminates or the command is interrupted.
--show-ip
Displays the network access configurations of the instance
The --show-ip
command displays all the network access configurations attached to the instance.
$ anjuna-gcp-cli --project my-project instance describe --instance anjuna-gcp-nginx-instance --show-ip Instance details: Project: confidential-container Zone: us-central1-a Name: anjuna-gcp-nginx-instance ID: 4420867891618320720 Type: n2d-standard-2 Status: RUNNING Network interface nic0: Internal IP: 10.128.0.5 External IP: 34.69.228.74 (External NAT)
--attestation-report
Shows the SEV attestation report
The --attestation-report
command displays the Google Cloud Audit Log events that show:
-
The SEV launch attestation report, which includes:
-
SEV policy
, which is the AMD SEV policy bits set for this VM; policy bits are set at CVM launch time to enforce constraints such as whether debug mode is enabled, key sharing is allowed, and migration settings. -
Integrity evaluation
, which is the result of an integrity check performed by the Virtual Machine Monitor on the measurement computed by AMD SEV.
-
-
The late boot event report, which includes:
-
Measurements
, which contain platform configuration register (PCR) values that record cryptographic hashes of boot components in their actual load sequence. -
Late boot policy evaluation
, which is the result of an integrity check performed by the Virtual Machine Monitor comparing the actual measurements against the expected policy measurements.
-
$ anjuna-gcp-cli instance describe anjuna-gcp-nginx-instance --attestation-report
Instance details:
Project: confidential-container
Zone: us-central1-a
Name: anjuna-gcp-nginx-instance
ID: 4420867891618320720
Type: n2d-standard-2
Status: RUNNING
Collating instance integrity log…
✓ Found instance late boot event
✓ Found instance launch event
Attestation report:
Confidential Computing technology: SEV
SEV policy:
Allow memory debugging: false
Allow memory sharing: false
Allow migration: true
Allow migration outside Google Cloud: true
Allow migration to hosts without SEV: false
Allow migration to hosts with SEV of any version
Measurements:
PCR0: 0x2AAB58E23EA5120D70A3EBCE56BD0E6D5E3035B7
PCR1: 0x7C6CEAE56DA5EC69A014839ED3836C1AD1F97FAE
PCR2: 0xB2A83B0EBF2F8374299A5B2BDFC31EA955AD7236
PCR3: 0xB2A83B0EBF2F8374299A5B2BDFC31EA955AD7236
PCR4: 0xE0437E24A573CC1E254A8FA7E1C9AC59E92545C8
PCR5: 0x75C22FC627F1E2784CC697811CB98A4F7EF2BC22
PCR6: 0xB2A83B0EBF2F8374299A5B2BDFC31EA955AD7236
PCR7: 0xEDE7204673F41AC2592B0D3B4CD429B43F39DC61
PCR8: 0xD8182F4D05B673CB41D9912B2AD3689FBCEBBEF8
PCR9: 0x8363D36D55F279CDD70D8CF2F06BC053DE8497D6
PCR14: 0xA482A15E112717D6A915B989A0EA6140A507E3E6
Integrity evaluation: PASSED
Late boot policy evaluation: PASSED
The Google Cloud API does not provide the values of PCR15
(the application running in the enclave)
and PCR16
(the signing key) in this output,
but the Anjuna Confidential Container will log them to the serial console.
You can view PCR15
and PCR16
with the following command:
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --serial | grep -A5 'SHA256:'
SHA256:
4: 0xCA7F9152C382CADB7465878A2FAAB79F9F4212FCB55D5EFC05228F5CD2D235D5
5: 0xF49478ED66E4A4986C5E6451B620B46BB89C2A5212966AB68D9C29D92DFE92B7
9: 0xF28E3DF729F1C0096CB2FED01C3AA9DDD6C38D9696E08A09F22613E4B0BEBCC9
15: 0xDC863E4ACFA1EECAEABE712E91BDCF8BC874EB8FBEEC1746EBD6D1672998397B
16: 0x0000000000000000000000000000000000000000000000000000000000000000
For more information on PCR values, see Identifying the software in an AMD SEV Confidential VM (CVM).
Examples
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --logs
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --logs --tail
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --serial
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --serial --tail
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --show-ip
$ anjuna-gcp-cli instance describe --instance anjuna-gcp-nginx-instance --attestation-report
$ anjuna-gcp-cli --project my-project instance describe --instance anjuna-gcp-nginx-instance --serial
ANJ-ENCLAVE: Powered on
...
ANJ-ENCLAVE: Loading enclave configuration
ANJ-ENCLAVE: No enclave configuration provided
...
ANJ-ENCLAVE: Loaded container image docker.io/library/nginx:latest
ANJ-ENCLAVE: Creating container...
ANJ-ENCLAVE: Created container b01643e5e85f12d8da1e81c4f68bcdd0bfb1e6ac9fa6c25be5115311e5e1363b
ANJ-ENCLAVE: Started container
2025/07/18 20:35:39 [notice] 1#1: using the "epoll" event method
2025/07/18 20:35:39 [notice] 1#1: nginx/1.29.0
2025/07/18 20:35:39 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14+deb12u1)
2025/07/18 20:35:39 [notice] 1#1: OS: Linux 5.16.16
2025/07/18 20:35:39 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2025/07/18 20:35:39 [notice] 1#1: start worker processes
2025/07/18 20:35:39 [notice] 1#1: start worker process 29
2025/07/18 20:35:39 [notice] 1#1: start worker process 30