Google Cloud - P12 からキー ID を判別する方法

Google Cloud - P12 からキー ID を判別する方法

からhttps://console.cloud.google.com/iam-admin/serviceaccounts?project=[id]適切な権限を持つユーザーは、サービス アカウント キーをプロビジョニングできます。現在では、JSON 形式で渡されますが、以前は P12 (その JSON は、メタデータを含む、base64 化された P12 のみです) を受け取るオプションが提供されていました。保守する必要がある古いプロジェクトを引き継いでおり、認証に使用する 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 呼び出し、文書化されていないコマンド、または私が見逃している明らかな何かがあるのでしょうか?

答え1

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

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

関連情報