Deployments: setIamPolicy

Requer autorização

Define a política de controle de acesso no recurso especificado. Substitui qualquer política existente. Faça o teste agora.

Solicitação

Solicitação HTTP

POST https://www.googleapis.com/deploymentmanager/v2/projects/project/global/deployments/resource/setIamPolicy

Parâmetros

Nome do parâmetro Valor Descrição
Parâmetros de caminho
project string O código do projeto dessa solicitação.
resource string Nome ou ID do recurso para essa solicitação.

Autorização

Esta solicitação requer autorização com pelo menos um dos seguintes escopos (leia mais sobre autenticação e autorização).

Escopo
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/ndev.cloudman

Corpo da solicitação

No corpo da solicitação, forneça dados com a seguinte estrutura:

{
  "policy": {
    "version": integer,
    "bindings": [
      {
        "role": string,
        "members": [
          string
        ],
        "condition": {
          "expression": string,
          "title": string,
          "description": string,
          "location": string
        }
      }
    ],
    "auditConfigs": [
      {
        "service": string,
        "exemptedMembers": [
          string
        ],
        "auditLogConfigs": [
          {
            "logType": string,
            "exemptedMembers": [
              string
            ]
          }
        ]
      }
    ],
    "rules": [
      {
        "description": string,
        "permissions": [
          string
        ],
        "action": string,
        "ins": [
          string
        ],
        "notIns": [
          string
        ],
        "conditions": [
          {
            "iam": string,
            "sys": string,
            "svc": string,
            "op": string,
            "values": [
              string
            ]
          }
        ],
        "logConfigs": [
          {
            "counter": {
              "metric": string,
              "field": string
            },
            "dataAccess": {
              "logMode": string
            },
            "cloudAudit": {
              "logName": string,
              "authorizationLoggingOptions": {
                "permissionType": string
              }
            }
          }
        ]
      }
    ],
    "etag": bytes,
    "iamOwned": boolean
  },
  "bindings": [
    {
      "role": string,
      "members": [
        string
      ],
      "condition": {
        "expression": string,
        "title": string,
        "description": string,
        "location": string
      }
    }
  ],
  "etag": bytes
}
Nome da propriedade Valor Descrição Observações
bindings[] list Achatar a política para criar um formato de transmissão compatível com versões anteriores. Obsoleto. Use "policy" para especificar vinculações.
bindings[].role string Papel atribuído a "members". Por exemplo, "roles/viewer", "roles/editor" ou "roles/owner".
bindings[].members[] list Especifica as identidades que solicitam acesso a um recurso do Cloud Platform. `members` pode ter os seguintes valores:

* `allUsers`: um identificador especial que representa qualquer pessoa 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.

* `user:{emailid}`: um endereço de e-mail que representa uma Conta do Google específica. Por exemplo, "alice@gmail.com".



* `serviceAccount:{emailid}`: um endereço de e-mail que representa uma conta de serviço. Por exemplo, "my-other-app@appspot.gserviceaccount.com".

* "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 (principal) que representa todos os usuários dele. Por exemplo, "google.com" ou "example.com".







etag bytes Achatar a política para criar um formato de transmissão compatível com versões anteriores. Obsoleto. Use "policy" para especificar o ETag.
bindings[].condition nested object A condição que está associada a essa vinculação. OBSERVAÇÃO: uma condição não satisfeita impede o acesso do usuário pela vinculação atual. Vinculações diferentes, incluindo as próprias condições, são examinadas de maneira independente.
bindings[].condition.expression string Representação textual de uma expressão na sintaxe de Linguagem de expressão comum.

