Este documento explica como gerenciar as vinculações de acesso atuais, que definem como as políticas de acesso são aplicadas aos grupos de usuários ou contas de serviço. É possível visualizar, modificar e excluir essas vinculações conforme necessário. As vinculações de acesso determinam como os níveis de acesso e os controles de sessão são aplicados a um grupo de usuários ou conta de serviço.
Para informações sobre como criar vinculações de acesso para usuários e mais detalhes sobre níveis de acesso e controles de sessão, consulte Aplicar políticas a grupos de usuários com vinculações de acesso.
Para mais informações sobre como criar vinculações de acesso para contas de serviço, consulte Configurar o acesso baseado no contexto para contas de serviço.
Listar vinculações de acesso
Para listar todas as vinculações de acesso criadas anteriormente para grupos de usuários, faça o seguinte:
gcloud
Para listar todas as vinculações de acesso para usuários usando a CLI gcloud, execute o seguinte comando. Para listar vinculações de acesso para contas de serviço, é necessário usar um filtro.
gcloud access-context-manager cloud-bindings list \
--organization ORGANIZATION_ID
ORG_ID: o ID da sua organização.
Se a propriedade access-context-manager/organization não tiver sido definida, substitua ORG_ID na flag --organization opcional pelo ID da organização que você usou ao criar o papel GcpAccessAdmin.
Para listar vinculações de acesso em recursos específicos, use uma flag de filtro.
--filter="FILTER"
Substitua FILTER por um filtro que descreva o recurso ao qual a política de acesso está vinculada. Por exemplo:
- Grupos de usuários:
principal:group_key
Contas de serviço:
principal:service_account OR principal:service_account_project_number
API REST
Para listar todas as vinculações de acesso USER_LOGIN, execute o seguinte comando:
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings"
Para listar vinculações de acesso em recursos específicos, use um parâmetro de filtro.
curl -H "X-Goog-User-Project: PROJECT_ID" -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://accesscontextmanager.googleapis.com/v1/organizations/ORGANIZATION_ID/gcpUserAccessBindings?filter=FILTER"
Substitua:
PROJECT_ID: o ID do projetoORGANIZATION_ID: o ID da organizaçãoFILTER: um filtro que descreve o recurso ao qual a política de acesso está vinculada. Por exemplo:Grupos de usuários:
principal:group_keyContas de serviço:
principal:service_account OR principal:service_account_project_number
Visualizar uma vinculação de acesso
Depois que as vinculações de acesso são criadas para um grupo de usuários, o acesso ao Google Cloud console e Google Cloud às APIs é controlado com base na satisfação do nível de acesso vinculado.
É possível visualizar os detalhes da vinculação de acesso criada, editá-la ou excluí-la.
Console
No Google Cloud console do, acesse a página Access Context Manager.
Se for solicitado, selecione um projeto. As vinculações de acesso são listadas na página do Access Context Manager.
gcloud
Para visualizar os detalhes de uma vinculaçã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 dela.
API
Confira os detalhes de uma vinculação de acesso:
Método HTTP e URL:
GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID
Para enviar a solicitação, 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 Content
Você receberá uma resposta JSON semelhante a esta:
{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
"accessPolicies/305009197125/accessLevels/device_lock"
],
"dryRunAccessLevels": [
"accessPolicies/305009197125/accessLevels/another"
]
}
Atualizar uma vinculação de acesso
É possível atualizar uma vinculação de acesso para fazer o seguinte:
- Adicionar, remover ou alterar quais aplicativos têm uma política.
- Modificar os níveis de acesso de um aplicativo em um grupo de usuários.
- Adicionar um novo nível de acesso de simulação ou promover um já existente para um nível ativo.
Console
No Google Cloud console do, acesse a página Access Context Manager.
Se for solicitado, selecione um projeto.
Na página Access Context Manager, selecione uma vinculação de acesso e clique em Editar para atualizá-la.
Não é possível atualizar vinculações de acesso com níveis de acesso de simulação ou controles de sessão no console Google Cloud .
gcloud
Crie um arquivo de vinculaçã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:
-
ACCESS_BINDINGestá no formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
BINDING_FILE_PATH: o caminho para o arquivo YAML que contém o esquema de vinculação de acesso.
O arquivo de vinculação oferece suporte apenas a
scopedAccessSettings. -
DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume o formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. SubstituaPOLICY_IDpelo ID da política de acesso eACCESS_LEVEL_NAMEpelo 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 essa flag para aplicar o nível de acesso de teste especificado a todos os aplicativos por padrão, se eles não forem especificados no YAML.
-
DEFAULT_SESSION_LENGTH: a duração da sessão opcional no formato de hora,
como
15hpara 15 horas ou2hpara duas horas. -
DEFAULT_SESSION_REAUTH_METHOD: o método opcional para desafiar os usuários a verificar novamente a identidade deles, que precisa ser um dos seguintes:
LOGIN: aplica o login padrão, que pode incluir MFA ou outros fatores definidos pelo Workspace.PASSWORD: exige apenas uma senha, mesmo que outros fatores sejam definidos. Se as senhas forem gerenciadas usando um IdP externo, os usuários serão redirecionados para o IdP. Se a sessão do IdP estiver ativa, os usuários serão autenticados novamente de forma implícita. Se o IdP não estiver ativo, os usuários precisarão fazer login pelo IdP.SECURITY_KEY: exige uma chave de segurança de hardware.
Como os argumentos
--levele--binding-filefuncionam juntos- Se você usar apenas
--binding-file, somente os aplicativos no arquivo terão as políticas aplicadas. - Se você usar apenas
--level, o nível de acesso será aplicado a todos os aplicativos. - Se você usar os dois, as regras serão combinadas. O valor
--levelse aplica a todos os aplicativos, enquanto as políticas no arquivo YAML especificado por--binding-filesó se aplicam aos aplicativos conforme definidos no arquivo.
Como trabalhar com controles de sessão
- Para definir controles de sessão padrão para todos os aplicativos, use
--session-lengthe--session-reauth-method. - Se você também definir controles de sessão no arquivo YAML, esses controles de sessão vão substituir as configurações padrão desses aplicativos específicos.
- É necessário usar
--session-lengthe--session-reauth-methodjuntos.
Para remover um nível de acesso padrão ou um nível de acesso de simulação padrão, forneça uma string vazia, como
--level=ou--dry-run-level=. Quando esses argumentos não são fornecidos, o comandoupdatenão faz nenhuma mudança.Para remover um controle de 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:
-
DEFAULT_ACCESS_LEVEL: o nome do nível de acesso opcional, que assume o formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. SubstituaPOLICY_IDpelo ID da política de acesso eACCESS_LEVEL_NAMEpelo nome do nível de acesso. - CLIENT_ID: o ID do cliente OAuth. É possível usar
clientIdounamequando um aplicativo 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 usando o formato de duração ISO 8601
, como
30mpara 30 minutos ou2hpara duas horas. SESSION_REAUTH_METHOD: o método opcional para desafiar os usuários a verificar novamente a identidade deles, que precisa ser um dos seguintes:
LOGIN: aplica o login padrão, que pode incluir MFA ou outros fatores definidos pelo Workspace.PASSWORD: exige apenas uma senha, mesmo que outros fatores sejam definidos. Se as senhas forem gerenciadas usando um IdP externo, os usuários serão redirecionados para o IdP. Se a sessão do IdP estiver ativa, os usuários serão autenticados novamente de forma implícita. Se o IdP não estiver ativo, os usuários precisarão fazer login pelo IdP.SECURITY_KEY: exige uma chave de segurança de hardware.
CLIENT_NAME: o nome do cliente. É possível usar
nameouclientIdquando um aplicativo contémsessionSettings.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 o formato
Envie a solicitação PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?updateMask=FIELD_MASKSubstitua:
-
ACCESS_BINDINGestá no formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. - FIELD_MASK: uma lista obrigatória e separada por vírgulas de campos que você quer atualizar. Isso informa à API quais partes da vinculação de acesso modificar.
fieldMaskprecisa conter as chaves JSON de nível superior no corpo da solicitação que você quer atualizar, que podem conteraccessLevels,dryRunAccessLevelsescopedAccessSettings.Se não houver nenhum problema, você vai receber uma representação do objeto JSON. Se houver um problema, você vai receber uma mensagem de erro.
-
Excluir vinculações de acesso
Console
No Google Cloud console do, acesse a página Access Context Manager.
Se for solicitado, selecione um projeto.
Na página Access Context Manager, selecione uma vinculação de acesso e clique em Excluir.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding ACCESS_BINDING
Substitua:
-
ACCESS_BINDINGestá no formatoorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
ACCESS_BINDING_NAMEé a string exclusiva retornada para o identificadornamequando a vinculação de acesso foi criada.
API
Antes de usar qualquer um dos dados da solicitação, faça as seguintes substituições:
-
ACCESS_BINDING_NAMEé a string exclusiva retornada para o identificadornamequando a vinculação de acesso foi criada.
Método HTTP e URL:
DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
Para enviar a solicitação, 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
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.