Pernyataan pengesahan

Untuk mempelajari lebih lanjut cara menggunakan pernyataan pengesahan, lihat Membuat kebijakan pengesahan.

Pernyataan yang tersedia untuk membuat kebijakan pengesahan dijelaskan dalam tabel berikut. Kebijakan dapat memvalidasi pernyataan yang dibuat oleh image Confidential Space, container workload, dan instance VM.

Pernyataan gambar

Pernyataan Jenis Deskripsi

assertion.dbgstat

Berinteraksi dengan:

Enumerasi

Memverifikasi bahwa image Confidential Space adalah versi debug atau produksi.

Nilai yang valid adalah sebagai berikut:

  • enable: Periksa apakah image debug sedang digunakan.
  • disabled-since-boot: Periksa apakah gambar produksi sedang digunakan.
Contoh

Kode berikut memverifikasi bahwa image Confidential Space versi debug sedang digunakan:

assertion.dbgstat == "enable"

Kode berikut memverifikasi bahwa image Confidential Space versi produksi sedang digunakan:

assertion.dbgstat == "disabled-since-boot"
assertion.submods.confidential_space.support_attributes Array string

Memverifikasi bahwa versi keamanan TEE adalah image Confidential Space produksi. Image Confidential Space untuk proses debug tidak memiliki set atribut dukungan.

Tabel berikut menjelaskan atribut dukungan yang ditemukan pada image Confidential Space produksi.

Atribut dukungan Deskripsi

LATEST

Gambar LATEST juga memiliki atribut dukungan berikut:

  • STABLE
  • USABLE

Masa aktif gambar: Sekitar satu bulan. Setelah itu, atribut dukungan LATEST dihapus.

Ini adalah versi terbaru image Confidential Space, yang didukung dan dipantau untuk mendeteksi kerentanan.

Untuk workload yang berjalan lama, sebaiknya Anda tidak menentukan LATEST sebagai bagian dari kebijakan pengesahan Anda. Hal ini karena image Confidential Space mungkin diperbarui saat workload Anda berjalan, sehingga image Confidential Space yang Anda gunakan tidak lagi LATEST, dan menyebabkan workload Anda gagal pengesahan saat token default Confidential Space diperbarui berikutnya.

STABLE

Gambar STABLE juga memiliki atribut dukungan berikut:

  • USABLE

Masa aktif gambar: Sekitar enam bulan. Mulai 1 April 2027, atribut dukungan STABLE dihapus setelah masa berlaku gambar berakhir.

Gambar dengan atribut STABLE didukung dan dipantau untuk mengetahui kerentanan selama enam bulan. Sebaiknya tulis kebijakan pengesahan berdasarkan atribut STABLE.

Dalam kasus yang jarang terjadi, atribut STABLE dapat dihapus selama periode dukungan enam bulan normal, seperti saat kerentanan kritis ditemukan.

USABLE

Gambar dengan hanya atribut USABLE masih dapat digunakan, tetapi dianggap tidak digunakan lagi. Gambar yang tidak digunakan lagi tidak didukung, dan sudah lebih dari enam bulan. Gunakan dengan risiko Anda sendiri.

Gambar USABLE memiliki properti deprecated.deprecated. Nilainya adalah stempel waktu saat gambar diperkirakan akan dihentikan. Properti gambar dapat dilihat dengan perintah gcloud compute images describe, atau dengan metode REST images.get. Contoh:

gcloud compute images describe confidential-space-240800 \
    --format=json \
    --project=confidential-space-images
EXPERIMENTAL

Gambar dengan atribut ini saja menggunakan fitur pratinjau. EXPERIMENTAL hanya ditujukan untuk tujuan pengujian, dan tidak boleh digunakan dalam produksi.

Gambar EXPERIMENTAL tidak pernah memiliki atribut LATEST, STABLE, atau USABLE.

Sebaiknya Anda selalu mengupdate image Confidential Space Anda. Untuk mempelajari cara memperbarui image Confidential Space, lihat Memperbarui image Confidential Space.

Contoh

Kode berikut memverifikasi bahwa image Confidential Space versi stabil sedang digunakan:

"STABLE" in assertion.submods.confidential_space.support_attributes
assertion.swname Enumerasi

Memverifikasi software yang berjalan di entitas yang membuktikan. Nilainya selalu CONFIDENTIAL_SPACE.

