Cloud HSM 아키텍처

이 콘텐츠는 2023년 11월에 마지막으로 업데이트되었으며 작성된 당시의 상황을 나타냅니다. Google의 보안 정책 및 시스템은 고객 보호를 지속적으로 개선함에 따라 앞으로도 계속 변경될 수 있습니다.

기업 및 규정 준수 규제를 충족하기 위해 Cloud HSM을 사용하면 FIPS 140-2 Level 3 인증 하드웨어 보안 모듈(HSM)에서 암호화 키를 생성하고 암호화 작업을 수행할 수 있습니다.

이 문서에서는 하드웨어 관리와 키 증명 및 생성 방법을 포함하여 Cloud HSM 아키텍처에 대해 설명합니다.

개요

암호화 작업에는 저장 데이터 암호화와 Certificate Authority Service의 비공개 키 보호 그리고 암호화된 데이터와 함께 저장할 수 있도록 지원하는 데이터 암호화 키 보호가 포함됩니다. Cloud HSM은 펌웨어 버전 3.4 빌드 09와 함께 Marvell LiquidSecurity HSM(CNL3560-NFBE-2.0-G 및 CNL3560-NFBE-3.0-G 모델)을 사용합니다. 인증에 대한 자세한 내용은 인증서 #4399를 참조하세요.

Cloud HSM은 완전 관리형이므로 HSM 클러스터 관리에 따른 운영 부담 없이 워크로드를 보호할 수 있습니다. 이 서비스는 다음과 같은 이점을 제공합니다.

  • 전 세계 이용 가능 여부
  • 일관적이고 통합된 API
  • 사용량 기준 자동 확장
  • 중앙 집중식 관리 및 규정 준수

대규모 지역을 아우르는 멀티 리전을 비롯하여 Cloud HSM을 전 세계 모든 Google Cloud 리전에서 사용할 수 있습니다. Cloud HSM을 사용 설정하면 HSM 지원 키를 만들고 사용해서 BigQuery, Cloud Storage, BigQuery, Persistent Disk와 같은 다른 Google Cloud 서비스에 저장한 데이터를 비롯한 데이터를 보호할 수 있습니다.

Cloud HSM 및 HSM 하드웨어가 Google에서 관리되기 때문에 프로덕션에서 HSM 기반 키를 관리할 필요가 없습니다. Cloud HSM을 사용하면 Google Cloud의 다른 테넌트 및 서비스로부터 사용자 데이터가 엄격하게 격리됩니다. Cloud Key Management Service API에 포함된 Cloud HSM 데이터 영역 API를 사용하여 HSM 기반 키를 프로그래매틱 방식으로 관리할 수 있습니다.

Cloud HSM은 Google Cloud에서 CMEK 키가 지원되는 모든 위치에서 HSM 기반 고객 관리 암호화 키(CMEK)를 지원합니다. 예를 들어 사용자가 관리하는 Cloud HSM 키를 사용해서 Cloud Storage 버킷 또는 Cloud SQL 테이블에서 데이터를 암호화할 수 있습니다.

Cloud HSM 관리

Cloud HSM 내에서 HSM의 클러스터는 각각 Google Cloud 데이터 센터 위치에서 작업을 수행하는 Google 사이트 안정성 엔지니어(SRE)와 기술자에 의해 유지보수됩니다. Google은 물리적 보안, 논리적 보안, 인프라, 용량 계획, 지역 확장, 데이터 센터 재해 복구 계획을 처리합니다.

HSM 하드웨어 추상화

일반적으로 애플리케이션은 PKCS#11 및 클러스터 관리 API를 모두 사용해서 HSM과 직접 통신합니다. 이 통신을 위해서는 HSM 기반 키를 사용하거나 관리하는 워크로드에 대해 사용자가 특별한 코드를 유지보수해야 합니다.

