В чем разница между учетной записью службы и агентом службы в GCP

#google-cloud-platform #service-accounts

# #google-cloud-platform #сервис-учетные записи

Вопрос:

Скажем, у меня есть такой случай, когда

  • Мне нужно выполнить некоторый тест с потоком данных
  • внутри этого задания потока данных мне нужно получить доступ к корзине gcs и сохранить там свои выходные данные.
  • Мне нужно будет запустить задание потока данных с моим собственным SA вместо SA по умолчанию.

Я создал учетную запись службы Google для выполнения задания потока данных. Но после того, как я включил API потока данных. В итоге передо мной 2 SA.

  • агент учетной записи службы -> 123456789@dataflow.gserviceaccount.com
  • учетная запись службы выполнения заданий потока данных -> dataflow-job-runner@MY-PROJECT-ID.iam.gserviceaccount.com

Я действительно смутился, увидев, что говорится в официальном документе

Некоторые облачные службы Google имеют учетные записи служб, управляемые Google, которые позволяют службам получать доступ к вашим ресурсам. Эти учетные записи служб иногда называют агентами службы.

Если я создам задание потока данных для запуска с dataflow-job-runner@MY-PROJECT-ID.iam.gserviceaccount.com SA, я полагаю, мне нужно будет предоставить roles/storage.objectAdmin для него.

Вопрос в том

  • Нужно ли мне предоставлять какие-либо разрешения агенту учетной записи службы?
  • Что на самом деле делает агент учетной записи службы, что он должен для доступа к любому ресурсу?

Ответ №1:

Для некоторых облачных сервисов Google, таких как Cloud Dataflow, требуются два набора разрешений.

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

Агент службы применяется к среде выполнения службы. Например, когда вы запускаете задание в Cloud Dataflow, Cloud Dataflow должен запускать виртуальные машины для запуска вашей программы. Ваша программа не запускает виртуальные машины, служба. Поэтому службе требуется собственный набор разрешений. Для этого и нужен агент службы.

При использовании двух разных учетных записей службы достигается разделение привилегий.

Комментарии:

1. Это хорошо объясненный ответ. Именно то, что я ищу! Спасибо!