#java #google-cloud-platform #google-secret-manager
# #java #google-cloud-platform #google-secret-manager
Вопрос:
Я использую GCP Secret manager для хранения паролей с использованием клиентской библиотеки google-cloud-secretmanager (Java). Клиентская библиотека ожидает указания пути к файлу ключа учетной записи службы (json) для проекта gcp в переменной среды. Я могу сделать это для одного проекта, но когда я пытаюсь получить доступ к секретному менеджеру нескольких проектов GCP, я не знаю, как установить ключи для разных проектов в переменной среды. Нужна помощь в настройке ключей в среде или есть способ установить ее с помощью Java-кода.
Я использую эту зависимость maven
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-secretmanager</artifactId>
</dependency>
https://cloud.google.com/secret-manager/docs/reference/libraries
Заранее спасибо.
Ответ №1:
Как и большинство облачных сервисов Google, Google Secret Manager поддерживает межпроектные разрешения. Вы можете предоставить своей учетной записи службы доступ к секретам в других проектах, применив к учетной записи службы разрешение IAM. Даже если учетная запись службы находится в project-a
, ей все равно можно предоставить разрешение на доступ к секретным секретам менеджера в project-b
:
gcloud secrets add-iam-policy-binding "my-secret"
--project "project-b"
--member "serviceAccount:my-service-account@project-a.iam.gserviceaccount.com"
Кроме того, клиентской библиотеке не требуется путь к ключу учетной записи службы JSON. Он принимает один, но вы можете обеспечить аутентификацию по нескольким путям, включая учетные данные приложения по умолчанию (предпочтительно).
Комментарии:
1. Спасибо. Могу ли я использовать тот же ключ, который я уже сгенерировал, для доступа ко всем проектам, применяя разрешения IAM?
2. Я добавил адрес электронной почты учетной записи службы в новый проект и предоставил доступ. Это сработало. Спасибо.