O contexto do aplicativo a que pertence a mensagem determina qual conjunto de recursos conhecido da CEL é compatível.
bindings[].condition.title string Um título opcional para a expressão, ou seja, uma string curta descrevendo a finalidade. Isso pode ser usado, por exemplo, em IUs que permitam inserir a expressão.
bindings[].condition.description string Uma descrição opcional da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, quando o cursor é passado sobre ela em uma IU.
bindings[].condition.location string Uma string opcional indicando o local da expressão para relatórios de erros, por exemplo, um nome de arquivo e uma posição no arquivo.
policy nested object OBRIGATÓRIO: a política completa a ser aplicada ao "resource". O tamanho da política é limitado a menos de 100 KB. Uma política vazia é válida, mas alguns serviços (como Projetos) podem rejeitá-la.
policy.version integer Descontinuado.

policy.bindings[] list Associa uma lista de "members" a uma "role". "bindings" sem membros resulta em erro.
policy.bindings[].role string Papel atribuído a "members". Por exemplo, "roles/viewer", "roles/editor" ou "roles/owner".
policy.bindings[].members[] list Especifica as identidades que solicitam acesso a um recurso do Cloud Platform. `members` pode ter os seguintes valores:

* `allUsers`: um identificador especial que representa qualquer pessoa 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.

* `user:{emailid}`: um endereço de e-mail que representa uma Conta do Google específica. Por exemplo, "alice@gmail.com".



* `serviceAccount:{emailid}`: um endereço de e-mail que representa uma conta de serviço. Por exemplo, "my-other-app@appspot.gserviceaccount.com".

* "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 (principal) que representa todos os usuários dele. Por exemplo, "google.com" ou "example.com".







policy.bindings[].condition nested object A condição que está associada a essa vinculação. OBSERVAÇÃO: uma condição não satisfeita impede o acesso do usuário pela vinculação atual. Vinculações diferentes, incluindo as próprias condições, são examinadas de maneira independente.
policy.bindings[].condition.expression string Representação textual de uma expressão na sintaxe de Linguagem de expressão comum.

O contexto do aplicativo a que pertence a mensagem determina qual conjunto de recursos conhecido da CEL é compatível.
policy.bindings[].condition.title string Um título opcional para a expressão, ou seja, uma string curta descrevendo a finalidade. Isso pode ser usado, por exemplo, em IUs que permitam inserir a expressão.
policy.bindings[].condition.description string Uma descrição opcional da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, quando o cursor é passado sobre ela em uma IU.
policy.bindings[].condition.location string Uma string opcional indicando o local da expressão para relatórios de erros, por exemplo, um nome de arquivo e uma posição no arquivo.
policy.auditConfigs[] list Especifica a configuração do Cloud Audit Logging para esta política.

policy.auditConfigs[].service string Especifica um serviço que é ativado para geração de registros de auditoria. Por exemplo, "storage.googleapis.com", "cloudsql.googleapis.com". "allServices" é um valor especial que abrange todos os serviços.
policy.auditConfigs[].exemptedMembers[] list

policy.auditConfigs[].auditLogConfigs[] list A configuração para a geração de registros de cada tipo de permissão.
policy.auditConfigs[].auditLogConfigs[].logType string O tipo de registro permitido por essa configuração.
policy.auditConfigs[].auditLogConfigs[].exemptedMembers[] list Especifica as identidades que não causam geração de registros para esse tipo de permissão. Segue o mesmo formato de [Binding.members][].
policy.rules[] list Se mais de uma regra for especificada, elas serão aplicadas da seguinte maneira: - Todas as regras de LOG correspondentes são sempre aplicadas. - Se qualquer regra DENY/DENY_WITH_LOG corresponder, a permissão será negada. A geração de registros será aplicada se uma ou mais regras correspondentes exigirem isso. - Caso contrário, se qualquer regra ALLOW/ALLOW_WITH_LOG corresponder, a permissão será concedida. A geração de registros será aplicada se uma ou mais regras correspondentes exigirem isso. - Caso contrário, se nenhuma regra for aplicada, a permissão será negada.
policy.rules[].description string Descrição legível da regra.
policy.rules[].permissions[] list Uma permissão é uma string no formato '..' (por exemplo, 'storage.buckets.list'). Um valor de "*" corresponde a todas as permissões, e uma parte do verbo de "*" (por exemplo, "storage.buckets.*") corresponde a todos os verbos.

