Esta página explica como gerir as associações de acesso existentes, que definem como as políticas de acesso são aplicadas aos seus grupos de utilizadores. Pode ver, modificar e eliminar estas associações conforme necessário. As associações de acesso determinam como os níveis de acesso e os controlos de sessão são aplicados a um grupo de utilizadores.
Para obter informações sobre como criar associações de acesso e mais detalhes sobre os níveis de acesso e os controlos de sessão, consulte o artigo Aplique políticas a grupos de utilizadores com associações de acesso.
Veja as associações de acesso
Depois de criar as associações de acesso para um grupo de utilizadores, o acesso à Google Cloud consola e Google Cloud às APIs é controlado com base na satisfação do nível de acesso associado.
Pode ver os detalhes da associação de acesso que criou, editá-la ou eliminá-la.
Consola
Na Google Cloud consola, aceda à página Access Context Manager.
Se lhe for pedido, selecione um projeto. A lista de vinculações de acesso é apresentada na página do Gestor de acesso sensível ao contexto.
gcloud
Para ver todas as associações de acesso, execute o seguinte comando:
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
ORG_ID: o ID da sua organização. Se a propriedade
access-context-manager/organization
não tiver sido definida, substituaORG_ID
na flag--organization
opcional pelo ID da organização que usou quando criou a funçãoGcpAccessAdmin
.Para ver os detalhes de uma associação de acesso, execute o seguinte comando:
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_ID
BINDING_ID
é o ID da vinculação de acesso ou o identificador totalmente qualificado da vinculação de acesso.
API
Ver todas as associações de acesso:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
ORG_ID
é o ID da organização que usou quando criou a funçãoGcpAccessAdmin
. Se a propriedadeaccess-context-manager/organization
não tiver sido definida, substituaORG_ID
na flag--organization
opcional pelo ID da organização que usou quando criou a funçãoGcpAccessAdmin
.
Método HTTP e URL:
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand ContentDeve receber uma resposta JSON semelhante à seguinte:
{ "name": string, "groupKey": string, "accessLevels": [ string ] "dryRunAccessLevels": [ string ] }
-
Veja os detalhes de uma associação de acesso:
Método HTTP e URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/BINDING_ID"PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand ContentDeve receber uma resposta JSON semelhante à seguinte:
{ "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l", "groupKey": "045jfvxd0ybeul8", "accessLevels": [ "accessPolicies/305009197125/accessLevels/device_lock" ], "dryRunAccessLevels": [ "accessPolicies/305009197125/accessLevels/another" ] }
Atualize uma associação de acesso
Pode atualizar uma vinculação de acesso para fazer o seguinte:
- Adicione, remova ou altere as aplicações que têm uma política.
- Modifique os níveis de acesso de uma aplicação num grupo de utilizadores.
- Adicione um novo nível de acesso de teste ou promova um existente para um nível em direto.
Consola
Na Google Cloud consola, aceda à página Access Context Manager.
Se lhe for pedido, selecione um projeto.
Na página Access Context Manager, selecione uma associação de acesso e, de seguida, clique em Editar para a atualizar.
Não pode atualizar as associações de acesso com níveis de acesso de teste ou controlos de sessão na Google Cloud consola.
gcloud
Crie um ficheiro de associação YAML.
gcloud access-context-manager cloud-bindings update --binding ACCESS_BINDING --binding-file BINDING_FILE_PATH [ --level DEFAULT_ACCESS_LEVEL ] [ --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL ] [ --session-length=DEFAULT_SESSION_LENGTH ] [ --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD ]
Substitua o seguinte:
-
ACCESS_BINDING
está no formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
BINDING_FILE_PATH: o caminho para o ficheiro YAML que contém o esquema de associação de acesso.
O ficheiro de associação só suporta
scopedAccessSettings
. -
DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume a forma
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. SubstituaPOLICY_ID
pelo ID da política de acesso eACCESS_LEVEL_NAME
pelo nome do nível de acesso. - DEFAULT_DRY_RUN_ACCESS_LEVEL_2: um nome de nível de acesso opcional no formato `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Inclua esta flag para aplicar o nível de acesso de teste especificado a todas as aplicações por predefinição se não forem especificadas no YAML.
-
DEFAULT_SESSION_LENGTH: a duração opcional da sessão no formato de duração ISO 8601, como
30m
para 30 minutos ou2h
para duas horas. -
DEFAULT_SESSION_REAUTH_METHOD: o método opcional para desafiar os utilizadores a validarem novamente a respetiva identidade, que tem de ser um dos seguintes:
LOGIN
: aplique o início de sessão padrão, que pode incluir a MFA ou outros fatores definidos pelo Workspace.PASSWORD
: só requer uma palavra-passe, mesmo que outros fatores estejam definidos. Se as palavras-passe forem geridas através de um IdP externo, os utilizadores são redirecionados para o IdP. Se a sessão do IdP estiver ativa, os utilizadores são autenticados novamente de forma implícita. Se o IdP não estiver ativo, os utilizadores têm de iniciar sessão através do IdP.SECURITY_KEY
: exigir uma chave de segurança de hardware.
Como funcionam em conjunto os argumentos
--level
e--binding-file
- Se usar apenas
--binding-file
, apenas as aplicações no ficheiro têm as políticas aplicadas. - Se usar apenas
--level
, o nível de acesso aplica-se a todas as aplicações. - Se usar ambas, as regras são combinadas. O valor
--level
aplica-se a todas as aplicações, enquanto as políticas no ficheiro YAML especificadas por--binding-file
aplicam-se apenas às aplicações conforme definido no ficheiro.
Trabalhar com controlos de sessão
- Para definir controlos de sessão predefinidos para todas as aplicações, use
--session-length
e--session-reauth-method
. - Se também definir controlos de sessão no ficheiro YAML, esses controlos de sessão substituem as predefinições para essas aplicações específicas.
- Tem de usar o
--session-length
e o--session-reauth-method
em conjunto.
Para remover um nível de acesso predefinido ou um nível de acesso de teste de execução predefinido, forneça uma string vazia, como
--level=
ou--dry-run-level=
. Quando estes argumentos não são fornecidos, o comandoupdate
não faz alterações.Para remover um controlo da sessão, defina
--session-length=0
.-
API
Crie um corpo JSON.
{ "accessLevels": [ "DEFAULT_ACCESS_LEVEL" ], "scopedAccessSettings": [ { "scope": { "clientScope": { "restrictedClientApplication": { "clientId": "CLIENT_ID" } } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_A" ], "sessionSettings": [ { "sessionLength": "SESSION_LENGTH", "sessionReauthMethod": "SESSION_REAUTH_METHOD", "sessionLengthEnabled": true } ] } }, { "scope": { "clientScope": { "restrictedClientApplication": { "name": "CLIENT_NAME" } }, "activeSettings": { "accessLevels": [ "ACCESS_LEVEL_C" ] } } } ] }
Substitua o seguinte:
-
DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume a forma
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. SubstituaPOLICY_ID
pelo ID da política de acesso eACCESS_LEVEL_NAME
pelo nome do nível de acesso. - CLIENT_ID: o ID de cliente OAuth. Tem de usar
clientId
quando uma aplicação contémsessionSettings
. - ACCESS_LEVEL_A: um nome de nível de acesso no formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
. - SESSION_LENGTH: a duração da sessão no formato de duração ISO 8601, como
30m
para 30 minutos ou2h
para duas horas. SESSION_REAUTH_METHOD: o método opcional para desafiar os utilizadores a validarem novamente a respetiva identidade, que tem de ser um dos seguintes:
LOGIN
: aplique o início de sessão padrão, que pode incluir a MFA ou outros fatores definidos pelo Workspace.PASSWORD
: Exigir apenas uma palavra-passe, mesmo que outros fatores estejam definidos. Se as palavras-passe forem geridas através de um IdP externo, os utilizadores são redirecionados para o IdP. Se a sessão do IdP estiver ativa, os utilizadores são autenticados novamente de forma implícita. Se o IdP não estiver ativo, os utilizadores têm de iniciar sessão através do IdP.SECURITY_KEY
: exigir uma chave de segurança de hardware.
CLIENT_NAME: o nome do cliente. Se a aplicação contiver
sessionSettings
, não pode usar o nome do cliente. Em alternativa, use o ID de cliente OAuth.ACCESS_LEVEL_C: um nome de nível de acesso no formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
.
-
DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume a forma
Envie o pedido PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
Substitua o seguinte:
-
ACCESS_BINDING
está no formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. - FIELD_MASK: uma lista obrigatória de campos separados por vírgulas que quer atualizar. Isto indica à API que partes da vinculação de acesso devem ser modificadas.
fieldMask
deve conter as chaves JSON de nível superior no corpo do pedido que quer atualizar, que podem conteraccessLevels
,dryRunAccessLevels
escopedAccessSettings
.Se for bem-sucedido, deve receber uma representação do objeto JSON. Se existir um problema, recebe uma mensagem de erro.
-
Elimine vinculações de acesso
Consola
Na Google Cloud consola, aceda à página Access Context Manager.
Se lhe for pedido, selecione um projeto.
Na página Access Context Manager, selecione uma associação de acesso e, de seguida, clique em Eliminar.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Substitua o seguinte:
-
ACCESS_BINDING
está no formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
. -
ACCESS_BINDING_NAME
é a string exclusiva devolvida para o identificadorname
quando a associação de acesso foi criada.
API
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
-
ACCESS_BINDING_NAME
é a string exclusiva devolvida para o identificadorname
quando a associação de acesso foi criada.
Método HTTP e URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content
Deve receber um código de estado de êxito (2xx) e uma resposta vazia.