Envoyer des commentaires
Assertions d'attestation
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Pour en savoir plus sur l'utilisation des assertions d'attestation, consultez Créer une règle d'attestation .
Les assertions disponibles pour créer une règle d'attestation sont détaillées dans le tableau suivant. Les règles peuvent valider les assertions faites par l'image Confidential Space, le conteneur de charge de travail et l'instance de VM.
Affirmations concernant les images
Assertion
Type
Description
assertion.dbgstat
Interagit avec :
Chaîne définie
Vérifie que l'image Confidential Space est la version de débogage ou de production.
Les valeurs valides sont les suivantes :
enable
: vérifiez que l'image de débogage est utilisée.
disabled-since-boot
: vérifiez que l'image de production est utilisée.
Exemples
Le code suivant vérifie que la version de débogage de l'image Confidential Space est utilisée :
assertion.dbgstat == "enable"
Le code suivant vérifie que la version de production de l'image Confidential Space est utilisée :
assertion.dbgstat == "disabled-since-boot"
assertion.submods.confidential_space.support_attributes
Tableau de chaînes.
Vérifie que la version de sécurité du TEE est une image Confidential Space de production. Aucun attribut de compatibilité n'est défini pour les images Confidential Space de débogage.
Il existe trois attributs de compatibilité :
LATEST
: il s'agit de la dernière version de l'image, compatible. L'image LATEST
est également STABLE
et USABLE
.
STABLE
: cette version de l'image est compatible et surveillée pour détecter les failles. Une image STABLE
est également USABLE
.
USABLE
: une image ne contenant que cet attribut n'est plus compatible et n'est plus surveillée pour détecter les failles. L'utilisation de cette solution relève entièrement de votre responsabilité.
EXPERIMENTAL
: une image ne comportant que cet attribut utilise les fonctionnalités d'aperçu. Elle n'est fournie qu'à des fins de tests et ne doit jamais être utilisée en production. Une image EXPERIMENTAL
ne comporte jamais les attributs LATEST
, STABLE
ni USABLE
.
Attention : Étant donné que le jeton par défaut de Confidential Space est actualisé toutes les heures, il n'est pas recommandé de spécifier LATEST
pour les charges de travail de longue durée. L'image Confidential Space peut être mise à jour pendant l'exécution de votre charge de travail. Cela signifie que la charge de travail n'est plus sur la dernière version et que l'attestation échoue.
Exemple
Le code suivant vérifie qu'une version stable de l'image Confidential Space est utilisée :
"STABLE" in assertion.submods.confidential_space.support_attributes
assertion.swname
Chaîne définie
Vérifie le logiciel exécuté sur l'entité de test. La valeur est toujours CONFIDENTIAL_SPACE
.
Exemple
assertion.swname == "CONFIDENTIAL_SPACE"
assertion.swversion
Tableau de chaînes.
Vérifie la version logicielle de l'image Confidential Space. Nous vous recommandons d'utiliser assertion.submods.confidential_space.support_attributes
pour cibler la dernière version d'une image.
Exemple
int(assertion.swversion[0]) == 230103
Assertions de conteneur
Assertion
Type
Description
assertion.submods.container.cmd_override
Interagit avec :
Auteur de la charge de travail : règle de lancement
allow_cmd_override
.
Opérateur de charge de travail : variable de métadonnées
tee-cmd
.
Tableau de chaînes.
Vérifie les commandes et les paramètres
CMD utilisés dans l'image de charge de travail.
Exemples
Le code suivant vérifie que l'objet CMD de l'image de charge de travail n'a pas été écrasé :
size(assertion.submods.container.cmd_override) == 0
Le code suivant vérifie que program
est le seul contenu dans les remplacements CMD :
assertion.submods.container.cmd_override == ['program']
assertion.submods.container.env
Interagit avec :
Objet JSON
Vérifie que les variables d'environnement et leurs valeurs ont été explicitement transmises au conteneur.
Exemple
Le code suivant vérifie que la variable d'environnement example-env-1
est définie sur value-1
et que example-env-2
est définie sur value-2
.
assertion.submods.container.env == {"example-env-1": "value-1", "example-env-2": "value-2"}
assertion.submods.container.env_override
Interagit avec :
Chaîne
Vérifie si l'opérateur de charge de travail a écrasé les variables d'environnement dans le conteneur.
Exemples
Le code suivant vérifie que l'opérateur de charge de travail n'a pas remplacé la variable d'environnement example
:
!has(assertion.submods.container.env_override.example)
Le code suivant vérifie que l'opérateur de charge de travail n'a écrasé aucune variable d'environnement :
size(assertion.submods.container.env_override) == 0
assertion.submods.container.image_digest
Chaîne
Vérifie le condensé de l'image du conteneur de charge de travail. Spécifier
cette condition permet à plusieurs parties d'accepter une charge de travail autorisée et autorisée à accéder à leurs données.
Exemple
assertion.submods.container.image_digest == "sha256:837ccb607e312b170fac7383d7ccfd61fa5072793f19a25e75fbacb56539b86b"
assertion.submods.container.image_id
Chaîne
Vérifie l'ID d'image du conteneur de charge de travail.
Exemple
assertion.submods.container.image_id == "sha256:652a44b0e911271ba07cf2915cd700fdfa50abd62a98f87a57fdebc59843d93f"
assertion.submods.container.image_reference
Interagit avec :
Chaîne
Vérifie l'emplacement du conteneur de charge de travail exécuté sur l'image Confidential Space.
Exemple
assertion.submods.container.image_reference == "us-docker.pkg.dev/PROJECT_ID/WORKLOAD_CONTAINER:latest"
assertion.submods.container.image_signatures
Interagit avec :
Objet JSON
Vérifie que l'image possède une certaine signature ou qu'elle est signée par une clé publique et un algorithme de signature. Spécifier cette condition permet à plusieurs parties d'accepter une charge de travail autorisée et autorisée à accéder à leurs données.
L'assertion peut inclure les éléments suivants :
key_id
: empreinte hexadécimale de la clé publique. Pour obtenir l'empreinte, vous pouvez exécuter la commande suivante :
openssl pkey -pubin -in public_key.pem -outform DER | openssl sha256
Où public_key.pem
correspond à votre clé publique au format PEM.
signature
: signature d'une charge utile associée au conteneur signé et qui suit le format
Simple Signing .
signature_algorithm
: algorithme utilisé pour signer la clé. Choisissez l'une des options suivantes :
RSASSA_PSS_SHA256
(RSASSA-PSS avec un condensé SHA-256)
RSASSA_PKCS1V15_SHA256
(RSASSA-PKCS1 v1_5
avec un condensé SHA-256)
ECDSA_P256_SHA256
(ECDSA sur la courbe P-256 avec un condensé SHA-256)
Exemple
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
Interagit avec :
Chaîne définie
Vérifie la règle de redémarrage du lanceur de conteneurs lorsque la charge de travail s'arrête.
Les valeurs valides sont les suivantes :
Never
(par défaut)
Always
OnFailure
Exemple
assertion.submods.container.restart_policy == "Never"
Assertions de VM
Assertion
Type
Description
assertion.google_service_accounts
Interagit avec :
Tableau de chaînes.
Vérifie qu'un compte de service spécifié est associé à la VM qui exécute la charge de travail ou a été répertorié à l'aide de
tee-impersonate-service-accounts
dans les métadonnées de la VM.
Exemple
workload-service-account@my-project.iam.gserviceaccount.com in assertion.google_service_accounts
assertion.hwmodel
Chaîne
Vérifie la technologie d'informatique confidentielle sous-jacente. Les plates-formes compatibles sont les suivantes :
Exemple
assertion.hwmodel == "GCP_AMD_SEV"
assertion.submods.confidential_space.monitoring_enabled
Interagit avec :
Booléen
Vérifie l'état de la surveillance sur l'entité d'attestation.
Exemple
assertion.submods.confidential_space.monitoring_enabled.memory == true
assertion.submods.gce.instance_id
Chaîne
Valide l'ID de l'instance de VM.
Exemple
assertion.submods.gce.instance_id == "0000000000000000000"
assertion.submods.gce.instance_name
Chaîne
Vérifie le nom de l'instance de VM.
Exemple
assertion.submods.gce.instance_name == "workload-vm"
assertion.submods.gce.project_id
Chaîne
Permet de vérifier que la VM exécute un projet Google Cloud avec l'ID de projet spécifié.
Exemple
assertion.submods.gce.project_id == "project-id"
assertion.submods.gce.project_number
Chaîne
Vérifie que la VM est en cours d'exécution dans un projet Google Cloud avec le numéro de projet spécifié.
Exemple
assertion.submods.gce.project_number == "00000000000"
assertion.submods.gce.zone
Interagit avec :
Opérateur de charge de travail : valeur
--zone
.
Chaîne
Vérifie que la VM est en cours d'exécution dans la zone spécifiée.
Exemple
assertion.submods.gce.zone == "us-central1-a"
assertion.submods.nvidia_gpu.cc_mode
Interagit avec :
Chaîne définie
Vérifie l'état du pilote informatique confidentielle de NVIDIA.
Les valeurs valides sont les suivantes :
OFF
: aucune des fonctionnalités NVIDIA Confidential Computing n'est active.
ON
: le matériel, le micrologiciel et le logiciel NVIDIA H100 ont entièrement activé les fonctionnalités de confidential computing.
DEVTOOLS
: le GPU est dans un mode de calcul confidentiel partiel qui correspond aux workflows du mode ON
, mais désactive les protections de sécurité.
Exemple
assertion.submods.nvidia_gpu.cc_mode == "ON"
Envoyer des commentaires
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0 , et les échantillons de code sont régis par une licence Apache 2.0 . Pour en savoir plus, consultez les Règles du site Google Developers . Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
Voulez-vous nous donner plus d'informations ?
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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,[]]