policy.rules[].action string Obrigatório
policy.rules[].ins[] list Se uma ou mais cláusulas "in" são especificadas, a regra faz a correspondência se PRINCIPAL/AUTHORITY_SELECTOR está em pelo menos uma dessas entradas.
policy.rules[].notIns[] list Se uma ou mais cláusulas "not_in" são especificadas, a regra corresponde quando PRINCIPAL/AUTHORITY_SELECTOR não está em nenhuma das entradas.
policy.rules[].conditions[] list Outras restrições que precisam ser atendidas. Todas as condições precisam ser atendidas para que a regra seja atendida.
policy.rules[].conditions[].iam string Atributos confiáveis fornecidos pelo sistema IAM.
policy.rules[].conditions[].sys string Atributos confiáveis fornecidos por qualquer serviço que tenha recursos e use o sistema IAM para controle de acesso.
policy.rules[].conditions[].svc string Atributos do Trusted descarregados pelo serviço.
policy.rules[].conditions[].op string Um operador com quem o assunto será aplicado.
policy.rules[].conditions[].values[] list Os objetos da condição.
policy.rules[].logConfigs[] list A configuração retornada para os autores da chamada de tech.iam.IAM.CheckPolicy para todas as entradas que correspondem à ação LOG.
policy.rules[].logConfigs[].counter nested object Opções de contador.
policy.rules[].logConfigs[].counter.metric string A métrica a ser atualizada.
policy.rules[].logConfigs[].counter.field string O valor do campo a ser atribuído.
policy.rules[].logConfigs[].dataAccess nested object Opções de acesso a dados.
policy.rules[].logConfigs[].dataAccess.logMode string Se o registro do Gin deve acontecer de forma fechada no autor da chamada. Por enquanto, isso é relevante apenas na implementação do LocalIAM.

OBSERVAÇÃO: no momento, não é possível fazer o registro no Gin de forma fechada em caso de falha, enquanto o trabalho é feito para atender aos requisitos de go/345. No momento, a configuração do modo LOG_FAIL_CLOSED não tem efeito, mas ainda existe porque há um trabalho ativo sendo feito para oferecer suporte a ele (b/115874152).
policy.rules[].logConfigs[].cloudAudit nested object Opções de auditoria do Cloud.
policy.rules[].logConfigs[].cloudAudit.logName string O log_name a ser preenchido no registro de auditoria do Cloud.

policy.rules[].logConfigs[].cloudAudit.authorizationLoggingOptions nested object Informações usadas pelo pipeline de Registros de auditoria do Cloud.
policy.rules[].logConfigs[].cloudAudit.authorizationLoggingOptions.permissionType string O tipo de permissão que foi verificada.
policy.etag bytes A "etag" é usada para controle de simultaneidade otimista como uma forma de ajudar a evitar atualizações simultâneas de uma política por outra. É altamente recomendável que os sistemas usem a "etag" no ciclo de leitura-modificação-gravação para fazer atualizações de políticas, a fim de evitar condições de corrida. Uma "etag" é retornada na resposta a "getIamPolicy", e essa etag é colocada na solicitação de "setIamPolicy" para garantir que a alteração seja aplicada à mesma versão da política.

Se nenhuma "etag" for fornecida na chamada para "setIamPolicy", a política atual será substituída cegamente.
policy.iamOwned boolean

Resposta

Se bem-sucedido, este método retornará um corpo de resposta com a seguinte estrutura:

