Envie comentários
Declarações de atestado
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Para saber mais sobre como usar declarações de atestado, consulte
Criar uma política de atestado .
As declarações disponíveis para criar uma política de atestado são detalhadas na
tabela a seguir. As políticas podem validar declarações feitas pela imagem do Confidential Space, pelo contêiner de carga de trabalho e pela instância de VM.
Declarações de imagem
Declaração
Tipo
Descrição
assertion.dbgstat
Interage com:
String definida
Verifica se a imagem do Confidential Space é a versão de depuração ou
de produção.
Os valores válidos são:
enable
: verifique se a imagem de depuração está sendo usada.
disabled-since-boot
: verifique se a imagem de produção está sendo usada.
Exemplos
O código a seguir verifica se a versão de depuração da
imagem do Confidential Space está sendo usada:
assertion.dbgstat == "enable"
O código a seguir verifica se a versão de produção da
imagem do Confidential Space está sendo usada:
assertion.dbgstat == "disabled-since-boot"
assertion.submods.confidential_space.support_attributes
Matriz de strings
Verifica se a versão de segurança do TEE é uma imagem de produção do
Confidential Space. As imagens de depuração do Confidential Space não têm um atributo de suporte definido.
Há três atributos de suporte:
LATEST
: essa é a versão mais recente da imagem
e é compatível. A imagem LATEST
também é
STABLE
e USABLE
.
STABLE
: esta versão da imagem é compatível
e monitorada em busca de vulnerabilidades. Uma imagem STABLE
também é USABLE
.
USABLE
: uma imagem com apenas esse atributo não tem
suporte e não é mais monitorada em busca de vulnerabilidades. Use por sua
conta e risco.
EXPERIMENTAL
: uma imagem com apenas esse atributo
usa recursos de visualização. Ele é destinado apenas a testes e nunca deve ser usado na produção. Uma imagem
EXPERIMENTAL
nunca tem os atributos
LATEST
, STABLE
ou
USABLE
.
Atenção : como o token padrão do Confidential Space é
atualizado a cada hora, não é recomendado especificar LATEST
para
cargas de trabalho de longa duração. A imagem do Confidential Space
pode ser atualizada enquanto sua carga de trabalho está em execução, o que significa
que a carga de trabalho não está mais na versão mais recente e falha
na comprovação como resultado.
Exemplo
O código a seguir verifica se uma versão estável da
imagem do Confidential Space está sendo usada:
"STABLE" in assertion.submods.confidential_space.support_attributes
assertion.swname
String definida
Verifica o software em execução na entidade de atestado. O valor é sempre CONFIDENTIAL_SPACE
.
Exemplo
assertion.swname == "CONFIDENTIAL_SPACE"
assertion.swversion
Matriz de strings
Verifica a versão do software da imagem do Confidential Space. Recomendamos usar
assertion.submods.confidential_space.support_attributes
para acessar a versão mais recente de uma imagem.
Exemplo
int(assertion.swversion[0]) == 230103
Declarações de contêiner
Declaração
Tipo
Descrição
assertion.submods.container.cmd_override
Interage com:
Autor da carga de trabalho : a política de
lançamento
allow_cmd_override
.
Operador de carga de trabalho : a variável de metadados
tee-cmd
.
Matriz de strings
Verifica os
comandos e parâmetros do
CMD usados na imagem da carga de trabalho.
Exemplos
O código a seguir verifica se o CMD da imagem da carga de trabalho
não foi substituído:
size(assertion.submods.container.cmd_override) == 0
O código a seguir verifica se program
é o
único conteúdo nas substituições do CMD:
assertion.submods.container.cmd_override == ['program']
assertion.submods.container.env
Interage com:
objeto JSON
Verifica se as variáveis de ambiente e os respectivos valores foram transmitidos explicitamente para o contêiner.
Exemplo
O código a seguir verifica se a variável de ambiente
example-env-1
está definida como value-1
e
example-env-2
está definida como value-2
.
assertion.submods.container.env == {"example-env-1": "value-1", "example-env-2": "value-2"}
assertion.submods.container.env_override
Interage com:
String
Verifica se o operador de carga de trabalho substituiu as variáveis de ambiente no contêiner.
Exemplos
O código a seguir verifica se o operador de carga de trabalho não substituiu a variável de ambiente example
:
!has(assertion.submods.container.env_override.example)
O código a seguir verifica se o operador de carga de trabalho não
substituiu nenhuma variável de ambiente:
size(assertion.submods.container.env_override) == 0
assertion.submods.container.image_digest
String
Verifica o resumo da imagem do contêiner da carga de trabalho. Especificar
essa condição permite que várias partes concordem com uma carga de trabalho autorizada que tenha permissão para acessar os dados delas.
Exemplo
assertion.submods.container.image_digest == "sha256:837ccb607e312b170fac7383d7ccfd61fa5072793f19a25e75fbacb56539b86b"
assertion.submods.container.image_id
String
Verifica o ID da imagem do contêiner da carga de trabalho.
Exemplo
assertion.submods.container.image_id == "sha256:652a44b0e911271ba07cf2915cd700fdfa50abd62a98f87a57fdebc59843d93f"
assertion.submods.container.image_reference
Interage com:
String
Verifica o local do contêiner da carga de trabalho em execução sobre
a imagem do Confidential Space.
Exemplo
assertion.submods.container.image_reference == "us-docker.pkg.dev/PROJECT_ID/WORKLOAD_CONTAINER:latest"
assertion.submods.container.image_signatures
Interage com:
objeto JSON
Verifica se a imagem tem uma determinada assinatura ou se foi assinada por
uma chave pública e um algoritmo de assinatura. Especificar essa condição permite que várias partes concordem com uma carga de trabalho autorizada que tenha permissão para acessar os dados delas.
A declaração pode incluir os seguintes elementos:
key_id
: a impressão digital hexadecimal da chave pública. Para encontrar a impressão digital, execute o seguinte comando:
openssl pkey -pubin -in public_key.pem -outform DER | openssl sha256
Em que public_key.pem
é sua chave pública no formato PEM.
signature
: a assinatura em um payload associado ao contêiner assinado e que segue o
formato de assinatura simples .
signature_algorithm
: o algoritmo usado para
assinar a chave. Opções:
RSASSA_PSS_SHA256
(RSASSA-PSS com um resumo SHA-256)
RSASSA_PKCS1V15_SHA256
(RSASSA-PKCS1 v1_5
com um resumo SHA-256)
ECDSA_P256_SHA256
(ECDSA na curva P-256
com um resumo SHA-256)
Exemplo
assertion.swname == 'CONFIDENTIAL_SPACE' && ['ECDSA_P256_SHA256:PUBLIC_KEY_FINGERPRINT '].exists(fingerprint, fingerprint in assertion.submods.container.image_signatures.map(sig, sig.signature_algorithm+':'+sig.key_id)) && 'serviceaccount.iam.gserviceaccount.com' in assertion.google_service_accounts"
assertion.submods.container.restart_policy
Interage com:
String definida
Verifica a política de reinicialização do inicializador do contêiner quando
a carga de trabalho é interrompida.
Os valores válidos são:
Never
(padrão)
Always
OnFailure
Exemplo
assertion.submods.container.restart_policy == "Never"
Declarações de VM
Declaração
Tipo
Descrição
assertion.google_service_accounts
Interage com:
Matriz de strings
Verifica se uma conta de serviço especificada está conectada à
VM que está executando a carga de trabalho ou se foi listada usando
tee-impersonate-service-accounts
nos metadados da VM.
Exemplo
workload-service-account@my-project.iam.gserviceaccount.com in assertion.google_service_accounts
assertion.hwmodel
String
Verifica a tecnologia de Computação confidencial subjacente. As plataformas
compatíveis são as seguintes:
Exemplo
assertion.hwmodel == "GCP_AMD_SEV"
assertion.submods.confidential_space.monitoring_enabled
Interage com:
Booleano
Verifica o estado de monitoramento na entidade de atestado.
Exemplo
assertion.submods.confidential_space.monitoring_enabled.memory == true
assertion.submods.gce.instance_id
String
Verifica o ID da instância de VM.
Exemplo
assertion.submods.gce.instance_id == "0000000000000000000"
assertion.submods.gce.instance_name
String
Verifica o nome da instância de VM.
Exemplo
assertion.submods.gce.instance_name == "workload-vm"
assertion.submods.gce.project_id
String
Verifica se a VM está executando um projeto Google Cloud com o ID do projeto especificado.
Exemplo
assertion.submods.gce.project_id == "project-id"
assertion.submods.gce.project_number
String
Verifica se a VM está em execução em um projeto Google Cloud com
o número de projeto especificado.
Exemplo
assertion.submods.gce.project_number == "00000000000"
assertion.submods.gce.zone
Interage com:
Operador de carga de trabalho : o valor
--zone
.
String
Verifica se a VM está em execução na zona especificada.
Exemplo
assertion.submods.gce.zone == "us-central1-a"
assertion.submods.nvidia_gpu.cc_mode
Interage com:
String definida
Verifica o status do driver de computação confidencial da NVIDIA.
Os valores válidos são:
OFF
: nenhum dos recursos de computação confidencial da NVIDIA está
ativo.
ON
: o hardware, o firmware e o software da NVIDIA H100 ativaram totalmente os recursos de computação confidencial.
DEVTOOLS
: a GPU está em um modo de computação confidencial parcial
que corresponde aos fluxos de trabalho do modo ON
, mas desativa as proteções de segurança.
Exemplo
assertion.submods.nvidia_gpu.cc_mode == "ON"
Envie comentários
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons , e as amostras de código são licenciadas de acordo com a Licença Apache 2.0 . Para mais detalhes, consulte as políticas do site do Google Developers . Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-04 UTC.
Quer enviar seu feedback?
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 UTC."],[[["\u003cp\u003eAttestation policies can validate assertions made by the Confidential Space image, the workload container, and the VM, using a variety of assertions.\u003c/p\u003e\n"],["\u003cp\u003eImage assertions, such as \u003ccode\u003eassertion.dbgstat\u003c/code\u003e and \u003ccode\u003eassertion.submods.confidential_space.support_attributes\u003c/code\u003e, verify the software version and security attributes of the Confidential Space image.\u003c/p\u003e\n"],["\u003cp\u003eContainer assertions, such as \u003ccode\u003eassertion.submods.container.cmd_override\u003c/code\u003e and \u003ccode\u003eassertion.submods.container.env\u003c/code\u003e, verify the configuration and integrity of the workload container, including environment variables and command overrides.\u003c/p\u003e\n"],["\u003cp\u003eVM assertions, including \u003ccode\u003eassertion.google_service_accounts\u003c/code\u003e and \u003ccode\u003eassertion.hwmodel\u003c/code\u003e, verify details about the virtual machine environment, such as service accounts, hardware model, and project information.\u003c/p\u003e\n"],["\u003cp\u003eThe table provided lists a multitude of assertions that can be used to create and enforce an attestation policy, with each assertion's type and a specific description.\u003c/p\u003e\n"]]],[],null,[]]