Cloud Healthcare API データセットに対して顧客管理の暗号鍵(CMEK)を有効にする

デフォルトでは、 Google Cloud は、Google が管理する暗号鍵を使用して、保存されているデータを自動的に暗号化します。データを保護する鍵に関連する具体的なコンプライアンス要件や規制要件がある場合は、Cloud Healthcare API データセットに顧客管理の暗号鍵(CMEK)を使用できます。Cloud Healthcare API データセットは、データを保護する暗号鍵を Google が所有、管理する代わりに、Cloud Key Management Service(Cloud KMS)でお客様が制御、管理する鍵を使用して暗号化されます。

CMEK の一般的な用途や使用する理由などの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。

始める前に

Cloud Healthcare API データセットと Cloud KMS を同じ Google Cloud プロジェクトに配置するか、別のプロジェクトに配置するかを決定します。ガイダンスについては、職掌分散をご覧ください。

文書化の目的で、次の表記方法を使用します。

  • PROJECT_ID: Cloud Healthcare API プロジェクト ID
  • KMS_PROJECT_ID: Cloud KMS が実行されるプロジェクト ID。PROJECT_ID と同じ場合もあります。

Google Cloud プロジェクト ID とプロジェクト番号については、プロジェクトの識別をご覧ください。

制限事項

  • Cloud KMS 鍵は、Cloud Healthcare API データセットの作成時にのみ使用できます。既存の Cloud Healthcare API データセットでは、Cloud KMS 鍵を有効化、変更、無効化できません。
  • CMEK で暗号化されたデータセットでは、FHIR、DICOM、HL7v2 ストアのみがサポートされます。CMEK 保護は、データセット内の DICOM、FHIR、HL7v2 ストアとそのリソースに適用されます。
  • CMEK で暗号化されたリソースを匿名化することはできません。

CMEK の運用

Cloud KMS 鍵は、CMEK で暗号化されたリソースの作成、読み取り、更新、削除を行う場合や、課金や鍵の可用性の確保などの運用タスクに使用されます。

外部の鍵に関する考慮事項

サポートされている外部鍵管理パートナー システム内で管理する鍵を使用してGoogle Cloud内のデータを保護する方法については、Cloud External Key Manager をご覧ください。

Google Cloudの外部で管理している鍵を紛失すると、Google はデータを復元できません。

鍵の使用不能とデータ損失

データセットが鍵で暗号化されていて、その鍵が使用できなくなり、そのまま使用不能になった場合、Cloud Healthcare API はデータセットを無効にし、最終的に削除します。鍵が無効化または破棄された場合や権限の取り消しによりアクセス不能になった場合は鍵が使用できなくなることがありますが、このような動作はなんらかの理由で鍵が使用できない場合に発生します。鍵の保護レベルや鍵が外部鍵であるかどうかは、この動作には影響しません。外部鍵は、予期せず使用できなくなることもあります。たとえば、Google Cloud リソースと EKM の間に接続の問題が発生する可能性があります。

次のプロセスでは、鍵の可用性を確認する方法と、データセットを無効にして削除する方法について説明します。

  1. CMEK で暗号化された Cloud Healthcare API データセットが作成されると、Cloud Healthcare API によって、鍵が利用可能な状態であることを確認するために、鍵のステータスが 5 分ごとにチェックされます。鍵が使用できない場合、Cloud Healthcare API は最長 1 時間、データセットに対するリクエストを引き続きサポートします。

  2. 1 時間経過しても Cloud Healthcare API が Cloud KMS に接続できない場合、保護対策として Cloud Healthcare API データセットが無効になります。Cloud Healthcare API データセットを再度有効にするには、サポート担当者にお問い合わせください。

    無効になった場合、Cloud Healthcare API データセットには datasets.get リクエストと datasets.delete リクエストのみを送信できます。他のリクエストは 400 FAILED_PRECONDITION エラーで失敗します。

  3. Cloud Healthcare API データセットが 30 日以上利用できない場合は、完全に削除されます。データセット内の DICOM ストア、FHIR ストア、HL7v2 ストアと、それらに関連付けられているデータも削除されます。削除すると、データは復元できません。

鍵の作成

以降のセクションでは、Cloud KMS キーリングと鍵を作成する方法について説明します。Cloud KMS の対称暗号鍵のみがサポートされています。

サポートされているロケーション

Cloud KMS 鍵は、Cloud Healthcare API のロケーションで使用できます。キーリングは、Cloud Healthcare API データセットのリージョンまたはマルチリージョンと一致するロケーションに作成します。

  • マルチリージョンの Cloud Healthcare API データセットでは、一致するロケーションのマルチリージョン キーリングを使用する必要があります。たとえば、リージョン us 内の Cloud Healthcare API データセットはリージョン us のキーリングで保護する必要があり、リージョン eu 内の Cloud Healthcare API データセットはリージョン europe のキーリングで保護する必要があります。

  • リージョン Cloud Healthcare API データセットでは、一致するリージョンの鍵を使用する必要があります。たとえば、リージョン asia-northeast1 内の Cloud Healthcare API データセットはリージョン asia-northeast1 のキーリングで保護する必要があります。

  • Cloud Healthcare API データセットに CMEK を構成する場合、global リージョンは使用できません。

詳細については、Cloud Healthcare API のロケーションCloud KMS のロケーションをご覧ください。

キーリングと鍵を作成する

Cloud KMS を実行する Google Cloud プロジェクトで、次の手順を完了します。

  1. キーリングを作成します
  2. 鍵を作成する

暗号化と復号の権限を付与する

Cloud KMS 鍵を使用して Cloud Healthcare API データを保護するには、Cloud Healthcare サービス エージェントのサービス アカウント暗号鍵の暗号 / 復号ツール(roles/cloudkms.cryptoKeyEncrypterDecrypterのロールをそのキーに対して付与します。手順については、データセット CMEK の権限をご覧ください。

サービス アカウントにロールが付与されると、Cloud Healthcare API は CMEK で暗号化されたリソースの暗号化と復号ができるようになります。アプリケーションでは、データの読み取りと書き込み時にキーを指定する必要はありません。Cloud Healthcare API は暗号化を処理します。

リクエスト元が Cloud KMS 鍵で暗号化されたオブジェクトの読み取りまたは書き込みを行う場合、通常どおりオブジェクトにアクセスします。リクエストの処理中に、次の条件が両方とも満たされると、リクエストされたオブジェクトがサービス エージェントによって自動的に暗号化または復号されます。

  • サービス エージェントには引き続き必要な権限が与えられている。
  • 鍵が使用可能で有効になっている。

CMEK で暗号化された Cloud Healthcare API データセットを作成する

次のサンプルは、CMEK で暗号化されたデータセットを作成する方法を示しています。

データセットの作成時に、Cloud KMS 鍵のリソース ID を指定する必要があります。この鍵は次の形式で、大文字と小文字は区別されます。

projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Cloud KMS 鍵のリソース ID を表示するには、Cloud KMS リソース ID の取得をご覧ください。

コンソール

  1. Google Cloud コンソールで、[ブラウザ] ページに移動します。