{
  "version": integer,
  "bindings": [
    {
      "role": string,
      "members": [
        string
      ],
      "condition": {
        "expression": string,
        "title": string,
        "description": string,
        "location": string
      }
    }
  ],
  "auditConfigs": [
    {
      "service": string,
      "exemptedMembers": [
        string
      ],
      "auditLogConfigs": [
        {
          "logType": string,
          "exemptedMembers": [
            string
          ]
        }
      ]
    }
  ],
  "rules": [
    {
      "description": string,
      "permissions": [
        string
      ],
      "action": string,
      "ins": [
        string
      ],
      "notIns": [
        string
      ],
      "conditions": [
        {
          "iam": string,
          "sys": string,
          "svc": string,
          "op": string,
          "values": [
            string
          ]
        }
      ],
      "logConfigs": [
        {
          "counter": {
            "metric": string,
            "field": string
          },
          "dataAccess": {
            "logMode": string
          },
          "cloudAudit": {
            "logName": string,
            "authorizationLoggingOptions": {
              "permissionType": string
            }
          }
        }
      ]
    }
  ],
  "etag": bytes,
  "iamOwned": boolean
}
Nome da propriedade Valor Descrição Observações
version integer Descontinuado.

bindings[] list Associa uma lista de "members" a uma "role". "bindings" sem membros resulta em erro.
bindings[].role string Papel atribuído a "members". Por exemplo, "roles/viewer", "roles/editor" ou "roles/owner".
bindings[].members[] list Especifica as identidades que solicitam acesso a um recurso do Cloud Platform. `members` pode ter os seguintes valores:

* `allUsers`: um identificador especial que representa qualquer pessoa 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.

* `user:{emailid}`: um endereço de e-mail que representa uma Conta do Google específica. Por exemplo, "alice@gmail.com".



* `serviceAccount:{emailid}`: um endereço de e-mail que representa uma conta de serviço. Por exemplo, "my-other-app@appspot.gserviceaccount.com".

* "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 (principal) que representa todos os usuários dele. Por exemplo, "google.com" ou "example.com".







auditConfigs[] list Especifica a configuração do Cloud Audit Logging para esta política.

auditConfigs[].service string Especifica um serviço que é ativado para geração de registros de auditoria. Por exemplo, "storage.googleapis.com", "cloudsql.googleapis.com". "allServices" é um valor especial que abrange todos os serviços.
auditConfigs[].exemptedMembers[] list

auditConfigs[].auditLogConfigs[] list A configuração para a geração de registros de cada tipo de permissão.
auditConfigs[].auditLogConfigs[].logType string O tipo de registro permitido por essa configuração.
auditConfigs[].auditLogConfigs[].exemptedMembers[] list Especifica as identidades que não causam geração de registros para esse tipo de permissão. Segue o mesmo formato de [Binding.members][].
rules[] list Se mais de uma regra for especificada, elas serão aplicadas da seguinte maneira: - Todas as regras de LOG correspondentes são sempre aplicadas. - Se qualquer regra DENY/DENY_WITH_LOG corresponder, a permissão será negada. A geração de registros será aplicada se uma ou mais regras correspondentes exigirem isso. - Caso contrário, se qualquer regra ALLOW/ALLOW_WITH_LOG corresponder, a permissão será concedida. A geração de registros será aplicada se uma ou mais regras correspondentes exigirem isso. - Caso contrário, se nenhuma regra for aplicada, a permissão será negada.
rules[].description string Descrição legível da regra.
rules[].permissions[] list Uma permissão é uma string no formato '..' (por exemplo, 'storage.buckets.list'). Um valor de "*" corresponde a todas as permissões, e uma parte do verbo de "*" (por exemplo, "storage.buckets.*") corresponde a todos os verbos.

