보안 VM이란 무엇인가요?

이 페이지에서는 보안 VM의 주요 개념 및 용어에 대해 설명합니다. 보안 VM을 사용하려면 빠른 시작을 사용하거나 보안 VM 옵션 수정을 참조하세요.

보안 VM은 Compute Engine VM 인스턴스의 검증 가능한 무결성을 제공하므로, 부팅 또는 커널 수준의 멀웨어루트킷으로 인한 침해로부터 인스턴스의 안전을 보장합니다.

다음 기능을 사용하여 보안 VM의 확인 가능한 무결성을 얻을 수 있습니다.

보안 부팅

안전한 부팅에서는 모든 부팅 구성요소의 디지털 서명을 확인하고 서명 확인에 실패할 경우 부팅 프로세스를 중단하여 시스템에서 인증된 소프트웨어만 실행하도록 보장합니다.

보안 설정된 VM 인스턴스는 Google 인증 기관으로 서명 및 확인된 펌웨어를 실행하여 인스턴스의 펌웨어가 수정되지 않았음을 확인하고 안전한 부팅의 신뢰 루트를 구축합니다. UEFI(Unified Extensible Firmware Interface) 2.3.1 펌웨어는 소프트웨어 제조업체에서 시스템 펌웨어, 시스템 부트 로더 및 로드하는 바이너리를 서명하는 데 사용하는 키를 포함하는 인증서를 안전하게 관리합니다. 보안 VM 인스턴스는 UEFI 펌웨어를 사용합니다.

부팅할 때마다 UEFI 펌웨어는 승인된 키의 보안 저장소를 바탕으로 각 부팅 구성 요소의 디지털 서명을 확인합니다. 정상적으로 서명되지 않았거나 아예 서명이 없는 부팅 구성요소는 모두 실행이 허용되지 않습니다.

이 경우 실패한 부팅 옵션에 대한 설명과 함께 UEFI: Failed to load imageStatus: Security Violation이라는 문자열이 포함된 항목이 VM 인스턴스의 직렬 콘솔 로그에 포함됩니다. 실패 문제를 해결하려면 보안 VM 옵션 수정의 안내에 따라 보안 부팅을 사용 중지하고 VM 인스턴스를 부팅해 문제를 진단 및 해결한 후 보안 부팅을 다시 사용 설정하면 됩니다.

vTPM(Virtual Trusted Platform Module)

vTPM은 가상화된 신뢰할 수 있는 플랫폼 모듈로서 키 및 인증서 등 시스템 액세스 인증에 사용하는 객체를 보호하는 데 사용할 수 있는 특수한 컴퓨터 칩입니다. 보안 VM vTPM은 Trusted Computing Group(TPM) 라이브러리 사양 2.0과 완벽하게 호환되며 BoringSSL 라이브러리를 사용합니다. BoringSSL 라이브러리에는 BoringCrypto 모듈이 사용됩니다. BoringCrypto 모듈에 대한 FIPS 140-2 세부정보는 NIST 암호화 모듈 검사 프로그램 인증서 #3678을 참조하세요.

보안 VM vTPM에서는 무결성 정책 기준이라는 유효한 것으로 알려진 부팅 기준을 만드는 데 필요한 측정을 수행하여 신중한 부팅을 사용 설정합니다. 무결성 정책 기준은 이후 VM 부팅의 측정과 비교해 변경된 사항이 있는지 확인하는 데 사용됩니다.

vTPM을 사용해 실딩 또는 실링으로 비밀번호를 보호할 수도 있습니다. vTPM을 이 같은 용도로 사용하는 방법을 보여주는 Go 언어의 예시는 GitHub의 Go-TPM 프로젝트를 참조하세요.

신중한 부팅

신중한 부팅 중에는 여기 그림과 같이 각 구성요소(예: 펌웨어, 부트로더, 커널)의 해시가 로드되는 구성요소로 생성되고 해당 해시는 이후 이미 로드된 구성요소의 해시와 연결되어 다시 해시 처리됩니다.

신중한 부팅 프로세스 다이어그램

이 정보로 로드된 구성요소와 로드 순서를 알 수 있습니다.

VM 인스턴스를 처음으로 부팅하면 신중한 부팅에서 첫 번째 측정 세트를 바탕으로 무결성 정책 기준을 만들고 이 데이터를 안전하게 저장합니다. 이후 VM 인스턴스가 부팅될 때마다 측정을 다시 수행해 다음 재부팅 시까지 안전한 메모리에 저장합니다. 이 2개의 측정 데이터 집합을 통해 지원되는 무결성 모니터링으로 VM 인스턴스의 부팅 시퀀스에 변경사항이 있는지 확인할 수 있습니다.

