顧客管理の暗号鍵(CMEK)

デフォルトでは、 Google Cloud は、Google が管理する暗号鍵を使用して、保存されているデータを自動的に暗号化します。データを保護する鍵について特定のコンプライアンス要件や規制要件がある場合は、顧客管理の暗号鍵(CMEK)を使用できます。

CMEK を使用すると、Cloud Key Management Service(Cloud Key Management Service)で制御する暗号鍵を使用して Backup and DR データを保護できます。CMEK を使用すると、Cloud Key Management Service で鍵を管理し、鍵に対する Identity and Access Management 権限を管理することで、鍵にアクセスできるユーザーを制御できます。CMEK 鍵を一時的に無効にするか、完全に破棄すると、その鍵で保護されているデータにアクセスできなくなります。CMEK の一般的な用途の詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。

Backup and DR は、CMEK を使用して Backup Vault に保存されたバックアップ データを保護します。

Backup and DR での CMEK の使用方法

バックアップするリソースに応じて、Backup and DR は CMEK 鍵を使用して次のようにバックアップを保護します。

  • バックアップ Vault に保存されている Compute Engine インスタンスのバックアップの場合: Compute Engine インスタンスにアタッチされている 1 つ以上のディスクが CMEK で暗号化されている場合、Backup and DR では、そのインスタンスを CMEK 対応のバックアップ Vault にバックアップする必要があります。インスタンスに接続されているすべてのディスクで Google が管理する暗号化を使用している場合は、 Google Cloud コンソールで、CMEK 以外の Backup Vault にバックアップを保存する必要があります。ただし、Google Cloud CLI、API、または Terraform を使用する場合は、このようなインスタンスのバックアップを CMEK 対応のバックアップ ボルトに保存するように構成できます。

    Compute Engine インスタンスのバックアップが CMEK 対応のバックアップ ボルトに保存されている場合、インスタンスのディスクの暗号化ステータスに関係なく、バックアップ データはボルトの Cloud Key Management Service 鍵を使用して暗号化されます。

  • Persistent Disk のバックアップの場合: Backup and DR は、ソース ワークロードの暗号化に依存することで、ソースディスクの暗号化を保持します。ソース Persistent Disk が CMEK で保護されている場合、そのバックアップは同じ CMEK 鍵で保護されます。ソース Persistent Disk で Google 管理の暗号化が使用されている場合、そのバックアップでも Google 管理の暗号化が使用され、CMEK で構成されていないバックアップ Vault に保存する必要があります。

次の表に、さまざまなワークロード タイプのバックアップに使用される暗号鍵をまとめます。

ワークロード バックアップに使用される暗号鍵 CMEK のサポート ステータス
Compute Engine インスタンス Backup Vault の CMEK 鍵 サポート対象
Compute Engine ディスク ソースディスクの暗号鍵 サポート対象
Cloud SQL - 非対応
AlloyDB クラスタ - 非対応
Filestore インスタンス - 非対応
Google Cloud VMware Engine、Oracle データベース、SQL Server データベース - 非対応

制限事項

CMEK のバックアップと DR のサポートには、次の制限があります。

  • CMEK 保護は、バックアップ Vault に保存されている Compute Engine インスタンスと Persistent Disk のバックアップでのみサポートされます。
  • バックアップ ボールトで CMEK を構成できるのは、作成時のみです。既存のバックアップ ボルトで CMEK を有効、無効、変更することはできません。
  • Cloud Key Management Service 鍵は、バックアップ ボルトと同じロケーションにある必要があります。リージョンのバックアップ Vault は、同じリージョンの鍵を使用する必要があります。マルチリージョン Backup Vault は、同じマルチリージョンの鍵を使用する必要があります。
  • Backup and DR は、顧客指定の暗号鍵(CSEK)をサポートしていません。
  • デフォルトの Backup Vault とデフォルトのバックアップ プランは、Google 管理の暗号化を使用します。CMEK を使用するには、新しいバックアップ ボルトを作成し、CMEK を明示的に有効にする必要があります。

始める前に

