От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