무결성 모니터링

무결성 모니터링은 VM 인스턴스의 상태를 파악하고 결정을 내리도록 도와줍니다.

무결성 모니터링에서는 플랫폼 구성 등록(PCR)을 사용해 무결성 정책 기준(알려진 정상 부팅 시퀀스) 및 최근 부팅 시퀀스의 구성요소와 구성요소 로드 순서에 대한 정보를 저장하는 신중한 부팅에 의해 생성된 측정을 사용합니다.

무결성 모니터링은 최신 부팅 측정 데이터를 무결성 정책 기준과 비교하고 일치 여부에 따라 초기 부팅 시퀀스와 후기 부팅 시퀀스로 이루어진 한 쌍의 성공/실패 결과를 반환합니다. 초기 부팅은 UEFI 펌웨어가 시작되어 부트로더에 제어권을 넘길 때까지의 부팅 시퀀스입니다. 후기 부팅은 부트로더에서 운영체제 커널에 제어권을 넘길 때까지의 부팅 시퀀스입니다. 최신 부팅 시퀀스의 이전 또는 이후 부팅 중 하나라도 기준과 일치하지 않으면 무결성 확인에 실패하게 됩니다.

예를 들어 VM 인스턴스에 시스템 업데이트를 적용해 실패가 예상되는 경우 무결성 정책 기준을 업데이트해야 합니다. 무결성 정책 기준을 업데이트하면 기준이 최근 부팅 시퀀스에서 캡처된 측정 데이터로 설정됩니다. 예상된 상황이 아니라면 VM 인스턴스를 중지하고 실패 원인을 조사해야 합니다.

Cloud Monitoring에서 무결성 보고서를 확인하고 무결성 실패에 대한 알림을 설정할 수 있습니다. 무결성 모니터링 결과의 세부정보를 Cloud Logging에서 검토할 수 있습니다. 자세한 내용은 보안 VM 인스턴스의 무결성 모니터링을 참조하세요.

무결성 모니터링 이벤트

보안 VM은 다음과 같은 이벤트 유형의 로그 항목을 생성합니다.

  • clearTPMEvent: vTPM이 삭제되어 저장되어 있던 보안 비밀이 모두 삭제되었는지 식별합니다. 보안 VM에는 어떤 측면으로도 영향을 미치지 않으므로 vTPM(Virtual Trusted Platform Module)의 설명대로 vTPM을 사용해 민감한 정보를 실드하는 경우 이것만 신경 쓰면 됩니다.
  • earlyBootReportEvent: 초기 부팅 시퀀스 무결성 확인에 성공했는지 여부를 식별하고 확인을 위해 비교된 기준 및 최근 부팅 시퀀스의 PCR 값에 대한 세부정보를 제공합니다.
  • lateBootReportEvent: 후기 부팅 시퀀스 무결성 확인에 성공했는지 여부를 식별하고 확인을 위해 비교된 기준 및 최근 부팅 시퀀스의 PCR 값에 대한 세부정보를 제공합니다.
  • setShieldedInstanceIntegrityPolicy: 무결성 정책 기준을 업데이트할 때마다 로깅합니다.
  • shutdownEvent: VM 인스턴스가 중지될 때마다 로깅합니다.
  • startupEvent: VM 인스턴스가 시작될 때마다 로깅합니다. 이 이벤트에서 주목해야 할 정보는 인스턴스가 다시 시작된 횟수를 식별하는 bootCounter 값입니다.
  • updateShieldedInstanceConfig: 보안 VM 옵션 중 하나를 사용 또는 사용 중지할 때마다 로깅합니다.

로그에 표시되는 일반적인 이벤트 진행 과정은 startupEvent, earlyBootReportEvent, lateBootReportEvent, shutdownEvent이며 동일한 VM 인스턴스 부팅 시퀀스의 설명으로 식별되도록 모두 같은 bootCounter 값이 사용됩니다.

