- NAME
-
- gcloud beta iam service-accounts add-iam-policy-binding - add an IAM policy binding to an IAM service account
- SYNOPSIS
-
-
gcloud beta iam service-accounts add-iam-policy-bindingSERVICE_ACCOUNT--member=PRINCIPAL--role=ROLE[--condition=[KEY=VALUE, …] |--condition-from-file=PATH_TO_FILE] [GCLOUD_WIDE_FLAG …]
-
- DESCRIPTION
-
(BETA)Add an IAM policy binding to an IAM service account. A binding consists of at least one member, a role, and an optional condition. Adding a binding to a service account grants the specified member the specified role on the service account.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.
If the service account does not exist, this command returns a
PERMISSION_DENIEDerror. - 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@my-project.iam.gserviceaccount.com', run:
gcloud beta iam service-accounts add-iam-policy-binding my-iam-account@my-project.iam.gserviceaccount.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 beta 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@my-project.iam.gserviceaccount.com', run:
gcloud beta iam service-accounts add-iam-policy-binding my-iam-account@my-project.iam.gserviceaccount.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@my-project.iam.gserviceaccount.com', run:
gcloud beta iam service-accounts add-iam-policy-binding my-iam-account@my-project.iam.gserviceaccount.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.
- POSITIONAL ARGUMENTS
-
- ServiceAccount resource - The service account to which the IAM policy binding is
being added. Note that the user, group or service account in the --member flag
is being granted access to this service account. 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
projectattribute:- provide the argument
service_accounton the command line with a fully specified name; - provide the argument
--projecton the command line; - set the property
core/project.
This must be specified.
-
SERVICE_ACCOUNT - ID of the serviceAccount or fully qualified identifier for the serviceAccount.
To set the
service_accountattribute:- provide the argument
service_accounton the command line.
- provide the argument
- provide the argument
- ServiceAccount resource - The service account to which the IAM policy binding is
being added. Note that the user, group or service account in the --member flag
is being granted access to this service account. This represents a Cloud
resource. (NOTE) Some attributes are not given arguments in this group but can
be set in other ways.
- REQUIRED FLAGS
-
-
--member=PRINCIPAL - The principal to add the binding for. Should be of the form
user|group|serviceAccount:emailordomain:domain.Examples:
user:test-user@gmail.com,group:admins@example.com,serviceAccount:test123@example.domain.com, ordomain:example.domain.com.Some resources also accept 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 - Role name to assign to the principal. The role name is the complete path of a
predefined role, such as
roles/logging.viewer, or the role ID for a custom role, such asorganizations/{ORGANIZATION_ID}/roles/logging.viewer.
-
- OPTIONAL FLAGS
-
- At most one of these can be specified:
-
--condition=[KEY=VALUE,…] - A condition to include in the binding. When the condition is explicitly
specified as
None(--condition=None), a binding without a condition is added. When the condition is specified and is notNone,--rolecannot be a basic role. Basic roles areroles/editor,roles/owner, androles/viewer. For more on conditions, refer to the conditions overview guide: https://cloud.google.com/iam/docs/conditions-overviewWhen using the
--conditionflag, include the following key-value pairs:-
expression - (Required) Condition expression that evaluates to True or False. This uses a
subset of Common Expression Language syntax.
If the condition expression includes a comma, use a different delimiter to separate the key-value pairs. Specify the delimiter before listing the key-value pairs. For example, to specify a colon (
:) as the delimiter, do the following:--condition=^:^title=TITLE:expression=EXPRESSION. For more information, see https://cloud.google.com/sdk/gcloud/reference/topic/escaping . -
title - (Required) A short string describing the purpose of the expression.
-
description - (Optional) Additional description for the expression.
-
-
--condition-from-file=PATH_TO_FILE - Path to a local JSON or YAML file that defines the condition. To see available
fields, see the help for
--condition. Use a full or relative path to a local file containing the value of condition.
-
- At most one of these can be specified:
- GCLOUD WIDE FLAGS
- These flags are available to all commands:
--access-token-file,--account,--billing-project,--configuration,--flags-file,--flatten,--format,--help,--impersonate-service-account,--log-http,--project,--quiet,--trace-token,--user-output-enabled,--verbosity.Run
$ gcloud helpfor details. - API REFERENCE
- This command uses the
iam/v1API. The full documentation for this API can be found at: https://cloud.google.com/iam/ - NOTES
- This command is currently in beta and might change without notice. These
variants are also available:
gcloud iam service-accounts add-iam-policy-bindinggcloud alpha iam service-accounts add-iam-policy-binding
gcloud beta iam service-accounts add-iam-policy-binding
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License , and code samples are licensed under the Apache 2.0 License . For details, see the Google Developers Site Policies . Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-05-27 UTC.

