顧客管理の暗号鍵

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

このページでは、CMEK をユーザー管理ノートブックで使用する具体的なメリットと制限事項について説明します。また、CMEK を使用するように新しいユーザー管理のノートブック インスタンスを構成する方法についても説明します。

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

CMEK のメリット

一般に、CMEK は、データの暗号化に使用する鍵を完全に制御する必要がある場合によく利用されます。CMEK を使用すると、Cloud Key Management Service 内で鍵を管理できます。たとえば、Cloud KMS API を使用して、鍵のローテーションや無効化を行うことが可能です。

ユーザー管理のノートブック インスタンスを実行すると、Vertex AI Workbench によって管理される仮想マシン(VM)でインスタンスが実行されます。ユーザー管理のノートブック インスタンスで CMEK を有効にすると、Vertex AI Workbench では Google 管理の鍵ではなく、指定した鍵が VM のブートディスクのデータ暗号化に使用されます。

CMEK 鍵は、ユーザー管理のノートブック インスタンスに関連付けられたインスタンスの名前やリージョンなどのメタデータを暗号化しません。ユーザー管理のノートブック インスタンスに関連付けられたメタデータは、常に Google のデフォルトの暗号化メカニズムで暗号化されます。

CMEK の制限事項

レイテンシを短縮し、リソースが複数の障害発生ドメインにまたがるサービスに依存しないようにするため、リージョン ユーザー管理ノートブック インスタンスを同じロケーションにあるキーで保護することをおすすめします。

  • リージョン マネージド ノートブック インスタンスは、同じロケーションまたはグローバル ロケーションの鍵を使用して暗号化できます。たとえば、ゾーン us-west1-a 内のディスクのデータを暗号化するには、us-west1 または global の鍵を使用します。
  • グローバル インスタンスを暗号化するには、任意のロケーションの鍵を使用します。
  • ユーザー管理ノートブックに CMEK を構成しても、使用する他の Google Cloud プロダクトに CMEK が自動的に構成されることはありません。他の Google Cloud プロダクトで CMEK を使用してデータを暗号化するには、別途、構成を完了する必要があります。

ユーザー管理のノートブック インスタンスの CMEK を構成する

次のセクションでは、Cloud Key Management Service でキーリングと鍵を作成し、鍵に対する暗号化と復号の権限をサービス アカウントに付与して、CMEK を使用するユーザー管理のノートブック インスタンスを作成します。

始める前に

職掌分散に対応した設定の使用をおすすめします。ユーザー管理ノートブックに CMEK を構成するには、2 つの別々の Google Cloud プロジェクトを使用できます。

  • Cloud KMS プロジェクト: 暗号鍵を管理するためのプロジェクト
  • ユーザー管理ノートブック プロジェクト: ユーザー管理ノートブック インスタンスにアクセスし、ユースケースに必要な他の Google Cloud プロダクトを操作するためのプロジェクト

また、単一の Google Cloud プロジェクトを使用することもできます。その場合は、次のすべてのタスクで同じプロジェクトを使用します。

Cloud KMS プロジェクトを設定する

  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. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud KMS API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Cloud KMS API を有効にします。

    API を有効にする

ユーザー管理のノートブック プロジェクトを設定する

  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. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Notebooks API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Notebooks API を有効にします。

    API を有効にする

Google Cloud CLI を設定する

このページの一部の手順では gcloud CLI は必須となり、それ以外の手順ではオプションの手段になります。

Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

gcloud init

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

キーリングと鍵を作成する際は、次のことに注意してください。

  • キーリングのロケーションを選択する場合は、global またはユーザー管理のノートブック インスタンスが存在するロケーションを使用します。

  • キーリングと鍵は Cloud KMS プロジェクトで作成します。

キーリングと鍵を作成する方法については、対称暗号鍵の作成をご覧ください。

ユーザー管理ノートブックの権限を付与する

ユーザー管理ノートブック インスタンスに CMEK を使用するには、鍵を使用してデータの暗号化と復号を行う権限をユーザー管理のノートブック インスタンスに付与する必要があります。

使用するサービス アカウントを決める

ユーザー管理のノートブックは、サービス アカウントを使用してユーザー管理ノートブック インスタンスを実行します。このサービス アカウントは、デフォルトの Compute Engine サービス アカウント、またはインスタンスの作成時に指定したサービス アカウントのいずれかです。

サービス アカウントがデフォルトの Compute Engine サービス アカウントである場合は、次の手順でサービス アカウントのメールアドレスを検索します。

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動

  2. Compute Engine default service account という名前のプリンシパルを見つけます。

    このサービス アカウントのメールアドレスをメモします。これは、以下で説明する、鍵を使用したデータの暗号化と復号の権限を付与する手順で使用します。

サービス アカウントに権限を付与する

権限を付与するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