VM 인스턴스의 무결성 실패가 예상되어 무결성 정책 기준을 업데이트하는 경우 새로운 무결성 정책 기준 측정 데이터를 설명하는 earlyBootReportEventlateBootReportEvent 이벤트가 추가로 표시됩니다. 다음 예시에서는 예상 시퀀스를 보여줍니다.

  • startupEvent
  • earlyBootReportEvent: 원래 기준과 최신 부팅 시퀀스(성공)를 비교합니다.
  • lateBootReportEvent: 원래 기준과 최신 부팅 시퀀스(실패)를 비교합니다.
  • 무결성 정책 기준을 업데이트할 때의 setShieldedInstanceIntegrityPolicy는 기준을 최신 부팅 시퀀스에서 캡처된 측정 데이터로 설정합니다.
  • earlyBootReportEvent: 새 기준과 최신 부팅 시퀀스(실패)를 비교합니다.
  • lateBootReportEvent: 새 기준과 최신 부팅 시퀀스(실패)를 비교합니다.

Windows

earlyBootReportEvent

earlyBootReportEvent에는 다음과 같은 섹션 및 요소가 포함되어 있습니다.

  • actualMeasurements: 최신 부팅 시퀀스의 플랫폼 구성 등록(PCR) 값을 포함합니다. PCR 값에서는 최신 부팅 시퀀스에서 사용한 부팅 구성요소 및 구성요소 로드 순서를 식별하며 VM 인스턴스 부팅 시퀀스에 변경사항이 있었는지 확인하기 위해 이 값을 무결성 정책 기준(값은 policyMeasurements 섹션에서 캡처)과 비교합니다. actualMeasurements 섹션의 요소는 OS, 배포, 구성에 따라 다를 수 있습니다. 이 섹션에는 일반적으로 다음 요소가 포함됩니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: UEFI 부팅 관리자 코드 및 부팅 시도 관련 정보가 담긴 PCR4 값을 포함합니다.
    • 2: 디스크의 GUID 파티션 테이블 관련 정보가 담긴 PCR5 값을 포함합니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 3: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.
  • policyEvaluationPassed: 부팅 시퀀스의 특정 섹션이 무결성 정책 기준 확인을 통과했는지 여부를 식별합니다.

  • policyMeasurements: 무결성 유효성 검사에서 예상 값으로 사용하는 기준 PCR 값을 포함합니다. policyMeasurements 섹션은 OS, 배포, 구성에 따라 다를 수 있지만 일반적으로 다음 요소를 포함합니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: UEFI 부팅 관리자 코드 및 부팅 시도 관련 정보가 담긴 PCR4 값을 포함합니다. 이 값은 최초 부팅에 포함되지 않습니다.
    • 2: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.

earlyBootReportEvent PCR 값을 사용하여 부팅 무결성 검증 실패를 진단하는 방법에 대해서는 부팅 무결성 검증 실패의 원인 파악을 참조하세요.

lateBootReportEvent

lateBootReportEvent에는 다음과 같은 섹션 및 요소가 포함되어 있습니다.

  • actualMeasurements: 최신 부팅 시퀀스의 플랫폼 구성 등록(PCR) 값을 포함합니다. PCR 값에서는 최신 부팅 시퀀스에서 사용한 부팅 구성요소 및 구성요소 로드 순서를 식별하며 VM 인스턴스 부팅 시퀀스에 변경사항이 있었는지 확인하기 위해 이 값을 무결성 정책 기준(값은 policyMeasurements 섹션에서 캡처)과 비교합니다. actualMeasurements 섹션의 요소는 OS, 배포, 구성에 따라 다를 수 있습니다. 이 섹션에는 일반적으로 다음 요소가 포함됩니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: UEFI 부팅 관리자 코드 및 부팅 시도 관련 정보가 담긴 PCR4 값을 포함합니다.
    • 2: 디스크의 GUID 파티션 테이블 관련 정보가 담긴 PCR5 값을 포함합니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 3: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.
    • 4: BitLocker Drive Encryption 액세스 제어 관련 정보가 담긴 PCR11 값을 포함합니다.
    • 5: 데이터 이벤트 관련 정보가 담긴 PCR12 값을 포함합니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 6: Windows 커널 및 부팅 드라이버 관련 정보가 담긴 PCR13 값을 포함합니다.
    • 7: Windows 부팅 권한 관련 정보가 담긴 PCR14 값을 포함합니다.
  • policyEvaluationPassed: 부팅 시퀀스의 특정 섹션이 무결성 정책 기준 확인을 통과했는지 여부를 식별합니다.

  • policyMeasurements: 무결성 유효성 검사에서 예상 값으로 사용하는 기준 PCR 값을 포함합니다. policyMeasurements 섹션은 OS, 배포, 구성에 따라 다를 수 있지만 일반적으로 다음 요소를 포함합니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: UEFI 부팅 관리자 코드 및 부팅 시도 관련 정보가 담긴 PCR4 값을 포함합니다.
    • 2: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.
    • 3: BitLocker Drive Encryption 액세스 제어 관련 정보가 담긴 PCR11 값을 포함합니다.
    • 4: Windows 커널 및 부팅 드라이버 관련 정보가 담긴 PCR13 값을 포함합니다.
    • 5: Windows 부팅 권한 관련 정보가 담긴 PCR14 값을 포함합니다.

