의견 보내기
증명 어설션
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
증명 어설션 사용에 관한 자세한 내용은 증명 정책 만들기 를 참고하세요.
다음 표에서는 증명 정책을 구성하는 데 사용할 수 있는 어설션을 자세히 보여줍니다. Confidential Space 이미지, 워크로드 컨테이너, VM에서 실행한 어설션을 검증할 수 있습니다.
이미지 어설션
어설션
유형
설명
assertion.dbgstat
다음과 상호작용:
정의된 문자열
Confidential Space 이미지가 디버그 또는 프로덕션 버전인지 확인합니다.
유효한 값은 다음과 같습니다.
enable
: 디버그 이미지가 사용되고 있는지 확인합니다.
disabled-since-boot
: 프로덕션 이미지가 사용되고 있는지 확인합니다.
예시
다음 코드는 Confidential Space 이미지의 디버그 버전이 사용 중인지 확인합니다.
assertion.dbgstat == "enable"
다음 코드는 Confidential Space 이미지의 프로덕션 버전이 사용 중인지 확인합니다.
assertion.dbgstat == "disabled-since-boot"
assertion.submods.confidential_space.support_attributes
문자열 배열
TEE의 보안 버전이 프로덕션 Confidential Space 이미지인지 확인합니다. 디버그 Confidential Space 이미지에는 설정된 지원 속성이 없습니다.
지원 속성은 세 가지입니다.
LATEST
: 최신 버전의 이미지이며 지원됩니다. LATEST
이미지는 STABLE
및 USABLE
이기도 합니다.
STABLE
: 이 버전의 이미지는 지원이 제공되며 취약점이 모니터링됩니다. STABLE
이미지도 USABLE
입니다.
USABLE
: 이 속성만 있는 이미지는 지원이 중단되어 더 이상 취약점이 모니터링되지 않습니다. 사용에 따른 책임은 사용자에게 있습니다.
주의 : 비공개 공간 기본 토큰은 매시간 새로고침되므로 장기 실행 워크로드에는 LATEST
를 지정하지 않는 것이 좋습니다. 워크로드가 실행되는 동안 Confidential Space 이미지가 업데이트될 수 있습니다. 즉, 워크로드가 더 이상 최신 버전이 아니므로 증명이 실패합니다.
예
다음 코드는 안정적인 버전의 Confidential Space 이미지가 사용 중인지 확인합니다.
"STABLE" in assertion.submods.confidential_space.support_attributes
assertion.swname
정의된 문자열
증명 항목에서 실행되는 소프트웨어를 확인합니다. 이 값은 항상 CONFIDENTIAL_SPACE
입니다.
예
assertion.swname == "CONFIDENTIAL_SPACE"
assertion.swversion
문자열 배열
Confidential Space 이미지의 소프트웨어 버전을 확인합니다. 최신 버전의 이미지를 타겟팅하려면 대신 assertion.submods.confidential_space.support_attributes
를 사용하는 것이 좋습니다.
예
int(assertion.swversion[0]) == 230103
컨테이너 어설션
어설션
유형
설명
assertion.submods.container.cmd_override
다음과 상호작용:
문자열 배열
워크로드 이미지에 사용되는
CMD 명령어 및 매개변수를 확인합니다.
예시
다음 코드는 워크로드 이미지의 CMD가 덮어쓰지 않았는지 확인합니다.
size(assertion.submods.container.cmd_override) == 0
다음 코드는 program
가 CMD 재정의의 유일한 콘텐츠인지 확인합니다.
assertion.submods.container.cmd_override == ['program']
assertion.submods.container.env
다음과 상호작용:
JSON 개체
환경 변수 및 해당 값이 컨테이너로 명시적으로 전달되었는지 확인합니다.
예
다음 코드는 환경 변수 example-env-1
가 value-1
로 설정되었고 example-env-2
가 value-2
로 설정되었는지 확인합니다.
assertion.submods.container.env == {"example-env-1": "value-1", "example-env-2": "value-2"}
assertion.submods.container.env_override
다음과 상호작용:
문자열
워크로드 운영자가 컨테이너에서 환경 변수를 덮어썼는지 확인합니다.
예시
다음 코드는 워크로드 운영자가 example
환경 변수를 재정의하지 않았는지 확인합니다.
!has(assertion.submods.container.env_override.example)
다음 코드는 워크로드 운영자가 환경 변수를 덮어쓰지 않았는지 확인합니다.
size(assertion.submods.container.env_override) == 0
assertion.submods.container.image_digest
문자열
워크로드 컨테이너의 이미지 다이제스트를 확인합니다. 이 조건을 지정하면 여러 당사자가 자신의 데이터에 액세스하도록 승인된 워크로드에 동의할 수 있습니다.
예
assertion.submods.container.image_digest == "sha256:837ccb607e312b170fac7383d7ccfd61fa5072793f19a25e75fbacb56539b86b"
assertion.submods.container.image_id
문자열
워크로드 컨테이너의 이미지 ID를 확인합니다.
예
assertion.submods.container.image_id == "sha256:652a44b0e911271ba07cf2915cd700fdfa50abd62a98f87a57fdebc59843d93f"
assertion.submods.container.image_reference
다음과 상호작용:
문자열
Confidential Space 이미지 위에 실행되는 워크로드 컨테이너의 위치를 확인합니다.
예
assertion.submods.container.image_reference == "us-docker.pkg.dev/PROJECT_ID/WORKLOAD_CONTAINER:latest"
assertion.submods.container.image_signatures
다음과 상호작용:
JSON 개체
이미지에 특정 서명이 있거나 공개 키 및 서명 알고리즘으로 서명되었는지 확인합니다. 이 조건을 지정하면 여러 당사자가 자신의 데이터에 액세스하도록 승인된 워크로드에 동의할 수 있습니다.
어설션에는 다음 요소가 포함될 수 있습니다.
key_id
: 공개 키의 16진수 디지털 지문입니다. 지문을 가져오려면 다음 명령어를 실행하면 됩니다.
openssl pkey -pubin -in public_key.pem -outform DER | openssl sha256
여기서 public_key.pem
는 PEM 형식의 공개 키입니다.
signature
: 서명된 컨테이너와 연결되어 있고
간단한 서명 형식 을 따르는 페이로드의 서명입니다.
signature_algorithm
: 키에 서명하는 데 사용되는 알고리즘입니다. 다음 중 하나입니다.
RSASSA_PSS_SHA256
(SHA-256 다이제스트가 있는 RSASSA-PSS)
RSASSA_PKCS1V15_SHA256
(SHA-256 다이제스트가 있는 RSASSA-PKCS1 v1_5)
ECDSA_P256_SHA256
(SHA-256 다이제스트가 있는 P-256 곡선의 ECDSA)
예
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
다음과 상호작용:
정의된 문자열
워크로드가 중지될 때 컨테이너 런처의 다시 시작 정책을 확인합니다.
유효한 값은 다음과 같습니다.
Never
(기본)
Always
OnFailure
예
assertion.submods.container.restart_policy == "Never"
VM 어설션
어설션
유형
설명
assertion.google_service_accounts
다음과 상호작용:
문자열 배열
지정된 서비스 계정이 워크로드를 실행하는 VM에 연결되었는지 또는 VM 메타데이터에서
tee-impersonate-service-accounts
를 사용하여 나열되었는지 확인합니다.
예
workload-service-account@my-project.iam.gserviceaccount.com in assertion.google_service_accounts
assertion.hwmodel
문자열
기본 컨피덴셜 컴퓨팅 기술을 확인합니다. 지원되는 플랫폼은 다음과 같습니다.
예
assertion.hwmodel == "GCP_AMD_SEV"
assertion.submods.confidential_space.monitoring_enabled
다음과 상호작용:
불리언
증명 항목의 모니터링 상태를 확인합니다.
예
assertion.submods.confidential_space.monitoring_enabled.memory == true
assertion.submods.gce.instance_id
문자열
VM 인스턴스 ID를 확인합니다.
예
assertion.submods.gce.instance_id == "0000000000000000000"
assertion.submods.gce.instance_name
문자열
VM 인스턴스의 이름을 확인합니다.
예
assertion.submods.gce.instance_name == "workload-vm"
assertion.submods.gce.project_id
문자열
VM이 지정된 프로젝트 ID로 Google Cloud 프로젝트를 실행하는지 확인합니다.
예
assertion.submods.gce.project_id == "project-id"
assertion.submods.gce.project_number
문자열
VM이 지정된 프로젝트 번호로 Google Cloud 프로젝트에서 실행 중인지 확인합니다.
예
assertion.submods.gce.project_number == "00000000000"
assertion.submods.gce.zone
다음과 상호작용:
문자열
VM이 지정된 영역에서 실행 중인지 확인합니다.
예
assertion.submods.gce.zone == "us-central1-a"
의견 보내기
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스 에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스 에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책 을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-04-02(UTC)
의견을 전달하고 싶나요?
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-04-02(UTC)"],[[["Attestation policies can validate assertions made by the Confidential Space image, the workload container, and the VM, using a variety of assertions."],["Image assertions, such as `assertion.dbgstat` and `assertion.submods.confidential_space.support_attributes`, verify the software version and security attributes of the Confidential Space image."],["Container assertions, such as `assertion.submods.container.cmd_override` and `assertion.submods.container.env`, verify the configuration and integrity of the workload container, including environment variables and command overrides."],["VM assertions, including `assertion.google_service_accounts` and `assertion.hwmodel`, verify details about the virtual machine environment, such as service accounts, hardware model, and project information."],["The 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."]]],[]]