Contoh
assertion.swname == "CONFIDENTIAL_SPACE"
assertion.swversion Array string

Memverifikasi versi software image Confidential Space. Sebaiknya gunakan assertion.submods.confidential_space.support_attributes untuk menargetkan versi terbaru gambar.

Contoh
int(assertion.swversion[0]) == 230103

Pernyataan penampung

Pernyataan Jenis Deskripsi

assertion.submods.container.cmd_override

Berinteraksi dengan:

Array string

Memverifikasi perintah CMD dan parameter yang digunakan dalam image workload.

Contoh

Kode berikut memverifikasi bahwa CMD image workload belum ditimpa:

size(assertion.submods.container.cmd_override) == 0

Kode berikut memverifikasi bahwa program adalah satu-satunya konten dalam penggantian CMD:

assertion.submods.container.cmd_override == ['program']

assertion.submods.container.env

Berinteraksi dengan:

Objek JSON

Memverifikasi bahwa variabel lingkungan dan nilainya telah diteruskan secara eksplisit ke container.

Contoh

Kode berikut memverifikasi bahwa variabel lingkungan example-env-1 ditetapkan ke value-1, dan example-env-2 ditetapkan ke value-2.

assertion.submods.container.env == {"example-env-1": "value-1", "example-env-2": "value-2"}

assertion.submods.container.env_override

Berinteraksi dengan:

String

Memverifikasi apakah operator workload telah mengganti variabel lingkungan dalam container.

Contoh

Kode berikut memverifikasi bahwa operator workload belum mengganti variabel lingkungan example:

!has(assertion.submods.container.env_override.example)

Kode berikut memverifikasi bahwa operator workload belum menimpa variabel lingkungan apa pun:

size(assertion.submods.container.env_override) == 0
assertion.submods.container.image_digest String

Memverifikasi ringkasan image container beban kerja. Dengan menentukan kondisi ini, beberapa pihak dapat menyetujui workload resmi yang diizinkan untuk mengakses data mereka.

Contoh
assertion.submods.container.image_digest == "sha256:837ccb607e312b170fac7383d7ccfd61fa5072793f19a25e75fbacb56539b86b"
assertion.submods.container.image_id String

Memverifikasi ID image container beban kerja.

Contoh
assertion.submods.container.image_id == "sha256:652a44b0e911271ba07cf2915cd700fdfa50abd62a98f87a57fdebc59843d93f"

assertion.submods.container.image_reference

Berinteraksi dengan:

String

Memverifikasi lokasi container workload yang berjalan di atas image Confidential Space.

Contoh
assertion.submods.container.image_reference == "us-docker.pkg.dev/PROJECT_ID/WORKLOAD_CONTAINER:latest"

assertion.submods.container.image_signatures

Berinteraksi dengan:

Objek JSON

Memverifikasi bahwa gambar memiliki tanda tangan tertentu atau ditandatangani oleh algoritma penandatanganan dan kunci publik. Dengan menentukan kondisi ini, beberapa pihak dapat menyetujui workload yang diizinkan yang diizinkan untuk mengakses data mereka.

Pernyataan dapat mencakup elemen berikut:

  • key_id: Sidik jari heksadesimal dari kunci publik. Untuk mendapatkan sidik jari, Anda dapat menjalankan perintah berikut:

    openssl pkey -pubin -in public_key.pem -outform DER | openssl sha256

    Dengan public_key.pem adalah kunci publik Anda dalam format PEM.

  • signature: Tanda tangan pada payload yang terkait dengan penampung bertanda tangan dan yang mengikuti format Penandatanganan Sederhana.
  • signature_algorithm: Algoritma yang digunakan untuk menandatangani kunci. Salah satu dari berikut ini:

    • RSASSA_PSS_SHA256 (RSASSA-PSS dengan ringkasan SHA-256)
    • RSASSA_PKCS1V15_SHA256 (RSASSA-PKCS1 v1_5 dengan ringkasan SHA-256)
    • ECDSA_P256_SHA256 (ECDSA pada Kurva P-256 dengan ringkasan SHA-256)
Contoh
['ECDSA_P256_SHA256:PUBLIC_KEY_FINGERPRINT'].exists(fingerprint, fingerprint in assertion.submods.container.image_signatures.map(sig, sig.signature_algorithm+':'+sig.key_id))

assertion.submods.container.restart_policy

Berinteraksi dengan:

