Uma política de gerenciamento de identidade e acesso (IAM), que especifica controles de acesso para recursos do Google Cloud.
Uma Policy é uma coleção de bindings . Uma binding vincula um ou mais members , ou principais, a uma única role . Os principais podem ser contas de usuário, contas de serviço, grupos do Google e domínios (como o G Suite). Uma role é uma lista nomeada de permissões; cada role pode ser uma função predefinida do IAM ou uma função personalizada criada pelo usuário.
Para alguns tipos de recursos do Google Cloud, uma binding também pode especificar uma condition , que é uma expressão lógica que permite acesso a um recurso somente se a expressão for avaliada como true . Uma condição pode adicionar restrições com base nos atributos da solicitação, do recurso ou de ambos. Para saber quais recursos oferecem suporte a condições em suas políticas do IAM, consulte a documentação do IAM .
Os valores válidos são 0 , 1 e 3 Solicitações que especificam um valor inválido são rejeitadas.
Qualquer operação que afete vinculações de funções condicionais deve especificar a versão 3 Este requisito se aplica às seguintes operações:
Obtendo uma política que inclui uma vinculação de função condicional
Adicionando uma vinculação de função condicional a uma política
Alterando uma vinculação de função condicional em uma política
Removendo qualquer vinculação de função, com ou sem condição, de uma política que inclui condições
Importante: Se você usar as Condições do IAM, deverá incluir o campo etag sempre que chamar setIamPolicy . Se você omitir esse campo, o IAM permitirá que você substitua uma política da versão 3 por uma política da versão 1 , e todas as condições da política da versão 3 serão perdidas.
Se uma política não incluir nenhuma condição, as operações nessa política poderão especificar qualquer versão válida ou deixar o campo indefinido.
Para saber quais recursos oferecem suporte a condições em suas políticas do IAM, consulte a documentação do IAM .
Associa uma lista de members , ou principais, a uma role . Opcionalmente, pode especificar uma condition que determina como e quando as bindings são aplicadas. Cada uma das bindings deve conter pelo menos um principal.
As bindings em uma Policy podem se referir a até 1.500 entidades principais; até 250 dessas entidades principais podem ser grupos do Google. Cada ocorrência de uma entidade principal conta para esses limites. Por exemplo, se as bindings atribuírem 50 funções diferentes a user:alice@example.com e a nenhuma outra entidade principal, você poderá adicionar outras 1.450 entidades principais às bindings na Policy .
etag é usada para controle de concorrência otimista como forma de ajudar a evitar que atualizações simultâneas de uma política se sobrescrevam. É altamente recomendável que os sistemas utilizem a etag no ciclo de leitura-modificação-gravação para realizar atualizações de políticas, a fim de evitar condições de corrida: uma etag é retornada na resposta a getIamPolicy , e espera-se que os sistemas insiram essa etag na solicitação a setIamPolicy para garantir que a alteração seja aplicada à mesma versão da política.
Importante: Se você usar as Condições do IAM, deverá incluir o campo etag sempre que chamar setIamPolicy . Se você omitir esse campo, o IAM permitirá que você substitua uma política da versão 3 por uma política da versão 1 , e todas as condições da política da versão 3 serão perdidas.
Função atribuída à lista de members ou principais. Por exemplo, roles/viewer , roles/editor ou roles/owner .
Para uma visão geral das funções e permissões do IAM, consulte a documentação do IAM . Para uma lista das funções predefinidas disponíveis, consulte aqui .
members[]
string
Especifica os principais que solicitam acesso a um recurso do Google Cloud. members podem ter os seguintes valores:
allUsers : Um identificador especial que representa qualquer pessoa que esteja na internet; com ou sem uma conta do Google.
allAuthenticatedUsers : um identificador especial que representa qualquer pessoa autenticada com uma conta do Google ou uma conta de serviço. Não inclui identidades provenientes de provedores de identidade externos (IdPs) por meio de federação de identidades.
user:{emailid} : Um endereço de e-mail que representa uma conta específica do Google. Por exemplo, alice@example.com .
serviceAccount:{emailid} : um endereço de e-mail que representa uma conta de serviço do Google. Por exemplo, my-other-app@appspot.gserviceaccount.com .
serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}] : Um identificador para uma conta de serviço do Kubernetes . Por exemplo, my-project.svc.id.goog[my-namespace/my-kubernetes-sa] .
group:{emailid} : Um endereço de e-mail que representa um grupo do Google. Por exemplo, admins@example.com .
domain:{domain} : o domínio do G Suite (primário) que representa todos os usuários desse domínio. Por exemplo, google.com ou example.com .
principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value} : uma única identidade em um pool de identidades da força de trabalho.
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{groupId} : todas as identidades da força de trabalho em um grupo.
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value} : todas as identidades da força de trabalho com um valor de atributo específico.
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/* : Todas as identidades em um pool de identidades da força de trabalho.
principal://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value} : Uma única identidade em um pool de identidades de carga de trabalho.
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/group/{groupId} : Um grupo de pools de identidade de carga de trabalho.
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value} : todas as identidades em um pool de identidades de carga de trabalho com um determinado atributo.
principalSet://iam.googleapis.com/projects/{projectNumber}/locations/global/workloadIdentityPools/{pool_id}/* : Todas as identidades em um pool de identidades de carga de trabalho.
deleted:user:{emailid}?uid={uniqueid} : Um endereço de e-mail (mais um identificador exclusivo) representando um usuário que foi excluído recentemente. Por exemplo, alice@example.com?uid=123456789012345678901 . Se o usuário for recuperado, este valor será revertido para user:{emailid} e o usuário recuperado manterá a função na vinculação.
deleted:serviceAccount:{emailid}?uid={uniqueid} : Um endereço de e-mail (mais um identificador exclusivo) representando uma conta de serviço que foi excluída recentemente. Por exemplo, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901 . Se a conta de serviço for recuperada, este valor será revertido para serviceAccount:{emailid} e a conta de serviço recuperada manterá a função na vinculação.
deleted:group:{emailid}?uid={uniqueid} : Um endereço de e-mail (mais um identificador exclusivo) representando um grupo do Google que foi excluído recentemente. Por exemplo, admins@example.com?uid=123456789012345678901 . Se o grupo for recuperado, este valor será revertido para group:{emailid} e o grupo recuperado manterá a função na vinculação.
deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value} : Identidade única excluída em um pool de identidades da força de trabalho. Por exemplo, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value .
Se a condição for avaliada como true , essa vinculação será aplicada à solicitação atual.
Se a condição for avaliada como false , essa vinculação não se aplica à solicitação atual. No entanto, uma vinculação de função diferente pode conceder a mesma função a um ou mais dos principais nessa vinculação.
Para saber quais recursos oferecem suporte a condições em suas políticas do IAM, consulte a documentação do IAM .
Expr
Representa uma expressão textual na sintaxe da Linguagem de Expressão Comum (CEL). CEL é uma linguagem de expressão semelhante à linguagem C. A sintaxe e a semântica da CEL estão documentadas em https://github.com/google/cel-spec .
Exemplo (Comparação):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Exemplo (Igualdade):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Exemplo (Lógica):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Exemplo (Manipulação de Dados):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
As variáveis e funções exatas que podem ser referenciadas em uma expressão são determinadas pelo serviço que a avalia. Consulte a documentação do serviço para obter mais informações.
Representação textual de uma expressão na sintaxe da Common Expression Language.
title
string
Opcional. Título para a expressão, ou seja, uma string curta descrevendo sua finalidade. Isso pode ser usado, por exemplo, em interfaces de usuário que permitem a inserção da expressão.
description
string
Opcional. Descrição da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, ao passar o mouse sobre ela em uma interface de usuário.
location
string
Opcional. String que indica a localização da expressão para relatório de erros, por exemplo, um nome de arquivo e uma posição no arquivo.
Configuração de auditoria
Especifica a configuração de auditoria para um serviço. A configuração determina quais tipos de permissão são registrados e quais identidades, se houver, são isentas de registro. Uma AuditConfig deve ter uma ou mais AuditLogConfigs.
Se houver AuditConfigs para allServices e um serviço específico, a união dos dois AuditConfigs será usada para esse serviço: os log_types especificados em cada AuditConfig serão habilitados e os exemptedMembers em cada AuditLogConfig serão isentos.
Para o sampleservice, esta política habilita os registros DATA_READ, DATA_WRITE e ADMIN_READ. Ela também isenta jose@example.com do registro DATA_READ e aliya@example.com do registro DATA_WRITE.
Especifica um serviço que será habilitado para registro de auditoria. Por exemplo, storage.googleapis.com , cloudsql.googleapis.com . allServices é um valor especial que abrange todos os serviços.
Especifica as identidades que não geram registro para este tipo de permissão. Segue o mesmo formato de Binding.members .
Tipo de log
A lista de tipos de permissão válidos para os quais o registro pode ser configurado. As gravações de administrador são sempre registradas e não são configuráveis.
Enumerações
LOG_TYPE_UNSPECIFIED
Caso padrão. Nunca deveria ser assim.
ADMIN_READ
O administrador lê. Exemplo: CloudIAM getIamPolicy
DATA_WRITE
Gravações de dados. Exemplo: usuários do CloudSQL criam
DATA_READ
Leituras de dados. Exemplo: Lista de usuários do CloudSQL
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-06-09 UTC."],[[["\u003cp\u003eIAM policies manage access control for Google Cloud resources through a collection of bindings.\u003c/p\u003e\n"],["\u003cp\u003eA binding in an IAM policy links one or more principals (members) to a single role, with principals including user accounts, service accounts, Google groups, and domains.\u003c/p\u003e\n"],["\u003cp\u003eIAM policies can also contain a condition, which is a logical expression that must evaluate to true for the binding to apply, enabling constraint-based access.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eetag\u003c/code\u003e field in the policy JSON is crucial for optimistic concurrency control, especially when using IAM Conditions, to prevent simultaneous updates from overwriting each other.\u003c/p\u003e\n"],["\u003cp\u003eAudit configurations (\u003ccode\u003eauditConfigs\u003c/code\u003e) within an IAM policy allow for specifying which types of permissions are logged, and can also list exempted members for specific types of logging.\u003c/p\u003e\n"]]],[],null,["# Policy\n\n- [JSON representation](#SCHEMA_REPRESENTATION)\n- [Binding](#Binding)\n - [JSON representation](#Binding.SCHEMA_REPRESENTATION)\n- [Expr](#Expr)\n - [JSON representation](#Expr.SCHEMA_REPRESENTATION)\n- [AuditConfig](#AuditConfig)\n - [JSON representation](#AuditConfig.SCHEMA_REPRESENTATION)\n- [AuditLogConfig](#AuditLogConfig)\n - [JSON representation](#AuditLogConfig.SCHEMA_REPRESENTATION)\n- [LogType](#LogType)\n\nAn Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources.\n\nA `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role.\n\nFor some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).\n\n**JSON example:** \n\n {\n \"bindings\": [\n {\n \"role\": \"roles/resourcemanager.organizationAdmin\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-project-id@appspot.gserviceaccount.com\"\n ]\n },\n {\n \"role\": \"roles/resourcemanager.organizationViewer\",\n \"members\": [\n \"user:eve@example.com\"\n ],\n \"condition\": {\n \"title\": \"expirable access\",\n \"description\": \"Does not grant access after Sep 2020\",\n \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\",\n }\n }\n ],\n \"etag\": \"BwWWja0YfJA=\",\n \"version\": 3\n }\n\n**YAML example:** \n\n bindings:\n - members:\n - user:mike@example.com\n - group:admins@example.com\n - domain:google.com\n - serviceAccount:my-project-id@appspot.gserviceaccount.com\n role: roles/resourcemanager.organizationAdmin\n - members:\n - user:eve@example.com\n role: roles/resourcemanager.organizationViewer\n condition:\n title: expirable access\n description: Does not grant access after Sep 2020\n expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\n etag: BwWWja0YfJA=\n version: 3\n\nFor a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).\n\nBinding\n-------\n\nAssociates `members`, or principals, with a `role`.\n\nExpr\n----\n\nRepresents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at \u003chttps://github.com/google/cel-spec\u003e.\n\nExample (Comparison): \n\n title: \"Summary size limit\"\n description: \"Determines if a summary is less than 100 chars\"\n expression: \"document.summary.size() \u003c 100\"\n\nExample (Equality): \n\n title: \"Requestor is owner\"\n description: \"Determines if requestor is the document owner\"\n expression: \"document.owner == request.auth.claims.email\"\n\nExample (Logic): \n\n title: \"Public documents\"\n description: \"Determine whether the document should be publicly visible\"\n expression: \"document.type != 'private' && document.type != 'internal'\"\n\nExample (Data Manipulation): \n\n title: \"Notification string\"\n description: \"Create a notification string with a timestamp.\"\n expression: \"'New message received at ' + string(document.create_time)\"\n\nThe exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.\n\nAuditConfig\n-----------\n\nSpecifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.\n\nIf there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exemptedMembers in each AuditLogConfig are exempted.\n\nExample Policy with multiple AuditConfigs: \n\n {\n \"auditConfigs\": [\n {\n \"service\": \"allServices\",\n \"auditLogConfigs\": [\n {\n \"logType\": \"DATA_READ\",\n \"exemptedMembers\": [\n \"user:jose@example.com\"\n ]\n },\n {\n \"logType\": \"DATA_WRITE\"\n },\n {\n \"logType\": \"ADMIN_READ\"\n }\n ]\n },\n {\n \"service\": \"sampleservice.googleapis.com\",\n \"auditLogConfigs\": [\n {\n \"logType\": \"DATA_READ\"\n },\n {\n \"logType\": \"DATA_WRITE\",\n \"exemptedMembers\": [\n \"user:aliya@example.com\"\n ]\n }\n ]\n }\n ]\n }\n\nFor sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.\n\nAuditLogConfig\n--------------\n\nProvides the configuration for logging a type of permissions. Example: \n\n {\n \"auditLogConfigs\": [\n {\n \"logType\": \"DATA_READ\",\n \"exemptedMembers\": [\n \"user:jose@example.com\"\n ]\n },\n {\n \"logType\": \"DATA_WRITE\"\n }\n ]\n }\n\nThis enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting [jose@example.com](mailto:jose@example.com) from DATA_READ logging.\n\nLogType\n-------\n\nThe list of valid permission types for which logging can be configured. Admin writes are always logged, and are not configurable."]]