Вы не можете напрямую предоставить разрешение учетной записи службы, это просто не то, как работает Google Cloud IAM. Только роли назначаются учетным записям служб, пользователям или группам, которые, в свою очередь, обычно содержат набор разрешений.
Если вы хотите, чтобы роль содержала только одно разрешение или только интересующие вас разрешения, вы можете просмотреть , создающую пользовательскую роль , которая позволяет указать, какое разрешение ( s) вы хотите назначить роль вашего определения, чтобы ограничить доступ на более детальном уровне. А затем назначьте эту настраиваемую роль учетной записи службы:
Используя gcloud
CLI, вы можете создать настраиваемую роль с помощью gcloud iam roles create
, то есть:
gcloud iam roles create bucketViewer --project example-project-id-1 \
--title "Bucket viewer" --description "This role contains only the storage.buckets.get permission" \
--permissions storage.buckets.get
Это создаст пользовательскую роль с идентификатором bucketViewer
для идентификатора проекта example-project-id-1
, содержащую только разрешение storage.buckets.get
. Замените эти значения по желанию и соответственно.
После этого вы можете назначить эту пользовательскую роль также с помощью одной команды gcloud
, используя gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding example-project-id-1 \
--member='serviceAccount:test-proj1@example.domain.com' \
--role='projects/example-project-id-1/roles/bucketViewer'
Замените example-project-id-1
на идентификатор своего проекта, а test-proj1@example.domain.com
на фактическое имя учетной записи службы, которой вы хотите назначить роль.