Как предоставить указанное c разрешение учетной записи службы Cloud IAM с помощью интерфейса командной строки gcloud? - PullRequest
0 голосов
/ 15 января 2020

Я знаю, что могу сделать это через пользовательский интерфейс (Cloud Console), и что я также могу назначить роль. Хотя, как мне легко предоставить одно разрешение?

Например, я загружал изображение в Реестр контейнеров Google с помощью только что созданной учетной записи службы, и я получил сообщение о том, что эта учетная запись службы не имеет разрешение storage.buckets.get. Какой самый простой способ предоставить это специфицированное c разрешение с помощью CLI?

1 Ответ

2 голосов
/ 15 января 2020

Вы не можете напрямую предоставить разрешение учетной записи службы, это просто не то, как работает Google Cloud IAM. Только роли назначаются учетным записям служб, пользователям или группам, которые, в свою очередь, обычно содержат набор разрешений.

Если вы хотите, чтобы роль содержала только одно разрешение или только интересующие вас разрешения, вы можете просмотреть , создающую пользовательскую роль , которая позволяет указать, какое разрешение ( s) вы хотите назначить роль вашего определения, чтобы ограничить доступ на более детальном уровне. А затем назначьте эту настраиваемую роль учетной записи службы:

  1. Используя 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. Замените эти значения по желанию и соответственно.

  2. После этого вы можете назначить эту пользовательскую роль также с помощью одной команды 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 на фактическое имя учетной записи службы, которой вы хотите назначить роль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...