Google Cloud — как определить идентификатор ключа из P12?

Google Cloud — как определить идентификатор ключа из P12?

Отhttps://console.cloud.google.com/iam-admin/serviceaccounts?project=[id], пользователь с соответствующими разрешениями может предоставить ключ учетной записи службы. В настоящее время они передают его вам в формате JSON, но раньше они давали вам возможность получить P12 (из которых JSON — это просто P12 base64 с метаданными). Мне достался старый проект для поддержки, и у меня есть P12 для аутентификации.

Однако для данной учетной записи службы указано несколько идентификаторов ключей. Я хотел бы поменять их все и удалить все, кроме нового предоставленного ключа. Я не могу создать новый, потому что уже достигнут максимум (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

Ключевой идентификатор — это отпечаток SHA1 прилагаемого сертификата. Вы можете извлечь отпечаток SHA1 из файла pkcs12 с помощью следующей команды:

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

Связанный контент