Enumerasi

Memverifikasi kebijakan mulai ulang peluncur container saat workload berhenti.

Nilai yang valid adalah sebagai berikut:

  • Never (default)
  • Always
  • OnFailure
Contoh
assertion.submods.container.restart_policy == "Never"

Pernyataan VM

Pernyataan Jenis Deskripsi

assertion.google_service_accounts

Berinteraksi dengan:

Array string

Memverifikasi bahwa akun layanan tertentu terhubung ke VM yang menjalankan workload, atau telah dicantumkan menggunakan tee-impersonate-service-accounts di metadata VM.

Contoh
workload-service-account@my-project.iam.gserviceaccount.com in assertion.google_service_accounts
assertion.hwmodel String

Memverifikasi teknologi Confidential Computing yang mendasarinya. Platform yang didukung adalah sebagai berikut:

  • GCP_AMD_SEV
  • INTEL_TDX
Contoh
assertion.hwmodel == "GCP_AMD_SEV"

assertion.submods.confidential_space.monitoring_enabled

Berinteraksi dengan:

Boolean

Memverifikasi status pemantauan pada entitas yang membuktikan.

Contoh
assertion.submods.confidential_space.monitoring_enabled.memory == true
assertion.submods.gce.instance_id String

Memverifikasi ID instance VM.

Contoh
assertion.submods.gce.instance_id == "0000000000000000000"
assertion.submods.gce.instance_name String

Memverifikasi nama instance VM.

Contoh
assertion.submods.gce.instance_name == "workload-vm"
assertion.submods.gce.project_id String

Memverifikasi bahwa VM menjalankan project Google Cloud dengan project ID yang ditentukan.

Contoh
assertion.submods.gce.project_id == "project-id"
assertion.submods.gce.project_number String

Memverifikasi bahwa VM berjalan di project Google Cloud dengan nomor project yang ditentukan.

Contoh
assertion.submods.gce.project_number == "00000000000"

assertion.submods.gce.zone

Berinteraksi dengan:

String

Memverifikasi bahwa VM berjalan di zona yang ditentukan.

Contoh
assertion.submods.gce.zone == "us-central1-a"

assertion.submods.nvidia_gpu.cc_feature

Berinteraksi dengan:

Enumerasi

Memverifikasi fitur Confidential Computing yang didukung oleh GPU NVIDIA. Hanya mode penerusan GPU tunggal (SPT) yang didukung di Confidential Space, sehingga nilainya selalu SPT.

Untuk mengetahui informasi selengkapnya tentang dukungan NVIDIA Confidential Computing, lihat NVIDIA Trusted Computing Solutions (PDF).

Contoh
assertion.submods.nvidia_gpu.cc_feature == "SPT"

assertion.submods.nvidia_gpu.cc_mode

Berinteraksi dengan:

Enumerasi

Memverifikasi status driver Confidential Computing NVIDIA. Nilai yang valid adalah sebagai berikut:

  • OFF: tidak ada fitur NVIDIA Confidential Computing yang aktif.
  • ON: hardware, firmware, dan software NVIDIA H100 telah mengaktifkan fitur confidential computing sepenuhnya.
  • DEVTOOLS: GPU berada dalam mode komputasi rahasia parsial yang cocok dengan alur kerja mode ON, tetapi menonaktifkan perlindungan keamanan.
Contoh
assertion.submods.nvidia_gpu.cc_mode == "ON"

assertion.submods.nvidia_gpu.gpus

Berinteraksi dengan:

Array objek

Memverifikasi klaim untuk setiap GPU NVIDIA yang dibuktikan. Confidential Space hanya mendukung satu klaim GPU.

Objek gpus mirip dengan berikut ini:

{
  "hwmodel": "GCP_NVIDIA_H100",
  "ueid": "490457405999046854973671575630853621547794591064",
  "l4_serial_number": "1216669666319372030078",
  "driver_version": "570.00",
  "vbios_version": "96.00.9F.00.01"
}
Contoh

Kode berikut memverifikasi bahwa model hardware GPU pertama adalah NVIDIA H100 yang berjalan di Google Cloud:

assertion.submods.nvidia_gpu.gpus[0].hwmodel == "GCP_NVIDIA_H100"

Kode berikut memverifikasi bahwa klaim pengesahan memiliki klaim terkait GPU:

has(assertion.submods.nvidia_gpu.gpus)