鍵のインポート

このトピックでは、新しい鍵バージョンとして Cloud Key Management Service に鍵をインポートする際のコンセプトについて説明します。詳しい手順については、鍵バージョンのインポートをご覧ください。

はじめに

オンプレミスまたは外部鍵マネージャーで作成した既存の暗号鍵を利用している可能性があります。アプリケーションをCloud de Confiance に移行する場合、または既存のCloud de Confiance アプリケーションに暗号サポートを追加する場合は、関連する鍵を Cloud KMS にインポートできます。

  • Cloud KMS のソフトウェア鍵にのみインポートできます。
  • 鍵マテリアルは転送中に保護をするためにラッピングされます。Google Cloud CLI を使用して鍵を自動的にラップすることも、鍵を手動でラップすることもできます。
  • Cloud de Confiance は、インポート ジョブのスコープ内でのみラッピング鍵にアクセスできます。

このトピックでは、鍵のインポートに関する制限事項と要件について詳細に説明し、鍵のインポートの仕組みについて概要を説明します。

制限事項と要件

このセクションでは、鍵を Cloud KMS にインポートできることを確認します。

サポートされている鍵の形式

  • 暗号化の対称鍵: インポートされた対称鍵は 32 バイトのバイナリデータである必要があり、エンコードはできません。 鍵が 16 進数または Base-64 でエンコードされている場合、インポートを試みる前にデコードする必要があります。
  • 署名用の対称鍵(MAC 鍵): インポートされた HMAC 署名鍵の長さは、使用する暗号ハッシュ関数の出力の長さと等しくする必要があります(たとえば、HMAC-SHA256 鍵の長さは 32 バイトでなければなりません)。また、エンコードする必要はありません。鍵が 16 進数または Base-64 でエンコードされている場合、インポートを試みる前にデコードする必要があります。
  • 暗号化または署名用の非対称鍵: インポートされた非対称鍵は、PKCS #8 形式であり、DER エンコードされている必要があります。PCKS #8 形式は、RFC 5208 で定義されています。DER エンコードは、国際電気通信連合 X.680 で定義されています。非対称鍵では、Cloud KMS でサポートされている長さとアルゴリズムの組み合わせのいずれかを使用する必要があります。

鍵の長さなど、鍵の一部の要素は鍵の作成後に変更できません。この場合、鍵を Cloud KMS にインポートすることはできません。

インポート用に鍵を確認して再フォーマットするには、インポート用の鍵のフォーマットをご覧ください。

サポートされる保護レベル

SOFTWARE 保護レベルの鍵にのみインポートできます。 Cloud External Key Manager 鍵にインポートすることはできません。

サポートされるラッピング鍵のサイズ

インポート ジョブを作成するときに、インポート ジョブのインポート メソッドを設定することで、 Cloud de Confiance に転送中の鍵を保護するために使用するラッピング鍵のサイズを制御できます。ラッピング鍵のデフォルトのサイズは 3072 です。特定の要件がある場合は、代わりに 4096 ビットの鍵を使用するようにインポート ジョブを構成できます。

鍵のラッピングに使用されるアルゴリズムや、インポート ジョブの構成を確認できます。

鍵のインポートの仕組み

このセクションでは、鍵をインポートした場合の動作について説明します。鍵の自動ラッピングを使用するか手動でラップするかによって、フローの一部が異なります。自動ラッピングを使用することをおすすめします。具体的な手順については、鍵バージョンをインポートするをご覧ください。インポートする前に鍵を手動でラッピングする方法については、Linux で OpenSSL を使用して鍵をラップするをご覧ください。

次の図は、自動鍵ラッピングを使用した鍵インポート プロセスを示しています。図で示されるフェーズは、このセクションで説明されています。

このセクションで説明するインポートのフロー

  1. 鍵をインポートする準備ができました。

    1. まず、最終的にインポート ジョブとインポートした鍵マテリアルを含むターゲット キーリングを作成します。この時点で、ターゲットキーに鍵バージョンは含まれていません。

    2. 次に、インポート ジョブを作成します。インポート ジョブは、インポートした鍵マテリアルのターゲット鍵リングと鍵を定義します。インポート ジョブでは、インポート メソッドも定義します。インポート メソッドはインポート リクエスト中に鍵マテリアルを保護するラッピング鍵の作成に使用されるアルゴリズムです。

      • 公開鍵は、クライアントにインポートされる鍵をラッピングするために使用されます。
      • 秘密鍵は Cloud de Confiance 内に保存され、 Cloud de Confiance プロジェクトに到達した後に鍵のラッピングを解除するために使用されます。

      このように分離すると、インポート ジョブの範囲外で鍵マテリアルのラッピングを解除できなくなります。

    3. 鍵は Google に送信する前に暗号でラッピングする必要があります。ほとんどのユーザーは、次のステップで説明するように、gcloud CLI を使用して、鍵を自動的にラッピング、送信、インポートします。鍵を手動でラッピングするコンプライアンス要件や規制要件がある場合は、現時点では鍵の手動ラッピングは可能です。ローカル システムで鍵を手動でラッピングするには、次の操作を実施します。

      1. OpenSSL を構成します。
      2. インポート ジョブごとにインポート ジョブに関連するラッピング鍵をダウンロードします。
      3. 鍵ごとに、複数の環境変数を設定し、鍵をラッピングします。
  2. インポート ジョブが期限切れになるまで、最大 3 日間、インポート リクエストを使用して 1 つ以上の鍵をインポートできます。次のインポート リクエスト中。

    1. 鍵が手動でラッピングされなかった場合、Google Cloud CLI によってインポート ジョブの公開鍵が Cloud de Confiance からローカル システムにダウンロードされ、その公開鍵とクライアントに関連付けられた秘密鍵を使用して、ローカル鍵マテリアルがラッピングされます。
    2. ラッピングされた鍵マテリアルは、 Cloud de Confianceプロジェクトに送信されます。
    3. 鍵マテリアルは、インポート ジョブの秘密鍵を使用してラッピング解除され、ターゲット鍵リング上のターゲット鍵の新しいバージョンとして挿入されます。 これはアトミック オペレーションです。
    4. 対称鍵の場合、インポートした鍵バージョンをメインの鍵バージョンに設定します。

インポート リクエストが正常に完了したら、インポートした鍵バージョンを使用して Cloud de Confiance内のデータを保護できます。

次のステップ