Cloud HSM은 Cloud Key Management Service API를 통해 HSM 기반 키 요청을 프록시하여 HSM에서 통신을 추상화합니다. 추상화는 HSM 관련 코드 요구를 줄여줍니다. Cloud HSM은 본질적으로 Cloud KMS와 긴밀하게 통합되어 있습니다.

Cloud KMS와의 긴밀한 통합은 상당한 보안 이점을 제공합니다. Cloud Key Management Service API는 사용 가능한 HSM 인터페이스 범위를 크게 줄여서 고객 보안 위반 사고 시 위험을 줄여줍니다. 예를 들어 공격자는 전체 HSM을 완전 삭제할 수 없을 것입니다. 기본적으로 표준 24시간 안전 기간을 통해 개별 키를 삭제하려는 시도가 완화됩니다. 신규 키의 폐기 예약 기간에 최소 길이를 적용하는 constraints/cloudkms.minimumDestroyScheduledDuration 조직 정책과 이러한 정책이 사용 중지되었을 때만 키 버전을 삭제하는 constraints/cloudkms.disableBeforeDestroy 조직 정책을 설정할 수 있습니다. 자세한 내용은 키 버전 폐기 제어를 참조하세요.

Identity and Access Management(IAM)를 사용해서 HSM 리소스에 대한 액세스를 제어할 수 있습니다. IAM 구성은 커스텀 HSM 솔루션보다 잘못된 구성과 버그를 경험할 가능성이 낮습니다.

Cloud HSM 아키텍처 다이어그램

엄격한 지리적 분리 설계

Cloud HSM에서는 키를 전역적으로 사용하도록 허용하거나 제한이 필요한 키에 엄격한 지리적 제한을 적용할 수 있습니다.

HSM은 파티션으로 분할되는 경우가 많으므로, 단일 물리적 기기가 여러 논리적 기기로 작동할 수 있습니다. HSM 관리와 키를 구분해야 하는 경우 파티션을 사용해서 배포 비용을 줄일 수 있습니다.

각 Cloud HSM 리전 위치는 별개의 래핑 키와 연결됩니다. 래핑 키는 해당 위치에 있는 각 HSM의 파티션에 클론되지만 해당 위치의 HSM을 벗어나지 않습니다. 클론을 통해 동일 리전의 HSM이 동일한 고객 키 집합을 제공할 수 있고 리전 외부의 HSM이 이러한 키를 제공할 수 없도록 보장합니다.

또한 Cloud HSM은 래핑 키를 사용해서 멀티 리전을 만듭니다. 멀티 리전의 모든 고객 키는 멀티 리전을 구성하는 모든 위치의 파티션에 제공된 래핑 키를 사용해서 래핑됩니다. 이 서비스는 멀티 리전에 동일한 하드웨어를 사용하지만 서로 다른 리전에 존재하는 리전과 멀티 리전 간에 동일하게 엄격한 격리를 제공합니다.

Cloud HSM 지역 다이어그램

리전화 스킴에 따라 래핑 키는 적합한 파티션에만 복제해야 합니다. 각 구성 변경은 활성화되기 전 여러 Cloud HSM 팀 멤버의 승인을 받아야 합니다. 데이터 센터 기술자는 현장에서 HSM 구성, 런타임, 스토리지에 액세스할 수 없습니다.

중앙 집중식 관리

