継続的な移行に顧客管理の暗号鍵(CMEK)を使用する

このページでは、顧客管理の暗号鍵(CMEK)が Database Migration Service の移行ジョブでどのように機能するかについて説明します。

デフォルトでは、Database Migration Service(Oracle から AlloyDB for PostgreSQL)は保存されているお客様のコンテンツを暗号化します。暗号化は Database Migration Service(Oracle から AlloyDB for PostgreSQL)が行うため、ユーザー側での操作は必要ありません。このオプションは、Google のデフォルトの暗号化と呼ばれます。

暗号鍵を管理する場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Database Migration Service(Oracle から AlloyDB for PostgreSQL への移行)などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。Cloud KMS を使用すると、鍵の使用状況を追跡すること、監査ログを表示すること、鍵のライフサイクルを管理することが可能です。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵を制御および管理します。

CMEK を使用してリソースを設定した後は、Database Migration Service(Oracle から AlloyDB for PostgreSQL)リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。

Database Migration Service が CMEK をサポートしているリージョン

CMEK は、すべての Database Migration Service ロケーションで使用できます。

Cloud KMS Autokey による CMEK

CMEK は手動で作成して、Database Migration Service(Oracle から AlloyDB for PostgreSQL)リソースを保護することも、Cloud KMS Autokey を使用することもできます。Autokey を使用すると、Database Migration Service(Oracle から AlloyDB for PostgreSQL)のリソースの作成または更新の一環として、キーリングと鍵がオンデマンドで生成されます。暗号化と復号のオペレーションに鍵を使用するサービス エージェントがまだ存在しない場合、そのエージェントが作成され、必要な Identity and Access Management(IAM)ロールが付与されます。詳細については、Autokey の概要をご覧ください。

サービス アカウントについて

Database Migration Service の移行ジョブで CMEK が有効になっている場合は、サービス アカウントを使用して Cloud Key Management Service から鍵のアクセスをリクエストする必要があります。

プロジェクトで CMEK を使用するには、サービス アカウントが必要であり、鍵にサービス アカウントへのアクセス権を付与する必要があります。サービス アカウントはプロジェクト内に存在する必要があります。サービス アカウントはすべてのリージョンで表示されます。

鍵について

Cloud Key Management Service では、ロケーションが設定された暗号鍵を使用して、キーリングを作成する必要があります。Database Migration Service で新しい移行ジョブを作成するときに、この鍵を選択して移行ジョブを暗号化します。

CMEK を使用する新しい移行ジョブを作成する場合は、鍵 ID と鍵リージョンを確認する必要があります。宛先データベースは、移行ジョブに関連付けられた CMEK と同じリージョンに配置する必要があります。鍵と宛先データベースの両方に対して 1 つのプロジェクトを作成できます。また、それぞれに異なるプロジェクトを作成することもできます。

CMEK の形式は次のとおりです。

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

CMEK で暗号化されたデータを永続的にアクセスできなくするにはどうすればよいですか?

CMEK で暗号化されたデータを永続的に破棄する必要が生じることも考えられます。これを行うには、CMEK バージョンを破棄します。キーリングや鍵の破棄はできませんが、鍵の鍵バージョンは破棄できます。

制限事項

CMEK を使用する場合、次の制限が適用されます。

  • 実行中の移行ジョブで CMEK を更新することはできません。

  • CMEK を使用して移行元データベースのデータを暗号化できますが、これらの鍵を使用して移行ジョブのメタデータ(移行ジョブ ID、移行元データベースの IP アドレスなど)を暗号化することはできません。

CMEK の使用

以降のセクションでは、次の CMEK の設定方法について説明します。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Google Cloud SDK をインストールして初期化します
  7. ユーザー アカウントにデータベース移行管理者のロールが割り当てられていることを確認します。

    IAM ページに移動

  8. Enable the Cloud Key Management Service API.

    Enable the API

  9. Database Migration Service API を有効にします。

    API を有効にする

