gcloud iam service-accounts add-iam-policy-binding

NAME
gcloud iam service-accounts add-iam-policy-binding - add an IAM policy binding to an IAM service account
SYNOPSIS
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member=MEMBER --role=ROLE [--condition=[KEY=VALUE,…]     | --condition-from-file=CONDITION_FROM_FILE] [GCLOUD_WIDE_FLAG]
DESCRIPTION
Add an IAM policy binding to an IAM service account. A binding consists of at least one member, a role, and an optional condition.

When managing IAM roles, you can treat a service account either as a resource or as an identity. This command adds an IAM policy binding to a service account resource. There are other gcloud commands to manage IAM policies for other types of resources. For example, to manage IAM policies on a project, use the $ gcloud projects commands.

POSITIONAL ARGUMENTS
ServiceAccount resource - The Service Account to which to add the IAM policy binding. This represents a Cloud resource. (NOTE) Some attributes are not given arguments in this group but can be set in other ways. To set the [project] attribute: provide the argument [service_account] on the command line with a fully specified name; set the property [core/project]; provide the argument [--project] on the command line. This must be specified.
SERVICE_ACCOUNT
ID of the serviceAccount or fully qualified identifier for the serviceAccount.
REQUIRED FLAGS
--member=MEMBER
The member to add the binding for. Should be of the form user|group|serviceAccount:email or domain:domain.

Examples: user:test-user@gmail.com, group:admins@example.com, serviceAccount:test123@example.domain.com, or domain:example.domain.com.

Can also be one of the following special values:

  • allUsers - Special identifier that represents anyone who is on the internet, with or without a Google account.
  • allAuthenticatedUsers - Special identifier that represents anyone who is authenticated with a Google account or a service account.
--role=ROLE
Define the role of the member.
OPTIONAL FLAGS
At most one of these may be specified:
--condition=[KEY=VALUE,…]
The condition of the binding to be added. When the condition is explicitly specified as None (--condition=None), a binding without a condition is added. When the condition is specified and is not None, --role cannot be a primitive role. Primitive roles are roles/editor, roles/owner, and roles/viewer.
expression
(Required) Expression of the condition which evaluates to True or False. This uses a subset of Common Expression Language syntax.
title
(Required) A short string describing the purpose of the expression.
description
(Optional) Additional description for the expression.

NOTE: An unsatisfied condition will not allow access via this binding.

--condition-from-file=CONDITION_FROM_FILE
Path to a local JSON or YAML file that defines the condition. To see available fields, see the help for --condition.
GCLOUD WIDE FLAGS
These flags are available to all commands: --account, --billing-project, --configuration, --flags-file, --flatten, --format, --help, --impersonate-service-account, --log-http, --project, --quiet, --trace-token, --user-output-enabled, --verbosity.

Run $ gcloud help for details.

API REFERENCE
This command uses the iam/v1 API. The full documentation for this API can be found at: https://cloud.google.com/iam/
EXAMPLES
To add an IAM policy binding for the role of 'roles/editor' for the user 'test-user@gmail.com' on a service account with identifier 'my-iam-account@somedomain.com', run:
gcloud iam service-accounts add-iam-policy-binding  my-iam-account@somedomain.com  --member='user:test-user@gmail.com' --role='roles/editor'

To add an IAM policy binding for the role of 'roles/editor' to the service account 'test-proj1@example.domain.com', run:

gcloud iam service-accounts add-iam-policy-binding  test-proj1@example.domain.com  --member='serviceAccount:test-proj1@example.domain.com'  --role='roles/editor'

To add an IAM policy binding for the role of 'roles/editor' for all authenticated users on a service account with identifier 'my-iam-account@somedomain.com', run:

gcloud iam service-accounts add-iam-policy-binding  my-iam-account@somedomain.com --member='allAuthenticatedUsers'  --role='roles/editor'

To add an IAM policy binding which expires at the end of the year 2018 for the role of 'roles/iam.serviceAccountAdmin' and the user 'test-user@gmail.com' on a service account with identifier 'my-iam-account@somedomain.com', run:

gcloud iam service-accounts add-iam-policy-binding  my-iam-account@somedomain.com  --member='user:test-user@gmail.com'  --role='roles/iam.serviceAccountAdmin'  --condition='expression=request.time <
   timestamp("2019-01-01T00:00:00Z"),title=expires_end_of_2018,descrip\
  tion=Expires at midnight on 2018-12-31'

See https://cloud.google.com/iam/docs/managing-policies for details of policy role and member types.

NOTES
These variants are also available:
gcloud alpha iam service-accounts add-iam-policy-binding
gcloud beta iam service-accounts add-iam-policy-binding