CMEK の使用を開始する前に、次の手順を完了します。

  1. CMEK 鍵を格納するプロジェクトで Cloud Key Management Service API を有効にします。

    API を有効化

  2. Cloud Key Management Service のキーリングと鍵を作成します。鍵を作成するときは、Backup Vault のロケーションと一致するロケーションを選択してください。リージョンのバックアップ Vault は、同じリージョンの鍵を使用する必要があります。マルチリージョン バックアップ Vault は、同じマルチリージョンの鍵を使用する必要があります。

  3. まだ作成していない場合は、Backup and DR サービス エージェントを作成します。サービス エージェントは、プロジェクトで最初の Backup and DR リソース(バックアップ ボルト、 Google Cloud コンソールなど)が作成された後に自動的に作成されます。バックアップ Vault を作成する前にサービス エージェントに権限を付与する必要がある場合は、次のコマンドを使用して作成をトリガーできます。

    gcloud beta services identity create --service=backupdr.googleapis.com --project=PROJECT_ID
    
    PROJECT_ID は、プロジェクトの ID に置き換えます。

CMEK の権限を付与する

Backup and DR が CMEK を使用してバックアップを保護したり、CMEK で保護されたリソースをバックアップしたりするには、特定のサービス エージェントに IAM ロールを付与する必要があります。

Vault CMEK 鍵を使用する権限を付与する

バックアップ ボールトに CMEK を構成する場合、Backup and DR には、CMEK 鍵を使用してデータを暗号化および復号する権限が必要です。この権限は、Backup and DR サービス エージェントに付与する必要があります。

Backup and DR で使用される 2 つの異なるサービス アカウントを区別することが重要です。

  • Backup and DR サービス エージェント: Backup and DR リソースの管理と、バックアップ Vault が CMEK で構成されている場合の Cloud Key Management Service 鍵へのアクセスに使用されるプロジェクト レベルのサービス アカウントです。これは、CMEK 鍵に対する roles/cloudkms.cryptoKeyEncrypterDecrypter ロールを必要とするサービス エージェントです。
  • バックアップ ボルトのサービス アカウント: これは、ボルトごとに一意のサービス アカウントです。このアカウントに、ソース ワークロード(Compute Engine インスタンスなど)にアクセスしてバックアップする権限を付与します。このサービス アカウントは、バックアップ ボルト内のデータの CMEK 暗号化には使用されません。

Backup and DR で CMEK を使用するには、Backup and DR サービス エージェントに Cloud KMS CryptoKey の暗号化/復号ロール(roles/cloudkms.cryptoKeyEncrypterDecrypter)を付与する必要があります。このサービス エージェントは、Backup and DR がユーザーに代わってリソースにアクセスするために使用するサービス アカウントです。これには、暗号化と復号オペレーション中に Cloud Key Management Service 鍵にアクセスすることも含まれます。

Backup and DR サービス エージェントの名前は次の形式です。

service-VAULT_PROJECT_NUMBER@gcp-sa-backupdr.iam.gserviceaccount.com

VAULT_PROJECT_NUMBER は、バックアップ ボルトを含むプロジェクトのプロジェクト番号に置き換えます。

IAM ロールを付与する権限がある場合は、 Google Cloud コンソールを使用してバックアップ ボルトの作成時にこのロールを付与できます。また、gcloud kms keys add-iam-policy-binding コマンドを使用して事前に付与することもできます。

gcloud kms keys add-iam-policy-binding KEY_NAME \
    --location=KMS_LOCATION \
    --keyring=KEY_RING \
    --member=serviceAccount:service-VAULT_PROJECT_NUMBER@gcp-sa-backupdr.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

このロールは、例に示すように特定の鍵に付与することも、鍵リングまたはプロジェクト レベルで付与することもできます。キーレベルで権限を付与すると、最もきめ細かい制御が可能になり、最小権限の原則に沿った運用ができます。Backup and DR がそのスコープ内の複数の鍵を使用することを想定している場合は、プロジェクト レベルまたはキーリング レベルで権限を付与する方が便利ですが、より広範な権限が付与されます。

CMEK で保護されたリソースのバックアップ権限を付与する

CMEK で暗号化されたディスクを含む Compute Engine インスタンスなど、別の CMEK 鍵で暗号化されたリソースをバックアップする場合は、追加の権限が必要です。ソースリソースのサービスのサービス エージェントには、ソースリソースを保護する鍵を使用する権限が必要です。たとえば、CMEK で暗号化された Compute Engine インスタンスをバックアップするには、ソース インスタンスのプロジェクトの Compute Engine サービス エージェントに、インスタンスのディスクの暗号化に使用される Cloud Key Management Service 鍵に対する roles/cloudkms.cryptoKeyEncrypterDecrypter ロールが必要です。ほとんどの場合、この権限は移行元ワークロードが動作するためにすでに設定されています。

