Esta página mostra como usar restrições personalizadas do serviço de políticas da organização para restringir operações específicas nos seguintes Google Cloud recursos:
iam.googleapis.com/AllowPolicy
Para saber mais sobre a política de organização, consulte o artigo Políticas de organização personalizadas.
Acerca das políticas e restrições da organização
O Google Cloud serviço de políticas da organização dá-lhe um controlo centralizado e programático sobre os recursos da sua organização. Enquanto administrador de políticas da organização, pode definir uma política da organização, que é um conjunto de restrições denominadas restrições que se aplicam aGoogle Cloud recursos e descendentes desses recursos na Google Cloud hierarquia de recursos. Pode aplicar políticas de organização ao nível da organização, da pasta ou do projeto.
A política da organização oferece restrições geridas incorporadas para vários Google Cloud serviços. No entanto, se quiser um controlo mais detalhado e personalizável sobre os campos específicos que estão restritos nas políticas da sua organização, também pode criar restrições personalizadas e usar essas restrições personalizadas numa política da organização.
Herança de políticas
Por predefinição, as políticas da organização são herdadas pelos descendentes dos recursos nos quais aplica a política. Por exemplo, se aplicar uma política a uma pasta, Google Cloud aplica a política a todos os projetos na pasta. Para saber mais acerca deste comportamento e como o alterar, consulte as regras de avaliação da hierarquia.
Vantagens
Pode usar políticas de organização personalizadas que referenciam atributos de IAM para controlar a forma como as políticas de autorização podem ser modificadas. Especificamente, pode controlar o seguinte:
- Quem pode receber funções
- Quem pode ter as respetivas funções revogadas
- Que funções podem ser concedidas
- Que funções podem ser revogadas
Por exemplo, pode impedir que as funções que contêm a palavra admin
sejam
concedidas a principais cujos endereços de email terminam em @gmail.com
.
Limitações
As políticas de organização personalizadas no modo de testeque fazem referência a atributos do IAM têm algumas limitações. Em concreto, os registos de auditoria das violações que envolvem o método
setIamPolicy
podem não ter os seguintes campos:resourceName
serviceName
methodName
Os registos de auditoria não são gerados para todas as violações de políticas da organização personalizadas relacionadas com a IAM. Ou seja, se uma política de organização personalizada fizer com que uma operação
setIamPolicy
no recurso da organização falhe, oGoogle Cloud não gera um registo de auditoria para esse evento.As políticas de organização personalizadas que fazem referência a atributos do IAM não afetam o seguinte:
- Concessões predefinidas por ACLs do Cloud Storage.
- Concessões automáticas de funções para valores de conveniência do Cloud Storage e acesso predefinido ao conjunto de dados do BigQuery.
- Funções concedidas por políticas de autorização predefinidas, por exemplo, um criador de projetos
recebe automaticamente a função de proprietário (
roles/owner
) no projeto.
Os utilizadores podem receber convites para se tornarem proprietários, mesmo que tenha uma política organizacional personalizada que impeça a concessão da função de proprietário (
roles/owner
). No entanto, embora a política organizacional personalizada não impeça o envio de um convite, impede que os utilizadores convidados recebam a função de proprietário. Se os utilizadores convidados tentarem aceitar o convite, vão encontrar um erro e não lhes vai ser concedida a função de proprietário.Algumas ações no Google Cloud, como a criação de recursos ou a ativação de APIs, envolvem a concessão automática de uma função a um agente de serviço ou a uma conta de serviço predefinida. Se uma ação envolver a concessão automática de uma função e uma política da organização impedir a concessão dessa função, toda a operação pode falhar.
Se tiver este problema, pode usar etiquetas para desativar temporariamente a restrição que impede a concessão de funções. Em seguida, realize a ação. Após a conclusão da ação, reative a restrição.
Antes de começar
-
Se quiser testar políticas de organização personalizadas que referenciem recursos do IAM, crie um novo projeto. Testar estas políticas da organização num projeto existente pode interromper os fluxos de trabalho de segurança.
-
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
-
Funções necessárias
Para receber as autorizações de que precisa para gerir políticas de organização, peça ao seu administrador que lhe conceda as seguintes funções do IAM:
-
Administrador da política da organização (
roles/orgpolicy.policyAdmin
) na organização -
Teste as políticas de organização descritas nesta página:
Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin
) no projeto
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para gerir as políticas da organização. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para gerir políticas da organização:
-
orgpolicy.*
na organização -
Teste as políticas de organização descritas nesta página:
resourcemanager.projects.setIamPolicy
no projeto
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Crie uma restrição personalizada
Uma restrição personalizada é definida num ficheiro YAML pelos recursos, métodos, condições e ações suportados pelo serviço no qual está a aplicar a política da organização. As condições para as restrições personalizadas são definidas através do Idioma de expressão comum (IEC). Para mais informações sobre como criar condições em restrições personalizadas através da CEL, consulte a secção CEL do artigo Criar e gerir restrições personalizadas.
Para criar uma restrição personalizada, crie um ficheiro YAML com o seguinte formato:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
resourceTypes:
- RESOURCE_NAME
methodTypes:
- CREATE
- UPDATE
condition: "CONDITION"
actionType: ACTION
displayName: DISPLAY_NAME
description: DESCRIPTION
Substitua o seguinte:
ORGANIZATION_ID
: o ID da sua organização, como123456789
.CONSTRAINT_NAME
: o nome que quer para a nova restrição personalizada. Uma restrição personalizada tem de começar porcustom.
e só pode incluir letras maiúsculas, letras minúsculas ou números. Por exemplo,custom.denyProjectIAMAdmin
. O comprimento máximo deste campo é de 70 carateres.RESOURCE_NAME
: o nome totalmente qualificado do recurso que contém o objeto e o campo que quer restringir.Google Cloud Por exemplo,iam.googleapis.com/AllowPolicy
.CONDITION
: uma condição CEL escrita em função de uma representação de um recurso de serviço suportado. Este campo tem um comprimento máximo de 1000 carateres. Consulte o artigo Recursos suportados para mais informações sobre os recursos disponíveis para escrever condições. Por exemplo,
.resource.bindings.exists(binding, RoleNameMatches(binding.role, ['roles/resourcemanager.projectIamAdmin']))
ACTION
: a ação a tomar se a condiçãocondition
for cumprida. Os valores possíveis sãoALLOW
eDENY
.DISPLAY_NAME
: um nome simples para a restrição. Este campo tem um comprimento máximo de 200 carateres.DESCRIPTION
: uma descrição acessível da restrição a apresentar como uma mensagem de erro quando a política é violada. Este campo tem um comprimento máximo de 2000 carateres.
Para mais informações sobre como criar uma restrição personalizada, consulte o artigo Definir restrições personalizadas.
Configure uma restrição personalizada
Depois de criar o ficheiro YAML para uma nova restrição personalizada, tem de o configurar para o disponibilizar para as políticas da organização na sua organização. Para configurar uma restrição personalizada, use o comandogcloud org-policies set-custom-constraint
:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
pelo caminho completo para o seu ficheiro de restrições personalizado. Por exemplo, /home/user/customconstraint.yaml
.
Após a conclusão, as restrições personalizadas ficam disponíveis como políticas da organização na sua lista de Google Cloud políticas da organização.
Para verificar se a restrição personalizada existe, use o comando
gcloud org-policies list-custom-constraints
:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
ORGANIZATION_ID
pelo ID do recurso da sua organização.
Para mais informações, consulte o artigo
Ver políticas da organização.
Aplique uma política da organização personalizada
Pode aplicar uma restrição criando uma política da organização que a referencie e, em seguida, aplicando essa política da organização a um Google Cloud recurso.Consola
- Na Google Cloud consola, aceda à página Políticas da organização.
- No seletor de projetos, selecione o projeto para o qual quer definir a política de organização.
- Na lista da página Políticas da organização, selecione a restrição para ver a página Detalhes da política dessa restrição.
- Para configurar a política da organização para este recurso, clique em Gerir política.
- Na página Editar política, selecione Substituir política do elemento principal.
- Clique em Adicionar regra.
- Na secção Aplicação, selecione se a aplicação desta política organizacional está ativada ou desativada.
- Opcional: para tornar a política de organização condicional a uma etiqueta, clique em Adicionar condição. Tenha em atenção que, se adicionar uma regra condicional a uma política da organização, tem de adicionar, pelo menos, uma regra incondicional. Caso contrário, não é possível guardar a política. Para mais informações, consulte o artigo Definir uma política de organização com etiquetas.
- Clique em Testar alterações para simular o efeito da política da organização. A simulação de políticas não está disponível para restrições geridas antigas. Para mais informações, consulte o artigo Teste as alterações da política da organização com o simulador de políticas.
- Para concluir e aplicar a política da organização, clique em Definir política. A política demora até 15 minutos a entrar em vigor.
gcloud
Para criar uma política da organização com regras booleanas, crie um ficheiro YAML de política que faça referência à restrição:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Substitua o seguinte:
-
PROJECT_ID
: o projeto no qual quer aplicar a restrição. -
CONSTRAINT_NAME
: o nome que definiu para a restrição personalizada. Por exemplo,custom.denyProjectIAMAdmin
.
Para aplicar a política da organização que contém a restrição, execute o seguinte comando:
gcloud org-policies set-policy POLICY_PATH
Substitua POLICY_PATH
pelo caminho completo para o ficheiro YAML
da política da organização. A política demora até 15 minutos a entrar em vigor.
Teste a política da organização personalizada
Opcionalmente, pode testar a política da organização definindo a política e, em seguida, tentando realizar uma ação que a política deve impedir.
Crie a restrição
Guarde o seguinte ficheiro como
constraint-deny-project-iam-admin
.name: organizations/ORG_ID/customConstraints/custom.denyProjectIAMAdmin resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameMatches(binding.role, ['roles/resourcemanager.projectIamAdmin']) && binding.members.exists(member, MemberSubjectMatches(member, ['user:EMAIL_ADDRESS']) ) )" actionType: DENY displayName: Do not allow EMAIL_ADDRESS to be granted the Project IAM Admin role.
Substitua os seguintes valores:
ORG_ID
: o ID numérico da sua organizaçãoGoogle Cloud .MEMBER_EMAIL_ADDRESS
: o endereço de email do principal que quer usar para testar a restrição personalizada. Enquanto a restrição estiver ativa, não é possível conceder a esta entidade o papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin
) no projeto para o qual aplica a restrição.
Aplique a restrição:
gcloud org-policies set-custom-constraint ~/constraint-deny-project-iam-admin.yaml
Verifique se a restrição existe:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Crie a política
Guarde o seguinte ficheiro como
policy-deny-project-iam-admin.yaml
:name: projects/PROJECT_ID/policies/custom.denyProjectIamAdmin spec: rules: - enforce: true
Substitua
PROJECT_ID
pelo ID do seu projeto.Aplique a política:
gcloud org-policies set-policy ~/policy-deny-project-iam-admin.yaml
Verifique se a política existe:
gcloud org-policies list --project=PROJECT_ID
Depois de aplicar a política, aguarde cerca de dois minutos para que Google Cloud comece a aplicar a política.
Teste a política
Experimente conceder a função de administrador de IAM do projeto (roles/resourcemanager.projectIamAdmin
) ao principal cujo endereço de email incluiu na restrição personalizada. Antes de executar o comando, substitua os seguintes valores:
PROJECT_ID
: o ID do projeto onde aplicou a restrição Google CloudEMAIL_ADDRESS
: o endereço de email do principal que especificou quando criou a restrição da política da organização.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:EMAIL_ADDRESS --role=roles/resourcemanager.projectIamAdmin
O resultado é o seguinte:
Operation denied by custom org policies: ["customConstraints/custom.denyProjectIAMAdmin": "EMAIL_ADDRESS can't be granted the Project IAM Admin role."]
Exemplos de políticas da organização personalizadas para exemplos de utilização comuns
A tabela seguinte apresenta a sintaxe de algumas restrições personalizadas para exemplos de utilização comuns.
Os exemplos seguintes usam as macros de IEC all
e exists
. Para mais
informações sobre estas macros, consulte
Macros para avaliar listas.
Descrição | Sintaxe de restrição |
---|---|
Bloquear a capacidade de conceder uma função específica. |
name: organizations/ORG_ID/customConstraints/custom.denyRole resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameMatches(binding.role, ['ROLE']) )" actionType: DENY displayName: Do not allow the ROLE role to be granted |
Permitir apenas a concessão de funções específicas. |
name: organizations/ORG_ID/customConstraints/custom.specificRolesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, RoleNameMatches(binding.role, ['ROLE_1', 'ROLE_2']) )" actionType: ALLOW displayName: Only allow the ROLE_1 role and ROLE_2 role to be granted |
Impedir a concessão de funções que comecem por roles/storage. .
|
name: organizations/ORG_ID/customConstraints/custom.dontgrantStorageRoles resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameStartsWith(binding.role, ['roles/storage.']) )" actionType: DENY displayName: Prevent roles that start with "roles/storage." from being granted |
Impedir a revogação de funções com admin no nome.
|
name: organizations/ORG_ID/customConstraints/custom.dontRevokeAdminRoles resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - REMOVE_GRANT condition: "resource.bindings.exists( binding, RoleNameContains(binding.role, ['admin']) )" actionType: DENY displayName: Prevent roles with "admin" in their names from being revoked |
Permitir que apenas determinados responsáveis recebam funções. |
name: organizations/ORG_ID/customConstraints/custom.allowSpecificPrincipals resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberSubjectMatches(member, ['user:USER','serviceAccount:SERVICE_ACCOUNT']) ) )" actionType: ALLOW displayName: Only allow roles to be granted to USER and SERVICE_ACCOUNT |
Impedir que funções sejam revogadas de determinados responsáveis. |
name: organizations/ORG_ID/customConstraints/custom.denyRemovalOfSpecificPrincipals resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - REMOVE_GRANT condition: "resource.bindings.exists( binding, binding.members.exists(member, MemberSubjectMatches(member, ['user:USER_1','user:USER_2']) ) )" actionType: DENY displayName: Do not allow roles to be revoked from USER_1 or USER_2 |
Impedir que os responsáveis com endereços de email que terminam em
@gmail.com recebam funções.
|
name: organizations/ORG_ID/customConstraints/custom.dontGrantToGmail resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, binding.members.exists(member, MemberSubjectEndsWith(member, ['@gmail.com']) ) )" actionType: DENY displayName: Do not allow members whose email addresses end with "@gmail.com" to be granted roles |
Permitir que apenas funções específicas sejam concedidas e apenas a responsáveis específicos. |
name: organizations/ORG_ID/customConstraints/custom.allowSpecificRolesAndPrincipals resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, RoleNameMatches(binding.role, ['ROLE_1', 'ROLE_2']) && binding.members.all(member, MemberSubjectMatches(member, ['serviceAccount:SERVICE_ACCOUNT', 'group:GROUP']) ) )" actionType: ALLOW displayName: Only allow ROLE_1 and ROLE_2 to be granted to SERVICE_ACCOUNT and GROUP |
Impedir que as funções do Cloud Storage sejam concedidas a
allUsers e allAuthenticatedUsers .
|
name: organizations/ORG_ID/customConstraints/custom.denyStorageRolesForPrincipalAllUsers resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.exists( binding, RoleNameStartsWith(binding.role, ['roles/storage.']) && binding.members.exists(member, MemberSubjectMatches(member, ['allUsers', 'allAuthenticatedUsers']) ) )" actionType: DENY displayName: Do not allow storage roles to be granted to allUsers or allAuthenticatedUsers |
Impedir que sejam concedidas funções a identidades fora da sua organização. |
name: organizations/ORG_ID/customConstraints/custom.allowInternaldentitiesOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/ORG_ID']) ) )" actionType: ALLOW displayName: Only allow organization members to be granted roles |
Permitir apenas que as contas de serviço recebam funções. |
name: organizations/ORG_ID/customConstraints/custom.allowServiceAccountsOnly resourceTypes: iam.googleapis.com/AllowPolicy methodTypes: - CREATE - UPDATE condition: "resource.bindings.all( binding, binding.members.all(member, MemberTypeMatches(member, ['iam.googleapis.com/ServiceAccount']) ) )" actionType: ALLOW displayName: Only allow service accounts to be granted roles |
Impedir a remoção de agentes de serviço geridos pela Google de associações de funções. |
name: organizations/ORG_ID/customConstraints/custom.denyRemovalOfGoogleManagedServiceAgents resource_types: iam.googleapis.com/AllowPolicy method_types: - REMOVE_GRANT condition: |- resource.bindings.all( binding, binding.members.all(member, MemberTypeMatches(member, ['iam.googleapis.com/ServiceAgent']) ) ) action_type: DENY display_name: Deny Removal Of Google-Managed Service Agents description: Restricts the removal of Google-managed service agents from role bindings. Please reach out to your organization admins for if you have any questions. |
Políticas da organização condicionais
Pode tornar uma política de organização personalizada condicional através de etiquetas.
Por exemplo, imagine que escreveu a seguinte restrição personalizada para impedir que sejam concedidas funções que comecem por roles/storage.
:
name: organizations/ORG_ID/customConstraints/custom.dontgrantStorageRoles
resourceTypes: iam.googleapis.com/AllowPolicy
methodTypes:
- CREATE
- UPDATE
condition:
"resource.bindings.exists(
binding,
RoleNameStartsWith(binding.role, ['roles/storage.'])
)"
actionType: DENY
displayName: Prevent roles that start with "roles/storage." from being granted
Para aplicar a restrição condicionalmente, pode criar uma política de organização como a seguinte:
name: organizations/ORG_ID/policies/custom.dontgrantStorageRoles
spec:
rules:
- condition:
expression: "resource.matchTag('ORG_ID/environment', 'dev')"
enforce: true
- enforce: false
Esta política da organização impede que sejam concedidas funções que comecem por roles/storage.
a qualquer recurso que também tenha a etiqueta environment=dev
.
Recursos suportados pela gestão de identidade e de acesso
O IAM suporta o recurso AllowPolicy
. Este recurso tem o atributo resources.bindings
, que é devolvido para todos os métodos que modificam a política de autorização de um recurso. Todos os métodos que modificam a política de permissão de um recurso terminam com setIamPolicy
.
O atributo resource.bindings
tem a seguinte estrutura, em que
BINDINGS
é uma matriz de associações de funções que foram modificadas
durante uma alteração a uma política de permissão:
{
"bindings": {
BINDINGS
}
}
Cada associação em resource.bindings
tem a seguinte estrutura, em que
ROLE
é o nome da função na associação de funções e
MEMBERS
é uma lista de identificadores de todos os principais que
foram adicionados ou removidos da associação de funções:
{
"role": "ROLE"
"members": {
MEMBERS
}
}
Para ver os formatos que os identificadores principais podem ter, consulte Identificadores principais.
Só pode avaliar o atributo resource.bindings
e os respetivos campos através das funções suportadas. Outros operadores e funções, como ==
, !=
, in
, contains
, startsWith
e endsWith
, não são suportados.
Funções suportadas
Pode usar as seguintes funções de IEC para avaliar funções e membros individuais numa associação.
Para avaliar todas as associações na matriz bindings
ou todos os membros na matriz members
, use as macros all
e exists
. Para mais informações, consulte Macros
para avaliar listas nesta página.
Também pode usar os operadores lógicos &&
(and
) e ||
(or
) para escrever condições multipartes.
Função | Descrição |
---|---|
RoleNameMatches(
bool
|
Devolve
|
RoleNameStartsWith(
bool
|
Devolve
|
RoleNameEndsWith(
bool
|
Devolve
|
RoleNameContains(
bool
|
Devolve
|
MemberSubjectMatches(
bool
|
Devolve
Se o identificador de
|
MemberSubjectStartsWith(
bool
|
Devolve
Se o identificador de
|
MemberSubjectEndsWith(
bool
|
Devolve
Se o identificador de
|
MemberInPrincipalSet(
bool
|
Devolve
|
MemberTypeMatches(
bool
|
Devolve
|
Macros para avaliar listas
Use as macros all
e exists
para avaliar uma expressão de condição para uma lista de itens.
Macro | Descrição |
---|---|
list. all(
bool
|
Devolve
Normalmente, esta macro é usada para políticas da organização personalizadas com o parâmetro
|
list. exists(
bool
|
Devolve
Normalmente, esta macro é usada para políticas da organização personalizadas com o elemento
|
Condições com listas aninhadas
Em geral, se a sua condição incluir listas aninhadas, deve usar a mesma macro para todas as listas na condição.
Considere os seguintes exemplos:
- Se a sua política tiver o elemento
actionType
ALLOW
, use a macroall
para a listamembers
e a listabindings
para garantir que as modificações da política só são permitidas se todos os membros em todas as associações modificadas satisfizerem a condição. - Se a sua política tiver o operador
actionType
DENY
, use a macroexists
para a listamembers
e a listabindings
para garantir que as modificações da política não são permitidas se qualquer membro em qualquer associação modificada satisfizer a condição.
A combinação de macros numa única condição pode resultar numa condição que não se comporta como pretendido.
Por exemplo, imagine que quer impedir que sejam concedidas funções a membros fora da organização example.com
. A organização example.com
tem o ID 123456789012
.
Para atingir este objetivo, escreve a seguinte condição:
Não recomendado: condição configurada incorretamente
"resource.bindings.all( binding, binding.members.exists(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/123456789012']) ) )"
Esta condição parece impedir que sejam concedidas funções a membros fora da organização example.com
. No entanto, a condição é avaliada como true
se
qualquer membro em cada uma das associações de funções modificadas estiver na example.com
organização. Como resultado, ainda pode conceder funções a membros fora da organização example.com
se também conceder a mesma função a um membro na organização example.com
.
Por exemplo, a condição é avaliada como true
para o seguinte conjunto de associações, mesmo que um dos membros não esteja na organização example.com
:
"bindings": [ { "members": [ "user:raha@altostrat.com", "user:jie@example.com" ], "role": "roles/resourcemanager.projectCreator" } ],
Em vez disso, deve escrever uma condição como a seguinte:
Recomendado: condição configurada corretamente
"resource.bindings.all( binding, binding.members.all(member, MemberInPrincipalSet(member, ['//cloudresourcemanager.googleapis.com/organizations/123456789012']) ) )"
A utilização da macro all
para a matriz members.bindings
e a matriz resource.bindings
garante que a condição é avaliada como true
apenas se todos os membros em todas as associações estiverem no conjunto principal example.com
.
Tipos de principais suportados para MemberTypeMatches
A função MemberTypeMatches
requer que especifique a que tipo de principal
o membro especificado tem de corresponder.
A tabela seguinte lista os tipos principais que pode introduzir e uma descrição do que o tipo principal representa. Também indica os identificadores principais que correspondem a cada tipo de principal. Estes identificadores são os valores usados nas políticas da IAM.
Tipo de principal | Descrição | Identificadores principais |
---|---|---|
iam.googleapis.com/ |
Uma Conta Google de consumidor. Normalmente, os endereços de email destas contas terminam
em gmail.com .
|
user:USER_EMAIL_ADDRESS |
iam.googleapis.com/ |
Uma Conta Google que faz parte de uma conta do Cloud ID ou do Google Workspace. Estas contas também são denominadas contas de utilizador geridas. | user:USER_EMAIL_ADDRESS |
iam.googleapis.com/ |
Um
grupo Google criado por uma Conta Google de consumidor. Estes grupos não são
propriedade de uma conta do Cloud ID ou do Google Workspace. Normalmente, as moradas de email
destes grupos terminam em googlegroups.com .
|
group:GROUP_EMAIL_ADDRESS |
iam.googleapis.com/ |
Um grupo Google pertencente a uma conta do Cloud ID ou Google Workspace. | group:GROUP_EMAIL_ADDRESS |
iam.googleapis.com/ |
Uma conta do Cloud ID ou Google Workspace. | domain:DOMAIN |
iam.googleapis.com/ |
Um único principal num Workforce Identity Pool. | principal://iam.googleapis.com/ |
iam.googleapis.com/ |
Um conjunto de principais que contém um conjunto de identidades num workforce identity pool. Por exemplo, um conjunto de principais que contém todos os principais num grupo de identidades da força de trabalho. |
|
iam.googleapis.com/ |
Uma única identidade num Workload Identity Pool | principal://iam.googleapis.com/projects/ |
iam.googleapis.com/ |
Um conjunto de principais que contém um conjunto de identidades num Workload Identity Pool. Por exemplo, um conjunto de entidades principais que contém todas as entidades principais num Workload Identity Pool. |
|
iam.googleapis.com/ |
Qualquer conta de serviço. Uma conta de serviço é um tipo especial de conta que representa uma carga de trabalho em vez de um utilizador humano.
No contexto da função |
serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS |
iam.googleapis.com/ |
Qualquer agente do serviço. Um agente de serviço é um tipo especial de conta de serviço que Google Cloud cria e gere. Quando são concedidas funções nos seus projetos, os agentes de serviços permitem que os Google Cloud serviços possam realizar ações em seu nome. | serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS |
iam.googleapis.com/ |
Os principais allUsers e
allAuthenticatedUsers .
|
|
iam.googleapis.com/ |
Entidades definidas com base na função que lhes é concedida. Estes diretores também são denominados valores de conveniência. |
|
iam.googleapis.com/ |
Um recurso com uma identidade integrada. | Qualquer um dos identificadores principais indicados em Identificadores principais para recursos únicos. |
iam.googleapis.com/ |
Recursos com identidades incorporadas que partilham determinadas caraterísticas, como o tipo ou o ancestral. | Qualquer um dos identificadores indicados em Identificadores principais para conjuntos de recursos. |
O que se segue?
- Saiba mais sobre o serviço de políticas da organização.
- Saiba como criar e gerir políticas de organização.
- Veja a lista completa de restrições de políticas organizacionais geridas.