Какие разрешения IAM мне нужны для служебного ключа, который может запускать «gcloud builds submit» и «gcloud run deploy»? - PullRequest
1 голос
/ 05 апреля 2020

Я пытаюсь определить абсолютный минимальный набор разрешений IAM, которые мне нужно назначить служебному ключу, который будет использоваться для запуска следующих команд:

gcloud builds submit --tag gcr.io/MYPROJECT/MYNAME
gcloud run deploy --allow-unauthenticated --platform=managed --image gcr.io/MYPROJECT/MYNAME ...

У меня было много из-за проблем с вычислением IAM, поэтому более подробные инструкции, которые каждый может дать мне, лучше!

Вот что я понял до сих пор (в итоге я получил гораздо больше открытых разрешений, чем хотел): https://simonwillison.net/2020/Jan/21/github-actions-cloud-run/#google -cloud-service-key

Я на самом деле запускаю эти команды внутри скрипта Python - соответствующий код здесь: https://github.com/simonw/datasette/blob/07e208cc6d9e901b87552c1be2854c220b3f9b6d/datasette/publish/cloudrun.py#L134 -L141

1 Ответ

1 голос
/ 05 апреля 2020

Я понимаю, что вы выполняете эти команды с учетной записью службы, и ваша цель - определить минимальный набор разрешений IAM, назначаемых этой учетной записи службы, чтобы ее можно было создавать и развертывать. Я собираюсь перечислить набор минимальных ролей IAM (не разрешений IAM)

Для запуска gcloud builds submit --tag gcr.io/MYPROJECT/MYNAME вам потребуется:

  • roles/cloudbuild.builds.editor для запуска сборки
  • roles/storage.admin в pu sh te image

Для запуска gcloud run deploy --allow-unauthenticated --platform=managed --image gcr.io/MYPROJECT/MYNAME ... вам необходимо:

  • roles/run.admin (для развертывания и разрешения allUsers для доступа к службе)
  • roles/iam.serviceAccountUser (потому что код будет выполняться под учетной записью serv ie, поэтому учетная запись службы, используемая для развертывания, должна также иметь возможность «действовать как» учетная запись службы времени выполнения) )
...