Cloud HSM

このトピックでは、Cloud HSM の概要と、HSM で保護された暗号鍵を Cloud Key Management Service で作成および使用する方法を説明します。

Cloud HSM とは

Cloud HSM は、FIPS 140-2 レベル 3 認定 HSM のクラスタで暗号鍵のホスティングや暗号化オペレーションを実行できるようにする、クラウドでホストされたハードウェア セキュリティ モジュール(HSM)サービスです。HSM クラスタは Google によって管理されるため、クラスタリング、スケーリング、パッチ適用などについて心配する必要はありません。Cloud HSM は Cloud KMS をフロントエンドとして使用するため、Cloud KMS によって提供されるすべての利便性と機能を活用できます。

クラウド HSM は Cavium V1 と V2 の認証形式をサポートしています。クラウド HSM 鍵の証明と検証を行うことができます。

始める前に

  • プロジェクトの課金がまだ有効になっていない場合は、有効にします。

    課金を有効にする

鍵リングの作成

鍵を作成するときは、その鍵を指定された Google Cloud ロケーションのキーリングに追加します。キーリングは新しく作成するか、既存のものを使用できます。ここでは、キーリングを新規作成して、新しい鍵をそこに追加します。

Cloud HSM をサポートする Google Cloud ロケーションで、hsm-ring という名前のキーリングを作成します。

コンソール

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

  2. [鍵リングを作成] をクリックします。

  3. [キーリング名] フィールドに hsm-ring と入力します。

  4. [ロケーション] プルダウンで、Cloud HSM がサポートされているリージョンを 1 つ選択します。

  5. [作成] をクリック

コマンドライン

hsm-ring という名前の新しいキーリングを、Cloud HSM がサポートされているリージョンのいずれかに作成します。

    gcloud kms keyrings create hsm-ring \
      --location location
    

鍵の作成

指定したキーリングとロケーションに Cloud HSM 鍵を作成する手順は次のとおりです。

コンソール

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

  2. hsm-ring という名前の鍵リングをクリックします。

  3. [鍵を作成] をクリックします。

  4. [鍵名] フィールドに hsm-key と入力します。

  5. [目的] プルダウンをクリックし、[対称暗号化 / 復号] を選択します。 鍵の目的の詳細については、鍵の目的をご覧ください。

  6. [保護レベル] で [HSM] を選択します。保護レベルの詳細については、保護レベルをご覧ください。

  7. (省略可)鍵にラベルを追加する場合は、[ラベル] フィールドで [ラベルを追加] をクリックします。

  8. [作成] をクリック

コマンドライン

hsm-ring 鍵リングに新しい鍵 hsm-key を作成します。

  • [--purpose] を [encryption] に設定します。鍵の目的の詳細については、鍵の目的をご覧ください。
  • [--protection-level] を [hsm] に設定します。保護レベルの詳細については、保護レベルをご覧ください。
    gcloud kms keys create hsm-key \
      --location location \
      --keyring hsm-ring \
      --purpose encryption \
      --protection-level hsm
    

データの暗号化

鍵が作成されたので、その鍵を使用してテキストまたはバイナリのコンテンツを暗号化できます。 暗号化するテキストを生成します。

    echo "Some text to be encrypted" > ~/my-secret-file
    

平文を my-secret-file.enc という名前のファイルに暗号化します。

    gcloud kms encrypt \
      --location location \
      --keyring hsm-ring \
      --key hsm-key \
      --plaintext-file ~/my-secret-file \
      --ciphertext-file ~/my-secret-file.enc
    

暗号テキストの復号

暗号化されたコンテンツを復号するには、コンテンツの暗号化に使用したものと同じ鍵を使用する必要があります。次のコマンドを発行して、暗号化されたファイル my-secret-file.enc を復号します。

    gcloud kms decrypt \
      --location location \
      --keyring hsm-ring \
      --key hsm-key \
      --ciphertext-file ~/my-secret-file.enc \
      --plaintext-file ~/my-secret-file.dec
    

my-secret-file.dec と元の平文ファイル my-secret-file のコンテンツが同じであることがわかります。

    cat ~/my-secret-file.dec
    
    Some text to be encrypted
    

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには:

クリーンアップするには、このトピックで使用されている鍵バージョンを破棄します。

自分の鍵で使用できるバージョンを一覧表示します。

    gcloud kms keys versions list \
      --location location \
      --keyring hsm-ring \
      --key hsm-key
    

バージョンを破棄するには、次のコマンドを実行します。[VERSION_NUMBER] は破棄するバージョン番号に置き換えます。

    gcloud kms keys versions destroy \
      key-version \
      --location location \
      --keyring hsm-ring \
      --key hsm-key
    

次のステップ

既知の制限事項

  • 追加認証データを含む、ユーザー指定の平文と暗号テキストのブロックサイズは、(Cloud KMS ソフトウェア鍵が 64 KiB であるのに対し)16,384 バイトに制限されています。

  • Cloud HSM は特定のリージョンでのみ使用できます。詳しくは、Cloud HSM がサポートされているリージョンをご覧ください。

  • Cloud HSM 鍵を他の Google Cloud サービスの顧客管理暗号鍵(CMEK)の統合で使用する場合、サービスで使用するロケーションは Cloud HSM 鍵のロケーションと完全に一致する必要があります。 これは、リージョン、デュアルリージョン、マルチリージョンのロケーションに適用されます。

    CMEK 統合の詳細については、保存時の暗号化の関連セクションをご覧ください。

  • 現在、Cloud HSM に保管されている鍵のオペレーションでは、Cloud KMS ソフトウェア鍵を使用する場合と比較して、レイテンシが大幅に増加する可能性があります。

エラーが発生した場合

問題が発生した場合は、サポートでフィードバック オプションをご覧ください。