Назад | Перейти на главную страницу

Как изменить существующую область доступа учетной записи службы Google Cloud Platform?

У меня есть служебная учетная запись, назначенная моим экземплярам GCE и указанная как активная, что я могу проверить, запустив gcloud auth list на любом из экземпляров. У учетной записи службы в настоящее время есть доступ Google Cloud API к некоторым службам. Я хочу обновить этот доступ, чтобы учетная запись службы могла читать информацию о зоне / наборе записей из Google Cloud DNS.

Я просмотрел документацию по учетным записям служб и редактировал их доступ, а также пытался изменить разрешения учетной записи службы в GCP, но я не нашел прямого способа добавить доступ к Google Cloud DNS специально или Google Cloud Networking, который был бы включая DNS. Разрешения учетной записи службы могут быть установлены как моя собственная учетная запись пользователя и назначены роль владельца / редактора, но я бы предпочел предоставить только дополнительный доступ, который потребуется учетной записи службы для Google Cloud DNS.

Любая помощь или понимание были бы очень признательны, спасибо!

Я считаю, что со временем вы сможете это сделать, используя разрешения IAM. На данный момент я не вижу возможности добавить роли Cloud DNS в Консоль IAM. Чтобы авторизовать запросы к Cloud DNS, вы должны использовать одну из областей, описанных в Эта статья.

т.е.

https://www.googleapis.com/auth/ndev.clouddns.readwrite
https://cloud.google.com/dns/api/authorization

Если вы используете учетная запись службы по умолчанию, область должна быть определена во время создания виртуальной машины во флаге области.

т.е.

gcloud compute --project "Myproject" instances create "instance-8" --zone "us-central1-f" --machine-type "n1-standard-1" --network "default" --maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/devstorage.full_control","https://www.googleapis.com/auth/ndev.clouddns.readwrite" --image "/debian-cloud/debian-8-jessie-v20161020" --boot-disk-size "10" --boot-disk-type "pd-standard" --boot-disk-device-name "instance-8"

Если вы связали виртуальную машину с учетной записью службы не по умолчанию во время ее создания, вы можете добавить Редактор или владелец разрешения для этой учетной записи в консоли IAM. Тем не менее, это может обеспечить более широкий охват, чем тот, который вы ищете.

  1. В консоли Google перейдите в раздел «IAM и администратор».
  2. В левой навигационной панели нажмите «IAM».
  3. Найдите свою учетную запись службы в списке справа.
  4. Щелкните раскрывающийся список в столбце «Роль (и)», чтобы выбрать роль для учетной записи службы.

На этой странице описаны роли IAM

У меня возникли проблемы с доступом к Storage API, поэтому я понял, что проблема связана с областями. Проведя небольшое исследование, я нашел, где это изменить.

Вы должны отредактировать «область действия» для текущей «учетной записи службы», она была установлена ​​при создании виртуальной машины, и значение по умолчанию довольно ограничительное:

  1. Перейти к экземплярам Compute Engine / ВМ
  2. Найдите свою виртуальную машину и выберите ее (флажок)
  3. Убедитесь, что он остановлен (в противном случае нажмите Стоп)
  4. Нажмите на его имя
  5. Нажмите "Изменить"
  6. Прокрутите вниз, пока не найдете «Учетная запись службы».
  7. В нем должно быть написано "Область по умолчанию", измените его на "Разрешить полный доступ ко всем облачным API".

Это оно!