データに署名し、検証する

AO は、gRPC クライアントを介して KMS にエアギャップされた Google Distributed Cloud(GDC)を介して署名と検証のオペレーションを実行します。

始める前に

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 asymmetric-sign コマンドを使用します。このコマンドは、Signing 鍵を使用して入力ファイルのデジタル署名を作成し、Base64 でエンコードされた署名を保存します。

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

    gdcloud kms keys asymmetric-sign \
    namespaces/NAMESPACE/signingKeys/KEY_NAME \
    --input-file=INPUT_PATH \
    --signature-file=SIGNATURE_FILE
    

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

    • NAMESPACE: プロジェクトの Namespace(例: kms-test1)。
    • KEY_NAME: 署名に使用する鍵の名前(例: key-1)。
    • INPUT_PATH: 署名する入力ファイルのパス。
    • SIGNATURE_FILE: base64 エンコードされた署名を保存する出力ファイルのパス。

    コマンドを実行すると、--signature-file フラグで指定した出力ファイルに、base64 でエンコードされた署名が含まれます。

データを確認する

データを署名したら、gdcloud kms keys asymmetric-verify コマンドを使用して base64 デジタル署名を確認します。このコマンドは、gdcloud kms keys asymmetric-sign コマンドの実行後に受け取った Base64 エンコードのデジタル署名が有効かどうかを確認します。

  • 署名を検証するには、署名ファイルと次のものを渡します。

    gdcloud kms keys asymmetric-verify \
    namespaces/NAMESPACE/signingKeys/KEY_NAME \
      --input-file=INPUT_PATH \
      --signature-file=SIGNATURE_FILE
    

    コマンドを実行すると、成功した場合は Verification OK という出力が表示されます。成功しなかった場合は、失敗の出力 Verification Failure が表示されます。