Google Cloud-P12からキーIDを特定する方法は?

Aug 18 2020

から https://console.cloud.google.com/iam-admin/serviceaccounts?project=[id]、適切な権限を持つユーザーは、サービスアカウントキーをプロビジョニングできます。現在、彼らはそれをJSON形式であなたに渡しますが、彼らはあなたにP12を受け取るオプションを提供していました(そのうちのJSONはメタデータ付きのP12 base64です)。維持するために古いプロジェクトを継承しており、認証用のP12があります。

ただし、特定のサービスアカウントには複数のキーIDがリストされています。それらをすべてローテーションして、新しくプロビジョニングされたキーを除くすべてを削除したいと思います。すでに最大値(10)に達しているため、新しいものを作成できません。しかし、アプリケーションはまだ妨げられずに実行する必要があるため、ランダムに削除することはできません。必要なのは1つだけで、ルーレットがなければ、自分が持っているキーを判別する方法がわかりません。

私は認証することができます:

[~/scratch]$ gcloud auth activate-service-account [email protected] --key-file=x.p12 --prompt-for-password
Password:
WARNING: .p12 service account keys are not recomended unless it is necessary for backwards compatability. Please switch to a newer .json service account key for this account.
Activated service account credentials for: [[email protected]]

次に、コマンドを実行します。しかし、Gcloudを介して、またはトリックを介して、Googleに自分が持っているキーを教えてもらう方法を見つけることができません。たくさんのgcloudコマンドを試しました。GCPロギング、ストレートAPI呼び出し、文書化されていないコマンド、または私が見逃した明らかなものに何かありますか?

回答

Lacek Aug 18 2020 at 18:54

キーIDは、付随する証明書のSHA1フィンガープリントです。次のコマンドを使用して、pkcs12ファイルからSHA1フィンガープリントを抽出できます。

openssl pkcs12 -in /your/pkcs12/file.p12 -nodes | openssl x509 -noout -fingerprint