lateBootReportEvent PCR 값을 사용하여 부팅 무결성 검증 실패를 진단하는 방법에 대해서는 부팅 무결성 검증 실패의 원인 파악을 참조하세요.

Linux

earlyBootReportEvent

earlyBootReportEvent에는 다음과 같은 섹션 및 요소가 포함되어 있습니다.

  • actualMeasurements: 최신 부팅 시퀀스의 플랫폼 구성 등록(PCR) 값을 포함합니다. PCR 값에서는 최신 부팅 시퀀스에서 사용한 부팅 구성요소 및 구성요소 로드 순서를 식별하며 VM 인스턴스 부팅 시퀀스에 변경사항이 있었는지 확인하기 위해 이 값을 무결성 정책 기준(값은 policyMeasurements 섹션에서 캡처)과 비교합니다. actualMeasurements 섹션의 요소는 OS, 배포, 구성에 따라 다를 수 있습니다. 이 섹션에는 일반적으로 다음 요소가 포함됩니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: 운영체제 shim 관련 정보가 담긴 PCR4 값을 포함합니다.
    • 2: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.
  • policyEvaluationPassed: 부팅 시퀀스의 특정 섹션이 무결성 정책 기준 확인을 통과했는지 여부를 식별합니다.

  • policyMeasurements: 무결성 유효성 검사에서 예상 값으로 사용하는 기준 PCR 값을 포함합니다. policyMeasurements 섹션은 OS, 배포, 구성에 따라 다를 수 있지만 일반적으로 다음 요소를 포함합니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: 운영체제 shim 관련 정보가 담긴 PCR4 값을 포함합니다. 이 값은 최초 부팅에 포함되지 않습니다.
    • 2: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.

earlyBootReportEvent PCR 값을 사용하여 부팅 무결성 검증 실패를 진단하는 방법에 대해서는 부팅 무결성 검증 실패의 원인 파악을 참조하세요.

lateBootReportEvent

lateBootReportEvent에는 다음과 같은 섹션 및 요소가 포함되어 있습니다.

  • actualMeasurements: 최신 부팅 시퀀스의 플랫폼 구성 등록(PCR) 값을 포함합니다. PCR 값에서는 최신 부팅 시퀀스에서 사용한 부팅 구성요소 및 구성요소 로드 순서를 식별하며 VM 인스턴스 부팅 시퀀스에 변경사항이 있었는지 확인하기 위해 이 값을 무결성 정책 기준(값은 policyMeasurements 섹션에서 캡처)과 비교합니다. actualMeasurements 섹션의 요소는 OS, 배포, 구성에 따라 다를 수 있습니다. 이 섹션에는 일반적으로 다음 요소가 포함됩니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: 두 번째 단계의 부트로더 및 커널 관련 정보가 담긴 PCR4 값을 포함합니다.
    • 2: 디스크의 GUID 파티션 테이블 관련 정보가 담긴 PCR5 값을 포함합니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 3: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.
  • policyEvaluationPassed: 부팅 시퀀스의 특정 섹션이 무결성 정책 기준 확인을 통과했는지 여부를 식별합니다.

  • policyMeasurements: 무결성 유효성 검사에서 예상 값으로 사용하는 기준 PCR 값을 포함합니다. policyMeasurements 섹션은 OS, 배포, 구성에 따라 다를 수 있지만 일반적으로 다음 요소를 포함합니다.

    • 0: 활성 상태인 펌웨어 구성요소 및 메모리 암호화 기술에 대한 정보가 포함된 PCR0 값을 포함합니다. 이 PCR은 다음 이벤트만 측정한다는 점에서 TCG PCClient 플랫폼 펌웨어 프로필과 다릅니다.
      • Compute Engine 펌웨어 버전인 EV_S_CRTM_VERSION
      • 메모리 암호화 기술을 나타내는 EV_NONHOST_INFO
      • 지정된 구분 기호 이벤트 펌웨어가 더 이상 PCR0 이벤트를 추가하지 않는 시점을 측정하는 EV_SEPARATOR. PCR0에는 VM의 수명 동안 정적 값이 포함됩니다. 주 버전 펌웨어 업데이트 또는 암호화 기술 변경 후에만 새 VM의 값이 변경됩니다. 무결성 정책 기준을 바탕으로 최신 부팅 시퀀스를 확인할 때는 사용되지 않습니다.
    • 1: 두 번째 단계의 부트로더 및 커널 관련 정보가 담긴 PCR4 값을 포함합니다.
    • 2: 인스턴스의 보안 부팅 정책 관련 정보가 담긴 PCR7 값을 포함합니다.

