Confidential Space 개요

Confidential Space는 여러 당사자의 민감한 정보를 처리할 수 있는 격리된 환경을 제공하므로 데이터 소유자는 데이터를 기밀로 유지할 수 있습니다. 민감한 정보에는 개인 식별 정보 (PII), 보호 건강 정보 (PHI), 지식 재산, 암호화된 보안 비밀, 머신러닝 (ML) 모델 등이 포함될 수 있습니다.

Confidential Space를 사용하여 원래 소유자와 상호 합의된 워크로드에만 표시되는 민감한 정보를 처리할 수 있습니다. 또는 Confidential Space 환경의 운영자나 소유자가 처리 중인 데이터에 액세스할 수 없으므로 최종 고객에게 더 강력한 데이터 개인 정보 보호를 제공하는 데 사용할 수 있습니다.

Confidential Space는 승인된 워크로드에만 보안 비밀을 해제하는 데 사용할 수 있는 신뢰할 수 있는 실행 환경 (TEE)입니다. 증명 프로세스와 강화된 OS 이미지는 운영자로부터 워크로드가 처리하는 워크로드와 데이터를 보호하는 데 도움이 됩니다.

Confidential Space 사용 사례와 보안 모델에 대한 자세한 내용은 Confidential Space 보안 개요를 참조하세요.

Confidential Space 구성요소

Confidential Space 시스템에는 세 가지 핵심 구성요소가 있습니다.

  • 워크로드: 보호된 리소스를 처리하는 코드가 포함된 컨테이너화된 이미지입니다. 이 이미지는 Container-Optimized OS를 기반으로 강화된 OS인 Confidential Space 이미지에서 실행됩니다. 이 이미지는 하드웨어 격리 및 원격 증명 기능을 제공하는 컨피덴셜 VM에서 실행됩니다. 워크로드는 일반적으로 보호된 리소스와 별도의 프로젝트에 있습니다.

  • 증명 서비스: OpenID Connect(OIDC) 토큰 형식으로 증명 증거를 반환하는 원격 증명 검증 도구입니다. 토큰에는 워크로드의 식별 속성이 포함되어 있습니다. 증명 서비스는 워크로드가 실행되는 동일한 리전에서 실행됩니다.

  • 보호된 리소스: 인증 및 승인 시스템으로 보호되는 관리형 리소스입니다. 리소스가 에 있는 경우 Google Cloud Cloud Key Management Service (Cloud KMS) 키 또는 Cloud Storage 버킷과 같은 관리형 클라우드 리소스일 수 있습니다. 리소스가 에 없는 경우(예: 온프레미스 환경 또는 다른 클라우드) 모든 리소스가 될 수 있습니다. Google Cloud

Confidential Space 역할

Confidential Space 시스템의 구성요소는 다음과 같은 세 가지 고유한 역할을 가진 사용자가 관리합니다.

  • 데이터 공동작업자: 워크로드에서 작동하는 보호된 리소스를 소유한 사용자 또는 조직입니다. 데이터 공동작업자는 자신의 데이터에 액세스하고, 이 데이터에 대해 권한을 설정하고, 워크로드의 출력에 따라 해당 데이터를 기반으로 결과에 액세스할 수 있습니다.

    데이터 공동작업자는 서로의 데이터에 액세스하거나 워크로드 코드를 수정할 수 없습니다.

    데이터 공동작업자의 역할에 대해 자세히 알아보려면 기밀 리소스에 대한 액세스 권한 만들기 및 부여 를 참조하세요.

  • 워크로드 작성자: 기밀 데이터에 액세스하고 처리하는 애플리케이션을 만드는 사용자입니다. 예를 들어 Docker를 사용하여 컨테이너화된 이미지에 애플리케이션을 추가하고 Artifact Registry와 같은 저장소에 이미지를 업로드합니다.

    워크로드 작성자는 데이터나 결과에 액세스할 수 없으며 액세스 권한을 제어할 수도 없습니다.

    워크로드 작성자의 역할에 대해 자세히 알아보려면 워크로드 만들기 및 맞춤설정 을 참조하세요.

  • 워크로드 운영자: 워크로드를 실행하는 사용자입니다. 워크로드 운영자에게는 일반적으로 워크로드를 실행하는 프로젝트에 대한 전체 관리 권한이 있습니다. 예를 들어 프로젝트의 리소스 (예: Compute Engine 인스턴스, 디스크, 네트워킹 규칙)를 관리하고 여기에서 작동하는 모든 Google Cloud API와 상호작용할 수 있습니다.

    워크로드 운영자는 데이터에 액세스할 수 없으며 액세스 권한을 제어할 수도 없습니다. 워크로드 코드 또는 실행 환경에 영향을 주거나 수정할 수 없습니다.

    워크로드 운영자의 역할에 대해 자세히 알아보려면 워크로드 배포를 참조하세요.

