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)。但我无法随机删除,因为应用程序仍需要不受阻碍地运行。只需要一个密钥,除了轮盘赌,我无法想出一种方法来确定我拥有哪个密钥。

我可以验证:

[~/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

相关内容