gcloud compute reservations add-iam-policy-binding

gcloud compute reservations add-iam-policy-binding - add IAM policy binding to a Google Compute Engine reservation
gcloud compute reservations add-iam-policy-binding (RESERVATION : --zone=ZONE) --member=MEMBER --role=ROLE [--condition=[KEY=VALUE,…]     | --condition-from-file=CONDITION_FROM_FILE] [GCLOUD_WIDE_FLAG]
Add an IAM policy binding to the IAM policy of a Google Compute Engine reservation. One binding consists of a member, a role, and an optional condition.
Reservation resource - The reservation for which to add IAM policy binding to. The arguments in this group can be used to specify the attributes of this 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 [reservation] 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.
ID of the reservation or fully qualified identifier for the reservation. This positional must be specified if any of the other arguments in this group are specified.
The name of the Google Compute Engine zone.
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.
Define the role of the member.
At most one of these may be specified:
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.
(Required) Expression of the condition which evaluates to True or False. This uses a subset of Common Expression Language syntax.
(Required) A short string describing the purpose of the expression.
(Optional) Additional description for the expression.

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

Path to a local JSON or YAML file that defines the condition. To see available fields, see the help for --condition.
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.

This command uses the compute/v1 API. The full documentation for this API can be found at: https://developers.google.com/compute/docs/reference/latest/
To add an IAM policy binding for the role of 'roles/compute.securityAdmin' for the user 'test-user@gmail.com' with reservation 'my-reservation' and zone 'ZONE', run:
gcloud compute reservations add-iam-policy-binding my-reservation --zone=ZONE --member='user:test-user@gmail.com' --role='roles/compute.securityAdmin'

To add an IAM policy binding which expires at the end of the year 2018 for the role of 'roles/compute.securityAdmin' and the user 'test-user@gmail.com' with reservation 'my-reservation' and zone 'ZONE', run:

gcloud compute reservations add-iam-policy-binding my-reservation --zone=ZONE --member='user:test-user@gmail.com' --role='roles/compute.securityAdmin' --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.

These variants are also available:
gcloud alpha compute reservations add-iam-policy-binding
gcloud beta compute reservations add-iam-policy-binding