etag
etag
is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag
in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag
is returned in the response to getIamPolicy
, and systems are expected to put that etag in the request to setIamPolicy
to ensure that their change will be applied to the same version of the policy. Important: If you use IAM Conditions, you must include the etag
field whenever you call setIamPolicy
. If you omit this field, then IAM allows you to overwrite a version 3
policy with a version 1
policy, and all of the conditions in the version 3
policy are lost.