HSM을 호스팅하는 기존 데이터 센터에서 HSM과 리소스 관리는 전적으로 다른 암호화 리소스 관리로부터 분리됩니다. Cloud HSM은 Google Cloud에 긴밀하게 통합되어 사용자가 Cloud HSM 리소스를 원활하게 관리할 수 있습니다. 예를 들어 다음을 관리할 수 있습니다.

  • Cloud KMS의 기타 키 및 Cloud 외부 키 관리자(Cloud EKM)의 외부 관리 키와 함께 HSM 기반 리소스를 관리합니다.
  • IAM 내에서 HSM 기반 리소스에 대한 액세스를 관리합니다.
  • HSM 기반 키를 사용하는 암호화 작업의 비용 보고는 Cloud Billing에서 보고됩니다.
  • CMEK를 사용하여 리소스 암호화를 지원하는 모든 Google Cloud 서비스에서 HSM 기반 키를 투명하게 사용할 수 있습니다. CMEK 통합을 위해서는 CMEK 키와 암호화하는 데이터를 호환되는 지리적 위치에 배치해야 합니다. Cloud HSM 키의 엄격한 지리적 제한으로 인해 CMEK 데이터의 모든 암호화 및 복호화도 지리적으로 제한됩니다.
  • HSM 기반 리소스의 관리 작업은 항상 Cloud 감사 로그의 API 레이어에 로깅됩니다. 데이터 액세스 로깅도 사용 설정하도록 선택할 수 있습니다. 자세한 내용은 Cloud KMS 감사 로깅 정보를 참조하세요.
  • Google은 HSM 제조업체와 직접 협력하여 각 HSM의 하드웨어 및 소프트웨어를 업데이트하고 문제를 실시간으로 발견 및 수정합니다. HSM의 제로데이 악용이 발생하면 Google은 이 악용 문제가 해결될 때까지 영향을 받는 HSM 클러스터에서 영향을 받는 코드 경로를 선택적으로 사용 중지할 수 있습니다.

개발자 및 사용자 환경

Google이 HSM 관리를 책임지기 때문에 Cloud HSM은 개발자 및 최종 사용자에게 상당한 이점을 제공합니다.

Google 규모의 HSM

온프레미스 또는 데이터 센터에 있는 하드웨어를 사용할 때는 하드웨어가 성능 병목 현상을 일으키거나 단일 장애점이 될 수 있습니다. Cloud HSM은 예측할 수 없는 워크로드 및 하드웨어 장애에 대해 뛰어난 복원력을 갖도록 설계되었습니다. Cloud HSM 백엔드는 각 리전에 있는 HSM 풀을 사용해서 고가용성 및 확장성을 보장합니다. 이러한 HSM 풀은 Cloud HSM이 높은 처리량을 제공할 수 있게 해줍니다. 자세한 내용은 Cloud KMS 할당량 모니터링 및 조정을 참조하세요.

모든 고객 키는 Cloud KMS 데이터베이스에서 리전 래핑 키로 래핑되어 저장되며 암호화 작업 중 해당 리전의 HSM을 통해서만 래핑을 해제할 수 있습니다. 이러한 래핑의 이점은 다음과 같습니다.

  • 키 내구성이 리전에 있는 특정 HSM 또는 HSM의 하위 집합으로 제한되지 않습니다.
  • 각 Cloud HSM 고객이 해당 키를 제공하는 Cloud HSM 클러스터의 전 규모와 가용성을 경험할 수 있습니다.
  • Cloud HSM이 HSM에 저장할 수 있는 훨씬 더 많은 키 집합을 처리할 수 있습니다.
  • HSM 추가 또는 교체가 빠르고 안전합니다.

통합 API 설계

Cloud HSM과 Cloud KMS는 일반적인 관리 및 데이터 영역 API를 공유합니다. HSM과의 통신에 대한 내부 세부정보는 호출자로부터 추상화됩니다.

따라서 HSM 기반 키를 지원하도록 Cloud KMS에서 소프트웨어 키를 사용하는 기존 애플리케이션을 업데이트할 때 코드 변경이 필요하지 않습니다. 대신 사용할 키의 리소스 이름을 업데이트합니다.

PKCS#11 지원

암호화 키 관리를 위해 Cloud Key Management Service API를 사용해서 기존 애플리케이션을 Cloud HSM에 연결할 수 있습니다. PKCS#11 라이브러리를 사용하면 HSM 기반 키를 사용해서 바이너리를 서명하고 TLS 웹 세션을 제공할 수 있습니다.

보안 및 규정 준수

