概要
このページでは、顧客管理の暗号鍵(CMEK)が Database Migration Service の移行ジョブでどのように機能するかについて説明します。
CMEK は適しているか?
CMEK は、機密データや規制対象データを保管し、独自の暗号鍵を管理する必要がある組織を対象としています。
Google が管理する暗号鍵と顧客管理の暗号鍵の比較
CMEK 機能を使用すると、Database Migration Service によって転送されるデータに独自の暗号鍵を使用できます。CMEK を追加すると、API が呼び出されるたびに、Database Migration Service はその鍵を使用してデータにアクセスします。
ソフトウェア、ハードウェア、外部鍵などを含む CMEK はすべて、Cloud Key Management Service(KMS)API を介して管理されます。
CMEK を有効にした Database Migration Service の移行ジョブはどのロケーションでサポートされていますか?
CMEK は、すべての Database Migration Service ロケーションで使用できます。
サービス アカウントについて
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 について理解できたので、CMEK のサービス アカウントとキーを設定しましょう。また、CMEK を使用するように移行ジョブを設定する方法についても学習します。CMEK の詳細については、概要をご覧ください。
始める前に
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Cloud SDK をインストールして初期化します。
- ユーザー アカウントにデータベース移行管理者のロールが割り当てられていることを確認します。
-
Enable the Cloud Key Management Service API.
- Database Migration Service API を有効にします。
CMEK を使用して Database Migration Service で移行ジョブを作成するワークフロー
gcloud と API ユーザーのみ: CMEK を必要とするプロジェクトごとにサービス アカウントがあることを確認します。詳細については、サービス アカウントを作成するをご覧ください。
キーリングと鍵を作成し、鍵ごとにロケーションを設定します。ロケーションは、 Google Cloud リージョンです。
鍵の鍵 ID(
KMS_KEY_ID
)とロケーション、キーリングの ID(KMS_KEYRING_ID
)をコピーするか書き留めます。この情報は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。プロジェクトに移動し、Database Migration Service で移行ジョブを作成し、[詳細な暗号化オプション] セクションで CMEK を使用します。
Database Migration Service の移行ジョブで CMEK が有効になりました。
サービス アカウントを作成する
CMEK を必要とするプロジェクトごとにサービス アカウントを作成する必要があります。
ユーザーがサービス アカウントを管理できるようにするには、次のいずれかの役割を付与します。
- サービス アカウント ユーザー(
roles/iam.serviceAccountUser
): サービス アカウントを一覧表示する権限、サービス アカウントの詳細を取得する権限、サービス アカウントの権限借用の権限が含まれます。 - サービス アカウント管理者(
roles/iam.serviceAccountAdmin
): サービス アカウントを一覧表示する権限、サービス アカウントの詳細を取得する権限が含まれます。サービス アカウントの作成、更新、削除に加え、サービス アカウントの Database Migration Service(Oracle から AlloyDB for PostgreSQL)ポリシーを表示または変更する権限も含まれます。
現在、CMEK に必要なタイプのサービス アカウントを作成するには、gcloud
コマンドのみを使用できます。
gcloud
でサービス アカウントを作成するには、次のコマンドを実行します。
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
上記のコマンドはサービス アカウント名を返します。このサービス アカウント名は、サービス アカウントへの鍵へのアクセス権の付与の手順で使用します。
キーを作成
鍵は、Database Migration Service の移行ジョブと同じ Google Cloud プロジェクトで作成するか、別のユーザー プロジェクトで作成します。Cloud KMS キーリングのロケーションは、移行ジョブに関連付けられている宛先データベースのリージョンと一致する必要があります。マルチリージョン鍵またはグローバル リージョン鍵はサポートされていません。リージョンが一致しない場合、移行ジョブを作成できません。
Cloud KMS 鍵を作成するには:
コンソール
- Google Cloud コンソールで、[暗号鍵] ページに移動します。
- [キーリングを作成] をクリックします。
- [キーリング名] を追加します。この名前はサービス アカウントに鍵へのアクセスを付与するときに必要になります。
- [キーリングの場所] を追加します。
- [作成] をクリックします。[鍵の作成] ページが開きます。
- [鍵の名前] を追加します。
- [目的] を選択します(対称または非対称)。
- [ローテーション期間] と [開始日] を選択します。
- [作成] をクリックします。
- [鍵] のテーブルで、最後の列の 3 つのドットをクリックし、[リソース ID をコピー] を選択するか、書き留めます。これは
KMS_KEY_ID
です。KMS_KEY_ID
は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。
gcloud
- 新しいキーリングを作成します。
この名前は、サービス アカウントに鍵へのアクセスを付与するときに必要になるため、書き留めておきます。gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- キーリングで鍵を作成します。
この名前は、サービス アカウントに鍵へのアクセスを付与するときに必要になるため、書き留めておきます。gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
サービス アカウントに鍵のアクセス権を付与する
この手順は、gcloud
または 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 を使用してデータの暗号化を管理できます。
鍵バージョンを無効にしてから再度有効にする
次のトピックをご覧ください。