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

このドキュメントでは、gdcloud CLI で鍵管理システム(KMS)鍵を使用してデータを暗号化および復号する方法について説明します。

このドキュメントは、GDC プロジェクト内で暗号オペレーションを実行する必要があるアプリケーション オペレーター グループのユーザーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。

始める前に

データを暗号化または復号する前に、必要な権限を取得して環境を準備する必要があります。

IAM ロールをリクエストする

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

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