사용자는 이러한 역할 중 하나 이상을 맡을 수 있습니다. 최고 수준의 보안을 위해 Confidential Space는 데이터 공동작업자, 워크로드 작성자, 워크로드 운영자가 서로 신뢰하지 않는 별도의 신뢰 모델을 지원합니다. 모든 역할은 필요한 결과를 얻기 위해 서로 협력해야 합니다.

Confidential Space 흐름 예시

Confidential Space는 여러 Google Cloud 서비스를 사용하여 비공개 정보를 기밀로 처리할 수 있도록 지원합니다. 일반적으로 Confidential Space 설정은 다음과 같은 프로세스와 유사할 수 있습니다.

  1. 여러 데이터 공동작업자가 암호화된 기밀 데이터를 격리된 자체 프로젝트 Google Cloud 에 저장합니다(대부분 서로 다른 조직에 있음). 이들은 서로 또는 외부 당사자에게 데이터를 공개하지 않고 해당 데이터를 비교하고 처리하려고 합니다. 암호화된 데이터는 Cloud Storage, BigQuery 또는 다른 서비스에 있을 수 있습니다.

  2. 데이터 공동작업자는 테스트 워크로드에서 작동할 기밀이 아닌 가짜 데이터를 만듭니다. 이 데이터는 서로 다른 파일이거나 별도의 Cloud Storage 버킷과 같은 다른 위치에 있을 수 있습니다.

  3. 데이터 공동작업자는 워크로드 아이덴티티 풀 (WIP)을 만듭니다. 나중에 워크로드 운영자의 별도 격리된 프로젝트에서 실행되는 워크로드는 해당 WIP를 사용하여 공동작업자의 기밀 데이터에 액세스할 수 있습니다.

  4. 워크로드 작성자는 기밀 데이터를 처리하는 코드를 작성합니다. 데이터 공동작업자 및 워크로드 운영자와 별도의 프로젝트에서 Docker를 사용하여 컨테이너화된 이미지를 빌드하고 Artifact Registry에 업로드합니다.

  5. 워크로드 운영자는 데이터 공동작업자의 암호화된 기밀 데이터가 저장된 위치에 대한 읽기 액세스 권한이 있고 복호화된 데이터에 대한 작업 결과를 출력할 위치 (예: Cloud Storage 버킷)에 대한 쓰기 액세스 권한이 있는 격리된 프로젝트에서 서비스 계정을 만듭니다. 나중에 이 서비스 계정은 워크로드를 실행하는 컨피덴셜 VM에 연결됩니다.

  6. 데이터 공동작업자는 프로바이더를 워크로드 아이덴티티 풀에 추가합니다. 사용해야 하는 증명 서비스, 속성 매핑, 로그에 감사 추적을 만드는 속성 조건과 같은 세부정보를 제공업체에 추가합니다. 이러한 세부정보는 어설션을 확인합니다. 이 어설션은 Confidential Space 이미지, 워크로드 컨테이너, 워크로드 VM 인스턴스에서 수행되었습니다. 워크로드가 이 확인을 통과하면 기밀 데이터에 액세스하고 복호화할 수 있습니다.

  7. 워크로드 운영자의 프로젝트에서 컨피덴셜 VM 인스턴스를 시작하여 기밀이 아닌 데이터에서 워크로드를 테스트합니다. VM은 컨테이너화된 워크로드를 로드하는 Confidential Space 이미지의 디버그 버전을 기반으로 합니다.

    VM의 증명이 확인되고 워크로드가 데이터 공동작업자의 조건을 통과하면 VM에 연결된 서비스 계정이 기밀 데이터에 액세스하고, 처리하고, 결과를 출력할 수 있습니다.

  8. 모니터링 및 디버깅이 완료되면 프로덕션 사용을 위해 워크로드가 업데이트됩니다. 데이터 공동작업자는 필요한 경우 워크로드 아이덴티티 제공업체를 추가로 업데이트하고 잠그며, 먼저 기밀이 아닌 데이터에서 프로덕션 워크로드를 테스트할 수 있습니다.

  9. 모든 당사자가 프로덕션 워크로드에 서명하면 기밀 데이터 작업을 시작할 준비가 됩니다.

요구사항

Confidential Space가 작동하려면 컨피덴셜 VM이 필요합니다. 컨피덴셜 VM 인스턴스는 컨피덴셜 컴퓨팅 기술로 AMD SEV, Intel TDX 또는 NVIDIA 컨피덴셜 컴퓨팅이 포함된 Intel TDX를 사용해야 합니다. 하드웨어 구성 옵션과 컨피덴셜 VM 인스턴스를 만들 수 있는 위치에 대해 알아보려면 지원되는 구성을 참조하세요.

다음 단계