rules[].action string Obrigatório
rules[].ins[] list Se uma ou mais cláusulas "in" são especificadas, a regra faz a correspondência se PRINCIPAL/AUTHORITY_SELECTOR está em pelo menos uma dessas entradas.
rules[].notIns[] list Se uma ou mais cláusulas "not_in" são especificadas, a regra corresponde quando PRINCIPAL/AUTHORITY_SELECTOR não está em nenhuma das entradas.
rules[].conditions[] list Outras restrições que precisam ser atendidas. Todas as condições precisam ser atendidas para que a regra seja atendida.
rules[].conditions[].iam string Atributos confiáveis fornecidos pelo sistema IAM.
rules[].conditions[].sys string Atributos confiáveis fornecidos por qualquer serviço que tenha recursos e use o sistema IAM para controle de acesso.
rules[].conditions[].svc string Atributos do Trusted descarregados pelo serviço.
rules[].conditions[].op string Um operador com quem o assunto será aplicado.
rules[].conditions[].values[] list Os objetos da condição.
rules[].logConfigs[] list A configuração retornada para os autores da chamada de tech.iam.IAM.CheckPolicy para todas as entradas que correspondem à ação LOG.
rules[].logConfigs[].counter nested object Opções de contador.
rules[].logConfigs[].counter.metric string A métrica a ser atualizada.
rules[].logConfigs[].counter.field string O valor do campo a ser atribuído.
etag bytes A "etag" é usada para controle de simultaneidade otimista como uma forma de ajudar a evitar atualizações simultâneas de uma política por outra. É altamente recomendável que os sistemas usem a "etag" no ciclo de leitura-modificação-gravação para fazer atualizações de políticas, a fim de evitar condições de corrida. Uma "etag" é retornada na resposta a "getIamPolicy", e essa etag é colocada na solicitação de "setIamPolicy" para garantir que a alteração seja aplicada à mesma versão da política.

Se nenhuma "etag" for fornecida na chamada para "setIamPolicy", a política atual será substituída cegamente.
iamOwned boolean

bindings[].condition nested object A condição que está associada a essa vinculação. OBSERVAÇÃO: uma condição não satisfeita impede o acesso do usuário pela vinculação atual. Vinculações diferentes, incluindo as próprias condições, são examinadas de maneira independente.
bindings[].condition.expression string Representação textual de uma expressão na sintaxe de Linguagem de expressão comum.

O contexto do aplicativo a que pertence a mensagem determina qual conjunto de recursos conhecido da CEL é compatível.
bindings[].condition.title string Um título opcional para a expressão, ou seja, uma string curta descrevendo a finalidade. Isso pode ser usado, por exemplo, em IUs que permitam inserir a expressão.
bindings[].condition.description string Uma descrição opcional da expressão. Este é um texto mais longo que descreve a expressão, por exemplo, quando o cursor é passado sobre ela em uma IU.
bindings[].condition.location string Uma string opcional indicando o local da expressão para relatórios de erros, por exemplo, um nome de arquivo e uma posição no arquivo.
rules[].logConfigs[].dataAccess nested object Opções de acesso a dados.
rules[].logConfigs[].dataAccess.logMode string Se o registro do Gin deve acontecer de forma fechada no autor da chamada. Por enquanto, isso é relevante apenas na implementação do LocalIAM.

OBSERVAÇÃO: no momento, não é possível fazer o registro no Gin de forma fechada em caso de falha, enquanto o trabalho é feito para atender aos requisitos de go/345. No momento, a configuração do modo LOG_FAIL_CLOSED não tem efeito, mas ainda existe porque há um trabalho ativo sendo feito para oferecer suporte a ele (b/115874152).
rules[].logConfigs[].cloudAudit nested object Opções de auditoria do Cloud.
rules[].logConfigs[].cloudAudit.logName string O log_name a ser preenchido no registro de auditoria do Cloud.

rules[].logConfigs[].cloudAudit.authorizationLoggingOptions nested object Informações usadas pelo pipeline de Registros de auditoria do Cloud.
rules[].logConfigs[].cloudAudit.authorizationLoggingOptions.permissionType string O tipo de permissão que foi verificada.

Testar

Use o Explorador de APIs a seguir para chamar este método em dados reais e veja a resposta. Se você preferir, teste o Explorador independente.