Backup and DR で CMEK を使用する

このセクションでは、CMEK を使用してバックアップを保護するワークフローについて説明します。

1. CMEK 対応のバックアップ Vault を作成する

バックアップ ボルトを作成するときに、[暗号化] セクションで [顧客管理の暗号鍵(CMEK)] オプションを選択し、作成した Cloud Key Management Service 鍵を選択します。CMEK は Vault の作成時にのみ有効にできます。既存の Vault で有効にしたり、無効にしたり、変更したりすることはできません。

2. バックアップ プランの作成

バックアップ プランを作成するときに、前の手順で作成した CMEK 対応の Backup Vault をバックアップのターゲット Backup Vault として選択します。

3. バックアップ プランをリソースに適用する

バックアップ プランをリソースに適用する場合は、バックアップ プランがリソースの暗号化構成と互換性のあるバックアップ Vault をターゲットにしていることを確認する必要があります。

  • 1 つ以上の CMEK で暗号化されたディスクがアタッチされている Compute Engine インスタンスをバックアップする場合は、CMEK 対応の Backup Vault をターゲットとするバックアップ プランを使用する必要があります。
  • アタッチされたすべてのディスクで Google マネージド暗号化を使用する Compute Engine インスタンスをバックアップする場合:
    • Google Cloud コンソールを使用してバックアップ プランを割り当てる場合は、CMEK 以外の Backup Vault をターゲットとするバックアップ プランを使用する必要があります。
    • gcloud CLI、API、または Terraform を使用してバックアップ プランを割り当てる場合は、CMEK 対応のバックアップ ボルトをターゲットとするバックアップ プランを選択できます。その場合、インスタンスのバックアップはバックアップ ボルトの CMEK 鍵で暗号化されます。
  • Google マネージド暗号化を使用する Persistent Disk をバックアップする場合は、CMEK 以外のバックアップ ボルトをターゲットとするバックアップ プランを使用する必要があります。

バックアップを正常に実行するには、CMEK の権限を付与するで説明されているように、必要な KMS 権限が付与されていることを確認してください。

Cloud Key Management Service の鍵のローテーションとバックアップの復元可能性

Backup and DR は、Cloud Key Management Service の鍵のローテーションをサポートしています。鍵をローテーションすると、Cloud Key Management Service は新しい鍵バージョンを作成し、それがメインのバージョンになります。Backup and DR は、メインの鍵バージョンを使用して、その鍵で構成されたバックアップ ボルトのすべての新しいバックアップを暗号化します。

既存のバックアップは再暗号化されず、作成時に使用された鍵バージョンで暗号化されたままになります。バックアップを復元するには、バックアップの暗号化に使用した鍵バージョンが Cloud Key Management Service で使用可能である必要があります。鍵バージョンを無効にするか破棄すると、そのバージョンで暗号化されたバックアップにアクセスできなくなります。バックアップの復元可能性を確保するため、復元する必要があるバックアップでまだ使用されている鍵バージョンを無効にしたり、破棄したりしないでください。

何らかの理由で Backup and DR が CMEK 鍵にアクセスできない場合(暗号化または復号に必要な鍵バージョンが無効または破棄された場合、または鍵に対する IAM 権限が Backup and DR サービス エージェントから取り消された場合など)、次の問題が発生する可能性があります。

  • プライマリ鍵バージョンにアクセスできない場合、CMEK 対応のバックアップ ボルトへの新しいバックアップは失敗します。
  • バックアップの暗号化に使用された特定の鍵バージョンにアクセスできない場合、バックアップ ボルトからの復元は失敗します。
  • アクセスできないキーを使用する新しいバックアップ ボルトを作成することはできません。

バックアップに使用された鍵バージョンを無効にした場合、再度有効にすると、そのバージョンで暗号化されたバックアップへのアクセスが復元されます。鍵バージョンを破棄すると、その鍵バージョンで暗号化されたバックアップは完全に失われ、復元できなくなります。

料金

Backup and DR では、CMEK の使用に追加料金はかかりません。ただし、Cloud Key Management Service で鍵を使用すると料金が発生します。詳細については、Cloud Key Management Service の料金をご覧ください。

次のステップ