Method: projects.serviceAccounts.setIamPolicy

Sets the Cloud IAM access control policy for a ServiceAccount.

Note: Service accounts are both resources and identities. This method treats the service account as a resource. Use it to grant members access to the service account, such as when they need to impersonate it.

This method does not grant the service account access to other resources, such as projects. To grant a service account access to resources, include the service account in the Cloud IAM policy for the desired resource, then call the appropriate setIamPolicy method on the target resource. For example, to grant a service account access to a project, call the projects.setIamPolicy method.

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



REQUIRED: The resource for which the policy is being specified. See the operation documentation for the appropriate value for this field.

Request body

The request body contains data with the following structure:

JSON representation
  "policy": {
    object (Policy)
  "updateMask": string

object (Policy)

REQUIRED: The complete policy to be applied to the resource. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them.


string (FieldMask format)

OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: paths: "bindings, etag" This field is only used by Cloud IAM.

A comma-separated list of fully qualified names of fields. Example: "user.displayName,photo".

Response body

If successful, the response body contains an instance of Policy.

Authorization Scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.