Confidential Space は、複数の関係者の機密データを操作するための分離された環境を提供します。これにより、データの所有者はデータの機密性を保持できます。機密データには、個人を特定できる情報(PII)、保護医療情報(PHI)、知的財産、暗号シークレット、ML モデルなどが含まれます。
Confidential Space を使用して、元の所有者と相互に合意したワークロードにのみ表示される機密データを操作できます。また、Confidential Space 環境のオペレーターやオーナーは処理中のデータにアクセスできないため、エンドユーザーに強力なデータ プライバシーを提供するために使用することもできます。
Confidential Space は、承認済みのワークロードにのみシークレットをリリースするために使用できる高信頼実行環境(TEE)を使用します。構成証明プロセスと強化された OS イメージにより、ワークロードとそれによって処理されるデータをオペレーターから保護します。
Confidential Space のユースケースとセキュリティ モデルの詳細については、Confidential Space のセキュリティの概要をご覧ください。
Confidential Space のコンポーネント
Confidential Space システムには次の 3 つのコア コンポーネントがあります。
ワークロード: 保護されたリソースを処理するコードを含むコンテナ化されたイメージ。これは、Container-Optimized OS に基づく強化された OS である Confidential Space イメージ上で実行されます。これは、ハードウェア分離とリモート構成証明機能を提供するクラウドベースの TEE である Confidential VM で実行されます。通常、ワークロードは保護されたリソースとは別のプロジェクトに配置されます。
証明書サービス: OpenID Connect(OIDC)トークンの形式で証明書エビデンスを返すリモート証明書検証ツール。認証トークンにはワークロードの識別属性が含まれています。証明書サービスが実行されるのは、ワークロードが実行されているリージョンと同一です。
保護されたリソース: 認証と認可システムによって保護されているマネージド リソース。リソースが Google Cloudにある場合、Cloud Key Management Service(Cloud KMS)鍵や Cloud Storage バケットなどのマネージド クラウド リソースにすることができます。リソースが Google Cloud にない場合(オンプレミス環境や別のクラウドなど)、任意のリソースを指定できます。
Confidential Space のロール
Confidential Space システムのコンポーネントは、次の 3 つの異なる役割を持つユーザーによって管理されます。
データ コラボレーター: ワークロードによって操作される保護されたリソースを所有するユーザーまたは組織。データ コラボレーターは、自身のデータにアクセスして、そのデータに対する権限を設定し、ワークロードの出力によっては、そのデータに基づいて結果にアクセスできます。
データ コラボレーターは、互いのデータにアクセスしたり、ワークロード コードを変更したりすることはできません。
データ コラボレーターの役割について詳しくは、機密リソースへのアクセス権を作成して付与するをご覧ください。
ワークロード作成者: 機密データにアクセスして処理するアプリケーションを作成するユーザー。たとえば、Docker を使用してアプリケーションをコンテナ化されたイメージに追加し、Artifact Registry などのリポジトリにイメージをアップロードします。
ワークロードの作成者は、データや結果にアクセスできません。また、データや結果へのアクセスを制御することもできません。
ワークロード作成者のロールの詳細については、ワークロードを作成してカスタマイズするをご覧ください。
ワークロード オペレーター: ワークロードを実行するユーザー。通常、ワークロード オペレーターには、ワークロードを実行するプロジェクトに対する完全な管理者権限が付与されています。たとえば、プロジェクト内のリソース(Compute Engine インスタンス、ディスク、ネットワーキング ルールなど)を管理し、それらを操作するGoogle Cloud API を使用できます。
ワークロード オペレーターはデータにアクセスできず、データへのアクセスを制御することもできません。ワークロードのコードや実行環境に影響を及ぼすことも、変更を加えることもできません。
ワークロード オペレーターのロールの詳細については、ワークロードをデプロイするをご覧ください。
1 人のユーザーがこれらのロールを 1 つ以上担当できます。最高レベルのセキュリティを確保するため、Confidential Space は、データ コラボレーター、ワークロード作成者、ワークロード オペレーターが分離され、相互に信頼できない関係者である信頼モデルをサポートします。すべてのロールは、必要な結果を得るために相互に連携する必要があります。
Confidential Space のフローの例
Confidential Space は、複数の Google Cloud サービスを利用して、機密情報を機密に処理します。一般に、Confidential Space の設定は次のプロセスと似ています。
複数のデータ コラボレーターが、暗号化された機密データを独自の分離されたプロジェクトに保存します。多くの場合、異なる組織に保存されます。 Google Cloud このデータを相互に、または外部の当事者に開示することなく、比較して処理したいと考えています。暗号化されたデータは、Cloud Storage、BigQuery、または別のサービスに存在している可能性があります。
データ コラボレーターは、テスト ワークロードが動作するモックの非機密データを作成します。このデータは、別のファイルである場合や、別の Cloud Storage バケットなどの別の場所に存在する場合もあります。
データ コラボレーターが Workload Identity プール(WIP)を作成します。その後、ワークロード オペレーターの分離された別のプロジェクトで実行されているワークロードは、その WIP を使用して共同編集者の機密データにアクセスできます。
ワークロードの作成者は、機密データを処理するコードを記述します。データ コラボレーターとワークロード オペレーターとは別のプロジェクトで、Docker を使用してコンテナ化されたイメージをビルドし、Artifact Registry にアップロードします。
ワークロード オペレーターは、データ コラボレーターの暗号化された機密データが保存されている場所への読み取りアクセス権と、復号されたデータに対するオペレーションの結果を出力する場所(Cloud Storage バケットなど)への書き込みアクセス権を持つサービス アカウントを分離されたプロジェクトに作成します。このサービス アカウントは、後でワークロードを実行する Confidential VM にアタッチされます。
データ コラボレーターは、Workload Identity プールにプロバイダを追加します。使用する構成証明サービス、ログに監査証跡を作成するための属性マッピング、属性条件などの詳細をプロバイダに追加します。これらの詳細は、Confidential Space イメージ、ワークロード コンテナ、ワークロード VM インスタンスによって行われたアサーションを検証します。ワークロードがこの検証に合格すると、機密データへのアクセスと復号が許可されます。
ワークロードは、ワークロード オペレーターのプロジェクトで Confidential VM インスタンスを起動して、機密性の低いデータでテストされます。VM は、コンテナ化されたワークロードを読み込む Confidential Space イメージのデバッグ バージョンに基づいています。
VM の証明書が検証され、ワークロードがデータ コラボレーターの条件を満たすと、VM に接続されたサービス アカウントは、機密データへのアクセス、処理、結果の出力が許可されます。
モニタリングとデバッグが完了すると、ワークロードが本番環境用に更新されます。データ共同編集者は、必要に応じてワークロード ID プロバイダを更新してロックダウンします。また、機密情報以外のデータで本番環境ワークロードをテストすることもあります。
すべての関係者が本番環境のワークロードを承認し、機密データの処理を開始する準備が整います。
要件
Confidential Space が機能するには、Confidential VM が必要です。Confidential VM インスタンスは、Confidential Computing テクノロジーとして AMD SEV、Intel TDX、または NVIDIA Confidential Computing を使用した Intel TDX(プレビュー)を使用する必要があります。ハードウェア構成オプションと、Confidential VM インスタンスを作成できるロケーションについては、サポートされている構成をご覧ください。