Cloud HSM은 FedRAMP 높음, C5:2020, OSPAR을 비롯한 많은 규제에서 규정 준수 자격을 획득했습니다. 또한 Cloud HSM은 클라우드에서 워크로드에 대한 규정 준수를 시행하는 데 도움이 됩니다.

암호화 키 증명

Cloud HSM 키를 생성하거나 가져올 때마다 HSM은 파티션과 연결된 서명 키로 서명된 증명서를 생성합니다. 이 증명서는 키 속성에 대한 정보가 포함되어 있습니다. 서명 키는 Google 및 HSM 제조업체에 기반을 둔 인증서 체인으로 지원됩니다. 증명서와 인증서를 다운로드하여 증명서의 신뢰성을 확인하고 키 및 키를 생성하거나 가져온 HSM의 속성을 검사할 수 있습니다.

인증서 체인을 통해 다음을 확인할 수 있습니다.

  • HSM 하드웨어 및 펌웨어는 진품입니다.
  • HSM 파티션 및 HSM은 Google에서 관리됩니다.
  • HSM은 FIPS 모드의 작업입니다.

증명서의 콘텐츠를 통해 다음을 확인할 수 있습니다.

  • 키를 추출할 수 없습니다.
  • CryptoKeyVersion에 대해 키가 생성되었습니다.
  • 비대칭 키 쌍의 공개 키는 HSM 지원 비공개 키에 해당합니다.
  • 가져온 대칭 키의 키 자료가 사용자가 래핑한 값과 일치합니다.

HSM으로 직접 보안 키 가져오기

기존 키를 Cloud HSM으로 안전하게 가져와서 Google Cloud 외부에서 키 자료 백업을 유지보수하거나 Google Cloud로의 특정 워크로드 마이그레이션을 간소화할 수 있습니다. 키 가져오기 프로세스에서 Google은 래핑되지 않은 키 자료에 대해 어떤 식으로든 직접 액세스가 허용되지 않습니다. Cloud HSM은 HSM에서 생성된 래핑 키에 대해 액세스가 발생하지 않았음을 검증하는 증명서를 제공합니다.

키 가져오기는 사용자가 알 수 없는 소스로부터 키를 가져오도록 허용함으로써 잠재적으로 보안 및 규정 준수 위험을 수반하기 때문에 별개의 IAM 역할을 통해 키를 프로젝트로 가져올 수 있는 사용자에 대한 세부 제어를 허용합니다. 가져온 키는 가져오기를 수행할 때 HSM에서 생성되는 증명서로 구분될 수 있습니다.

자세한 내용은 Cloud Key Management Service로 키 가져오기를 참조하세요.

엄격한 보안 절차로 HSM 하드웨어 보호

FIPS 140-2 수준 3에 명시된 대로 HSM 기기에는 물리적 조작을 방지하고 증거를 제공하는 데 도움이 되는 메커니즘이 내장되어 있습니다.

HSM 하드웨어 자체에서 제공되는 보장 외에도 Cloud HSM 인프라는 Google 인프라 보안 설계 개요에 따라 관리됩니다.

문서화된 감사 가능한 절차를 통해 프로비저닝, 배포, 프로덕션 중에 각 HSM의 무결성을 보호합니다.

  • HSM을 데이터 센터에 배포할 수 있으려면 먼저 여러 Cloud HSM SRE가 모든 HSM 구성을 확인해야 합니다.
  • HSM을 가동한 후에는 여러 Cloud HSM SRE를 통해서만 구성 변경을 시작하고 확인할 수 있습니다.
  • HSM은 HSM 제조업체가 서명한 펌웨어만 수신할 수 있습니다.
  • HSM 하드웨어는 어떠한 네트워크에도 직접 노출되지 않습니다.
  • HSM 하드웨어를 호스팅하는 서버는 승인되지 않은 프로세스를 실행하지 않도록 방지됩니다.