CMEK を使用して Database Migration Service で移行ジョブを作成するワークフロー

  1. gcloud CLI と API ユーザーのみ: CMEK を必要とするプロジェクトごとにサービス アカウントがあることを確認します。詳細については、サービス アカウントを作成するをご覧ください。

  2. キーリングと鍵を作成し、鍵ごとにロケーションを設定します。ロケーションはリージョンです。 Google Cloud

  3. サービス アカウントに鍵のアクセス権を付与します。

  4. 鍵の鍵 ID(KMS_KEY_ID)とロケーション、キーリングの ID(KMS_KEYRING_ID)をコピーするか書き留めます。この情報は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。

  5. プロジェクトに移動し、Database Migration Service で移行ジョブを作成し、[詳細な暗号化オプション] セクションで CMEK を使用します。

Database Migration Service の移行ジョブで CMEK が有効になりました。

サービス アカウントを作成する

CMEK を必要とするプロジェクトごとにサービス アカウントを作成する必要があります。ユーザーがサービス アカウントを管理できるようにするには、次のいずれかの役割を付与します。

  • サービス アカウント ユーザー(roles/iam.serviceAccountUser): サービス アカウントを一覧表示する権限、サービス アカウントの詳細を取得する権限、サービス アカウントの権限借用の権限が含まれます。
  • サービス アカウント管理者(roles/iam.serviceAccountAdmin): サービス アカウントを一覧表示する権限、サービス アカウントの詳細を取得する権限が含まれます。サービス アカウントの作成、更新、削除に加え、サービス アカウントの Database Migration Service(Oracle から AlloyDB for PostgreSQL)ポリシーを表示または変更する権限も含まれます。

CMEK に必要なタイプのサービス アカウントを作成するには、gcloud CLI コマンドのみを使用できます。

gcloud CLI でサービス アカウントを作成するには、次のコマンドを実行します。

gcloud beta services identity create \
--service=datamigration.googleapis.com\
--project=PROJECT_ID

上記のコマンドはサービス アカウント名を返します。このサービス アカウント名は、サービス アカウントへの鍵へのアクセス権の付与の手順で使用します。

キーを作成

鍵は、Database Migration Service の移行ジョブと同じ Google Cloud プロジェクトで作成するか、別のユーザー プロジェクトで作成します。Cloud KMS キーリングのロケーションは、移行ジョブに関連付けられている宛先データベースのリージョンと一致する必要があります。マルチリージョン鍵またはグローバル リージョン鍵はサポートされていません。リージョンが一致しない場合、移行ジョブを作成できません。

Cloud KMS 鍵を作成するには:

Console

  1. Google Cloud コンソールで、[暗号鍵] ページに移動します。
  2. [キーリングを作成] をクリックします。
  3. [キーリング名] を追加します。この名前はサービス アカウントに鍵へのアクセスを付与するときに必要になるため、書き留めておきます。
  4. [キーリングの場所] を追加します。
  5. [作成] をクリックします。[鍵の作成] ページが開きます。
  6. [鍵の名前] を追加します。
  7. [目的] を選択します(対称または非対称)。
  8. [ローテーション期間] と [開始日] を選択します。
  9. [作成] をクリックします。
  10. [] のテーブルで、最後の列の 3 つのドットをクリックし、[リソース ID をコピー] を選択するか、書き留めます。これは KMS_KEY_ID です。KMS_KEY_ID は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。

gcloud CLI

  1. 新しいキーリングを作成します。
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=REGION
      
    この名前は、サービス アカウントに鍵へのアクセスを付与するときに必要になるため、書き留めておきます。
  2. キーリングで鍵を作成します。
    gcloud kms keys create KMS_KEY_ID \
    --location=REGION \
    --keyring=KMS_KEYRING_ID \
    --purpose=encryption
      
    この名前は、サービス アカウントに鍵へのアクセスを付与するときに必要になるため、書き留めておきます。

サービス アカウントに鍵へのアクセス権を付与する

この手順は、gcloud CLI または API を使用している場合にのみ必要です。

サービス アカウントへのアクセス権を付与するには、次のコードを使用します。

gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
--location=REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

CMEK を使用して Database Migration Service で移行ジョブを作成する

Database Migration Service で移行ジョブを作成するときに、CMEK を使用してデータの暗号化を管理できます。

鍵バージョンを無効にしてから再度有効にする

次のトピックをご覧ください。