lateBootReportEvent PCR 값을 사용하여 부팅 무결성 검증 실패를 진단하는 방법에 대해서는 부팅 무결성 검증 실패의 원인 파악을 참조하세요.

보안 VM 이미지에 BitLocker 사용

보안 VM 이미지를 기반으로 한 Windows 부팅 디스크에 BitLocker를 사용 설정할 수 있습니다. 보안 VM 이미지는 UEFI 규격 펌웨어, 안전한 부팅, vTPM 보호가 적용된 신중한 부팅, 무결성 모니터링과 같은 보안 기능을 제공합니다. vTPM 및 무결성 모니터링은 기본적으로 사용 설정되어 있으며 가능하면 안전한 부팅을 사용 설정하는 것이 좋습니다.

보안 VM 이미지를 기반으로 한 Windows 부팅 디스크에 BitLocker를 사용 설정할 경우 복구 키를 안전한 위치에 저장해야 합니다. 복구 키가 없으면 데이터를 복구할 수 없기 때문입니다.

보안 VM 이미지를 기반으로 한 Windows 부팅 디스크에 BitLocker를 사용 설정할 때는 다음 사항을 고려해야 합니다.

  • 보안 VM 부팅 디스크에서 BitLocker는 vTPM을 사용하여 암호화 키를 저장하고, vTPM은 vTPM이 생성된 VM과 영구적으로 연결됩니다. 따라서 보안 VM 부팅 디스크의 스냅샷을 다른 영구 디스크에 복원할 수는 있지만, BitLocker 키가 포함된 vTPM을 사용할 수 없기 때문에 복원된 디스크를 복호화할 수는 없습니다. 복구 키가 있으면 BitLocker 복구 가이드의 안내를 따라 데이터를 복구할 수 있습니다. 복구 키가 없으면 디스크의 데이터를 복구할 수 없습니다.

  • 보안 VM 데이터 디스크에서 영구 디스크 데이터는 기본적으로 암호화됩니다. 영구 디스크가 암호화된 상태에서 BitLocker를 사용 설정해도 처리량은 영향을 받지 않지만 vCPU 사용률은 다소 증가할 수 있습니다. VM에 연결된 데이터 디스크에 BitLocker를 사용 설정하면 부팅 디스크의 경우와 같은 복구 문제가 발생하지 않습니다. 이는 데이터 디스크의 BitLocker 암호화 키가 vTPM에 저장되어 있지 않기 때문입니다. 디스크를 정상적으로 잠금 해제할 수 없더라도 복구 키가 있으면 디스크를 암호화되지 않은 다른 VM에 연결하여 복구할 수 있습니다. 복구 키가 없으면 디스크의 데이터를 복구할 수 없습니다.

Identity and Access Management 승인

보안 VM은 승인을 위해 IAM을 사용합니다.

보안 VM 작업에 사용되는 Compute Engine 권한은 다음과 같습니다.

  • compute.instances.updateShieldedInstanceConfig: 사용자가 VM 인스턴스의 보안 VM 옵션을 변경할 수 있습니다.
  • compute.instances.setShieldedInstanceIntegrityPolicy: 사용자가 VM 인스턴스의 무결성 정책 기준을 업데이트할 수 있습니다.
  • compute.instances.getShieldedInstanceIdentity: 사용자가 vTPM에서 인증 키 정보를 검색할 수 있습니다.

보안 VM 권한이 부여되는 Compute Engine 역할은 다음과 같습니다.

  • roles/compute.instanceAdmin.v1
  • roles/compute.securityAdmin

보안 VM 권한을 커스텀 역할에 부여할 수도 있습니다.

보안 VM의 조직 정책 제약조건

조직에서 만든 Compute Engine VM 인스턴스가 보안 VM 인스턴스가 되도록 하려면 constraints/compute.requireShieldedVm 조직 정책 제약조건True로 설정하면 됩니다.

조직 정책에서 부울 제약조건 사용에서 constraints/compute.requireShieldedVm 제약조건 설정 방법을 알아봅니다. 제약조건을 설정하려면 조직 정책 관리자여야 합니다.

다음 단계