시스템 운영자의 책임은 표준 운영 절차에 정의되어 있습니다. 시스템 운영자는 자신의 업무를 수행하는 동안 고객 키 자료에 대해 액세스, 사용, 추출을 수행하지 못하도록 방지됩니다.

서비스 및 테넌트 격리

Cloud HSM 아키텍처는 다른 서비스 또는 테넌트의 악의적이거나 부주의한 간섭으로부터 HSM을 보호합니다.

이 아키텍처에 포함된 HSM은 Cloud HSM의 요청만 허용하며 Cloud HSM 서비스는 Cloud KMS의 요청만 허용합니다. Cloud KMS는 키에 대해 적절한 IAM 권한이 있는 호출자만 키를 사용할 수 있도록 보장합니다. 승인되지 않은 요청은 HSM에 도달하기 전에 차단됩니다.

또한 HSM 기반 키에는 암호화 작업에 대한 할당량이 적용됩니다. 이러한 할당량은 부주의하거나 악의적인 시도로 인해 서비스가 오버로드되지 않도록 지원함으로써 워크로드 실행 기능을 보호합니다. 비대칭 암호화 작업의 경우 3,000 QPM 그리고 대칭 암호화 작업의 경우 30,000 QPM인 기본 할당량은 관측된 사용 패턴을 기반으로 합니다. 할당량은 서비스 용량보다 상당히 아래에 있으며 요청에 따라 늘릴 수 있습니다.

요청 흐름

이 섹션에서는 다양한 요청 유형에 대한 단계를 통해 앞에서 언급한 아키텍처 기능이 어떻게 구현되는지 보여줍니다. 이러한 흐름은 Cloud HSM 부분을 강조해서 보여줍니다. 모든 키에 일반적인 단계를 보려면 Cloud Key Management Service 심층 분석을 참조하세요.

키 생성

HSM 기반 키를 만들 때 Cloud Key Management Service API는 키 자료를 만들지 않지만 HSM이 이를 만들도록 요청합니다.

HSM은 지원되는 위치에서만 키를 만들 수 있습니다. HSM의 각 파티션에는 Cloud KMS 위치에 해당하는 래핑 키가 포함됩니다. 래핑 키는 Cloud KMS 위치를 지원하는 모든 파티션 사이에 공유됩니다. 키 만들기 프로세스는 다음과 같습니다.

  1. Google 프런트엔드 서비스(GFE)가 요청에 해당하는 위치의 Cloud KMS 서버로 키 만들기 요청을 라우팅합니다.
  2. Cloud Key Management Service API는 호출자의 ID와 프로젝트에서 키를 만들 수 있는 호출자의 권한을 확인하고, 호출자에게 충분한 쓰기 요청 할당량이 있는지 확인합니다.
  3. Cloud Key Management Service API가 요청을 Cloud HSM으로 전달합니다.
  4. Cloud HSM이 HSM과 직접 상호 작용합니다. HSM:
    1. 키를 만들고 이를 위치 특정 래핑 키로 래핑합니다.
    2. 키의 증명서를 만들고 파티션 서명 키로 서명합니다.
  5. Cloud HSM이 래핑 키 및 증명을 Cloud KMS에 반환한 후 Cloud Key Management Service API가 Cloud KMS 키 계층 구조에 따라 HSM 래핑 키를 래핑한 후 이를 프로젝트에 씁니다.

이러한 설계는 HSM 외부에서 키를 래핑 해제하거나 사용할 수 없고, HSM에서 키를 추출할 수 없고, 지정된 위치 내에서 래핑 해제된 상태로만 키가 존재하도록 보장합니다.

다음 다이어그램은 Cloud KMS에서 Cloud HSM 키와 소프트웨어 키를 만들 때의 차이를 보여줍니다.

HSM 키 만들기 다이어그램

암호화 작업