コンソール

  1. Google Cloud Console で、[暗号鍵] ページに移動します。

    [暗号鍵] に移動

  2. Cloud KMS プロジェクトを選択します。

  3. キーリングと鍵の作成で作成したキーリングの名前をクリックします。[キーリングの詳細] ページが開きます。

  4. キーリングと鍵を作成するで作成した鍵のチェックボックスをオンにします。鍵の名前が付いた情報パネルがまだ開いていない場合は、[情報パネルを表示] をクリックします。

  5. 情報パネルで [メンバーを追加] をクリックします。[KEY_NAME」にメンバーを追加します] ダイアログが開きます。このダイアログで、次の操作を行います。

    1. [新しいメンバー] フィールドに、インスタンスのサービス アカウントのメールアドレスを入力します。

    2. [ロールを選択] リストで [Cloud KMS] をクリックし、続いて [Cloud KMS 暗号鍵の暗号化 / 復号] ロールを選択します。

    3. [保存] をクリックします。

gcloud

次のコマンドを実行します。

gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring=KEY_RING_NAME \
    --location=REGION \
    --project=KMS_PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

次のように置き換えます。

  • KEY_NAME: キーリングと鍵の作成で作成した鍵の名前
  • KEY_RING_NAME: キーリングと鍵の作成で作成したキーリング
  • REGION: キーリングを作成したリージョン
  • KMS_PROJECT_ID: Cloud KMS プロジェクトの ID
  • SERVICE_ACCOUNT: インスタンスのサービス アカウントのメールアドレス

CMEK を使用してユーザー管理ノートブック インスタンスを作成する

鍵を使用してデータの暗号化と復号を行う権限をユーザー管理のノートブック インスタンスに付与したら、この鍵を使用してデータを暗号化するユーザー管理のノートブック インスタンスを作成できます。

次の例は、Google Cloud Console または gcloud CLI で鍵を使用してデータの暗号化と復号を行う方法を示しています。

Console

顧客管理の暗号鍵を使用してユーザー管理ノートブック インスタンスを作成するには、次の操作を行います。

  1. Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。または、notebook.new(https://notebook.new)にアクセスして、次のステップをスキップします。

    [ユーザー管理のノートブック] に移動

  2. [新しいノートブック] をクリックして、[カスタマイズ] を選択します。

  3. [ユーザー管理のノートブックの作成] ページの [詳細] セクションで、新しいインスタンスについて次の情報を入力します。

    • 名前: 新しいインスタンスの名前
    • リージョン: 鍵とキーリングが属するリージョン
    • ゾーン: 選択したリージョン内のゾーン
  4. [ディスク] セクションを選択します。

  5. 顧客管理の暗号鍵を使用するには、[暗号化] で [顧客管理の暗号鍵(CMEK)] を選択します。

  6. [顧客管理の暗号鍵を選択] をクリックします。

    • 使用する顧客管理の暗号鍵がリストに含まれている場合は、それを選択します。
    • 使用する顧客管理の暗号鍵がリストにない場合は、顧客管理の暗号鍵のリソース ID を入力します。顧客管理の暗号鍵のリソース ID は次のようになります。

        projects/NOTEBOOKS_PROJECT_NUMBER/locations/global/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
      

      次のように置き換えます。

  7. インスタンス作成ダイアログの残りの部分を入力して、[作成] をクリックします。

  8. Vertex AI Workbench は、指定されたプロパティに基づいてユーザー管理ノートブック インスタンスを作成し、自動的に開始します。インスタンスを使用する準備が整うと、Vertex AI Workbench で [JupyterLab を開く] リンクが有効になります。

gcloud

gcloud CLI を使用して、顧客管理の暗号鍵を使用したユーザー管理のノートブック インスタンスを作成するには、次のコマンドを実行します。この例では、n1-standard-1 マシンタイプと 100 GB の標準永続ブートディスクを使用してユーザー管理のノートブック インスタンスを作成することを前提としています。

gcloud notebooks instances create notebook-vm-cmek \
    --location=REGION \
    --vm-image-family=IMAGE_FAMILY \
    --vm-image-project=deeplearning-platform-release \
    --machine-type="n1-standard-1" \
    --boot-disk-type="PD_STANDARD" \
    --boot-disk-size=100 \
    --kms-key=KEY_NAME \
    --kms-project=KMS_PROJECT_ID \
    --kms-location=REGION \
    --kms-keyring=KEY_RING_NAME \
    --disk-encryption=CMEK \
    --metadata='proxy-mode=project_editors'

次のように置き換えます。

  • REGION: キーリングを作成したリージョンと、ユーザー管理のノートブック インスタンスを作成する場所。
  • IMAGE_FAMILY: ユーザー管理のノートブック インスタンスの作成に使用するイメージ ファミリー
  • KEY_NAME: キーリングと鍵の作成で作成した鍵の名前
  • KMS_PROJECT_ID: Cloud KMS プロジェクトの ID
  • KEY_RING_NAME: キーリングと鍵の作成で作成したキーリング

次のステップ