データを暗号化、復号する

AO は、Google Distributed Cloud(GDC)のエアギャップ CLI を介して、gRPC クライアント経由で KMS に対して暗号化と復号のオペレーションを実行します。

始める前に

KMS オペレーションを実行する前に、Management API サーバーにアクセスして必要な権限を取得するように kubectl を構成します。

Management API サーバー アクセスを構成する

Management API サーバーにアクセスするように kubectl を構成します。

  1. まだ行っていない場合は、gdcloud コマンドライン インターフェース(CLI)を使用して、Management API サーバーの kubeconfig ファイルを取得します。
  2. MANAGEMENT_API_SERVER 環境変数を設定します。

    export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG
    

    PATH_TO_KUBECONFIG は、生成された kubeconfig ファイルのパスに置き換えます。

  3. まだ行っていない場合は、gdcloud CLI をダウンロード、インストール、構成します。これを行うには、gdcloud CLI の概要をご覧ください。

必要な権限

必要な権限を取得するには、組織の IAM 管理者に、プロジェクトの KMS デベロッパー(kms-developer)ロールの付与を依頼してください。

データの暗号化

データを暗号化するには、gdcloud kms keys encrypt コマンドを使用します。このコマンドは、AEAD 鍵を使用して指定された平文ファイルを暗号化し、名前付きの暗号テキスト ファイルに書き込みます。

  • データを暗号化するには、鍵の名前と次のものを渡します。

    gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
      --plaintext-file=PLAINTEXT_PATH \
      --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
      --ciphertext-file=CIPHERTEXT_PATH
    

    次の変数を置き換えます。

    • NAMESPACE: プロジェクトの Namespace(例: kms-test1)。
    • KEY_NAME: プレーンテキストの暗号化に使用される鍵の名前(例: key-1)。
    • PLAINTEXT_PATH: 暗号化する平文を含むファイルへのパス。
    • ADDITIONAL_AUTHENTICATED_DATA_FILE: 追加の認証済みデータ(AAD)を含むオプションのファイル。AAD は整合性チェックに使用され、混乱した代理攻撃からデータを保護します。AAD と平文のサイズ上限はそれぞれ 64 KB です。
    • CIPHERTEXT_PATH: 暗号化された平文を含むファイルへのパス。

    コマンドを実行すると、--ciphertext-file フラグで指定したファイルに、プレーン テキスト ファイルの暗号化された内容が含まれます。

データの復号

データを復号するには、gdcloud kms keys decrypt コマンドを使用します。このコマンドは、AEAD 鍵を使用して指定された暗号テキスト ファイルを復号し、名前付きの平文ファイルに書き込みます。

  • 暗号テキストを復号するには、鍵名と次のものを渡します。

    gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
     --ciphertext-file=CIPHERTEXT_PATH \
     --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
     --plaintext-file=PLAINTEXT_PATH
    

    次の変数を置き換えます。

    • NAMESPACE: プロジェクトの Namespace。
    • KEY_NAME: プレーンテキストの暗号化に使用された鍵の名前。
    • CIPHERTEXT_PATH: 復号するファイルのパス。
    • ADDITIONAL_AUTHENTICATED_DATA_FILE: 追加の認証済みデータ(AAD)を含むオプションのファイル。AAD は整合性チェックに使用され、混乱した代理攻撃からデータを保護します。AAD と平文のサイズ上限はそれぞれ 64 KB です。
    • PLAINTEXT_PATH: 復号された平文を含むファイルへのパス。

    コマンドを実行すると、--plaintext-file フラグで指定したファイルに復号されたデータが表示されます。