Cloud KMS에서 암호화 작업을 수행할 때는 사용하는 키가 HSM 기반 또는 소프트웨어 키인지 알 필요가 없습니다. Cloud Key Management Service API에서 작업에 사용된 키가 HSM 기반 키인 것으로 확인되면 동일 위치의 HSM으로 요청을 전달합니다. 다음은 암호화 작업의 단계입니다.

  1. GFE가 적절한 위치의 Cloud KMS 서버로 요청을 라우팅합니다. Cloud Key Management Service API가 호출자의 ID를 확인하고, 키 액세스 및 작업 수행을 위한 호출자 권한을 확인하고, 암호화 작업에 대한 프로젝트 할당량을 확인합니다.
  2. Cloud Key Management Service API가 데이터 스토어에서 래핑된 키를 검색하고 Cloud KMS 마스터 키를 사용해서 암호화 수준을 복호화합니다. 키는 아직 KMS 위치에 대해 HSM 래핑 키로 래핑된 상태입니다.
  3. Cloud Key Management Service API는 보호 수준이 HSM임을 감지하고, 암호화 작업에 대한 입력과 함께 부분적으로 래핑되지 않은 키를 Cloud HSM으로 전송합니다.
  4. Cloud HSM이 HSM과 직접 상호 작용합니다. HSM이 다음 작업을 완료합니다.
    1. 래핑된 키와 해당 속성이 수정되지 않았는지 확인합니다.
    2. 키를 래핑 해제하고 이를 HSM 스토리지에 로드합니다.
    3. 암호화 작업을 수행하고 결과를 반환합니다.
  5. Cloud Key Management Service API가 결과를 다시 호출자에게 전달합니다.

HSM 지원 키를 사용한 암호화 작업은 전적으로 구성된 위치의 HSM 내에서 수행되며 결과만 호출자에게 표시됩니다.

이 다이어그램은 Cloud KMS에서 Cloud HSM 키와 소프트웨어 키 만들기 사이의 차이점을 보여줍니다.

HSM 암호화 작업 다이어그램

CMEK 통합

CMEK를 Cloud HSM과 함께 사용하면 HSM 키를 통해 원하는 Google Cloud 서비스에서 데이터를 보호할 수 있습니다. 서비스 관련 안내를 따를 때 HSM 보호 수준에 따라 키를 선택하는 것만큼 간단하게 Cloud HSM 키를 사용하도록 CMEK 지원 서비스를 구성할 수 있습니다.

호출자가 CMEK 사용 설정 서비스에 데이터를 읽거나 쓰면 호출자는 키를 사용하는 데 직접적인 권한이 필요하지 않으며 키가 HSM에 저장되어 있는지 알 필요도 없습니다.

CMEK 작업 흐름은 다음과 같은 예외를 제외하면 일반 암호화 작업 흐름과 매우 유사합니다.

  • CMEK 사용 서비스의 요청은 Google 네트워크 내에서 시작되므로 GFE를 순회할 필요가 없습니다.
  • Cloud Key Management Service API가 CMEK 사용 설정 서비스의 서비스 계정에 키를 사용할 수 있는 적절한 권한이 있는지 확인합니다. Cloud Key Management Service API는 CMEK 사용 설정 서비스의 최종 사용자에 대한 권한을 검증하지 않습니다.

Cloud HSM은 Google Cloud의 하드웨어 키 관리 서비스입니다. 이 서비스는 HSM 키로 저장 데이터를 보호하려는 사용자에게 여러 가지 고유한 이점을 제공합니다. 이 서비스는 HSM에 대한 제한된 API 액세스, 원활한 확장성, 정확한 키 리전화 원칙에 따라 설계되었습니다.

Cloud HSM은 모든 Google Cloud 리전(멀티 리전 및 전역 포함)에서 Cloud HSM의 가장 중요한 서비스와 접속 상태에 대한 CMEK 지원을 제공합니다. 이 서비스는 FIPS 140-2 Level 3 기기로 보호되는 키를 통해 위치에 관계없이 민감한 정보를 쉽게 보호할 수 있도록 설계되었습니다.

다음 단계

자세한 내용은 다음 리소스를 참조하세요.