Nesta página, você verá como gerenciar o acesso individual ou de grupo a recursos protegidos pelo Identity-Aware Proxy (IAP) no nível do recurso.
Visão geral
O IAP permite configurar políticas para recursos individuais e do Cloud Run em um projeto do Google Cloud. Vários apps em um projeto podem ter políticas de acesso diferentes. Isso inclui projetos com aplicativos do Compute Engine, do Google Kubernetes Engine e do App Engine. Para aplicativos do App Engine, versões e serviços individuais podem ter diferentes políticas de acesso aplicadas.
Para gerenciar o acesso superior e para envolvidos no projeto, use a página de administrador do IAM. As listas de usuários que têm acesso (os "princípios") no nível do projeto se aplicam a todos os recursos protegidos pelo IAP no projeto.
Antes de começar
Antes de começar, você precisará de:
- Um recurso protegido pelo IAP a que você quer adicionar acesso individual ou em grupo.
- nomes de usuários ou de grupos a que você quer adicionar acesso.
Como ativar e desativar o IAP
Para ativar e desativar o IAP, são necessárias determinadas permissões. A tabela a seguir mostra a permissão necessária para cada tipo de app.
Tipo de aplicativo | Permissão necessária |
---|---|
App Engine | appengine.applications.update |
Compute Engine, Google Kubernetes Engine ou Cloud Run | compute.backendServices.update |
Essas permissões são concedidas por papéis como editor do projeto, administrador do App Engine e administrador de rede do Compute. Embora esses papéis permitam ativar e desativar o IAP, eles não têm as permissões necessárias para modificar as políticas de acesso.
Além disso, ativar o IAP com o console do Google Cloud também pode exigir as permissões clientauthconfig.clients.create
e clientauthconfig.clients.getWithSecret
. Essas permissões são concedidas pelo papel de editor do projeto.
Para mais informações sobre como conceder papéis, consulte Como conceder, alterar e revogar acesso.
Como gerenciar o acesso no console do Google Cloud
Para controlar o acesso a um recurso protegido pelo IAP com o Console do Google Cloud, siga o processo para adicionar ou remover acesso.
Adicionar acesso
Acesse a página Identity-Aware Proxy.
Acessar a página "Identity-Aware Proxy"Selecione o recurso que você quer proteger com o IAP. As seguintes seleções de recursos protegem um grupo de recursos definido:
Todos os serviços da Web: todos os recursos do projeto serão protegidos. Isso não é o mesmo que conceder acesso para envolvidos no projeto por meio da página de administrador do IAM. Um usuário com o papel de administrador de políticas do IAP no nível de recurso Todos os serviços da Web só terá permissões para políticas do IAP.
Serviços de back-end: todos os serviços de back-end serão protegidos.
No painel de informações direito, adicione os endereços de e-mail de grupos ou indivíduos a que você quer conceder um papel de gerenciamento de identidade e acesso (IAM, na sigla em inglês) no recurso.
Aplique os papéis da política de acesso ao membro selecionando os seguintes papéis na lista suspensa Selecionar um papel:
Proprietário: concede o mesmo acesso que Administrador de políticas do IAP. Use o papel administrador de políticas do IAP. Esse papel só permite modificar políticas, não concede acesso ao app.
Administrador de políticas do IAP: concede direitos de administrador sobre políticas do IAP.
Usuário do app da Web protegido pelo IAP: concede acesso ao app e a outros recursos HTTPS que usam o IAP.
Avaliador de segurança: concede permissão para visualizar e auditar políticas do IAP.
Quando terminar de adicionar endereços de e-mail e definir papéis, clique em Adicionar.
Remover acesso
- Acesse a página Identity-Aware Proxy.
Acessar a página "Identity-Aware Proxy" - Selecione o recurso que está protegido com o IAP.
- No painel de informações à direita, selecione a seção que corresponde ao papel que você quer remover de um principal.
- Na seção expandida, ao lado de cada nome de usuário ou grupo de que você quer remover o papel, clique em Remover.
- Na caixa de diálogo Remover principal, clique em Remover.
Como gerenciar o acesso por meio da API
O IAM fornece um conjunto padrão de métodos para criar e gerenciar políticas de controle de acesso nos recursos do Google Cloud.
Recursos e permissões
A API do IAP permite que você aplique as permissões do IAM a recursos individuais em um projeto protegido pelo IAP. As permissões do IAM concedidas em um determinado nível se aplicam a todos os níveis abaixo dela. Por exemplo, uma permissão concedida para envolvidos no projeto se aplica a todos os recursos do Google Cloud no projeto. O acesso para envolvidos no projeto e em níveis superiores é gerenciado na página de administrador do IAM, mas exibido na página de administrador do IAP.
Os usuários precisam de certas permissões para acessar um app protegido pelo IAP.
Para conceder essas permissões, os administradores podem usar uma API para atualizar as políticas do IAM. A permissão
iap.webServiceVersions.accessViaIAP
concede ao usuário acesso a um app. Se
você estiver usando o IAP para controlar o acesso a serviços administrativos,
como SSH e RDP, os usuários precisarão da permissão
iap.tunnelInstances.accessViaIAP
.
Cada recurso do IAP tem as próprias permissões getIamPolicy
e setIamPolicy
, que concedem a capacidade de gerenciar as políticas de acesso desse recurso e respectivos filhos.
Para chamar a API do IAM, crie uma chamada com um caminho de URL para um recurso. Veja abaixo um exemplo de chamada que recebe a política do IAM referente a uma versão do serviço de aplicações do App Engine.
https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web/
appengine-APP_ID/services/SERVICE_ID/versions/VERSION_ID:getIamPolicy
A tabela a seguir lista os tipos de recursos compatíveis e as permissões necessárias para chamar a API IAM.
Tipo de recurso | Permissões |
---|---|
Todos os app da Web protegidos pelo IAP no projeto Isso é o mesmo que a caixa de seleção Todos os serviços da Web na página de administrador do IAP. Caminho https://iap.googleapis.com/v1/projects/PROJECT_NUMBER/iap_web |
iap.web.getIamPolicy iap.web.setIamPolicy |
Todos os serviços de back-end no projeto Isso é o mesmo que a caixa de seleção Serviço de back-end na página de administrador do IAP. Caminhos Escopo global: https://iap.googleapis.com/v1/projects/ Escopo regional: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy |
Todas as regra de encaminhamento no projeto Permissões para todas as regras de encaminhamento no projeto. Caminhos Escopo global: https://iap.googleapis.com/v1/projects/ Escopo regional: https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy |
Um app do App Engine Isso é o mesmo que a caixa de seleção App Engine na página de administrador do IAP. Caminho https://iap.googleapis.com/v1/projects/ |
iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy |
Um serviço de back-end do Compute Engine O caminho do serviço de back-end pode especificar o ID do serviço de back-end ou o nome do serviço de back-end. Caminhos Escopo global: https://iap.googleapis.com/v1/projects/ Escopo regional: https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
Uma regra de encaminhamento do Compute Engine Permissões para uma regra de encaminhamento. O caminho da regra de encaminhamento pode especificar o ID ou o nome da regra de encaminhamento. Caminhos Escopo global: https://iap.googleapis.com/v1/projects/ Escopo regional: https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
Um serviço de app do App Engine Caminho https://iap.googleapis.com/v1/projects/ |
iap.webServices.getIamPolicy iap.webServices.setIamPolicy |
An App Engine service version Compute Engine doesn't support versioning. Path https://iap.googleapis.com/v1/projects/ |
iap.webServiceVersions.getIamPolicy iap.webServiceVersions.setIamPolicy |
Todas as instâncias de VM protegidas por IAP no projeto Isso é o mesmo que a caixa de seleção Todos os recursos do túnel na página de administrador do IAP. Caminho https://iap.googleapis.com/v1/projects/ |
iap.tunnel.getIamPolicy iap.tunnel.setIamPolicy |
Uma zona com pelo menos uma instância de VM Isso é o mesmo que uma caixa de seleção de nome de zona na página de administrador do IAP, por exemplo, us-central1-c . Caminho https://iap.googleapis.com/v1/projects/ |
iap.tunnelZones.getIamPolicy iap.tunnelZones.setIamPolicy |
Uma instância de VM individual Caminho https://iap.googleapis.com/v1/projects/ |
iap.tunnelInstances.getIamPolicy iap.tunnelInstances.setIamPolicy |
Uma região que tem pelo menos um grupo de destino, por exemplo, us-central1 Caminho https://iap.googleapis.com/v1/projects/ |
iap.tunnelLocations.getIamPolicy iap.tunnelLocations.setIamPolicy |
Um grupo de destino individual Caminho https://iap.googleapis.com/v1/projects/ |
iap.tunnelDestGroups.getIamPolicy iap.tunnelDestGroups.setIamPolicy |
Papéis
Na tabela abaixo, veja os papéis predefinidos do IAM do IAP com uma lista correspondente de todas as permissões específicas do IAP incluídas em cada um. Para mais informações sobre os papéis do IAM, consulte Como gerenciar papéis e permissões.
Role | Inclui as permissões | Descrição |
---|---|---|
Usuário do app da Web protegido pelo IAP (roles/iap.httpsResourceAccessor ) |
iap.webServiceVersions.accessViaIAP |
Concede acesso aos recursos do App Engine e do Compute Engine. |
Usuário do túnel protegido pelo IAP (roles/iap.tunnelResourceAccessor ) |
iap.tunnelInstances.accessViaIAP iap.tunnelDestGroups.accessViaIAP |
Concede acesso a instâncias de VM protegidas pelo IAP. |
Administrador de políticas do IAP (roles/iap.admin ) |
iap.web.getIamPolicy iap.web.setIamPolicy iap.webTypes.getIamPolicy iap.webTypes.setIamPolicy iap.webServices.getIamPolicy iap.webServices.setIamPolicy iap.webServiceVersions.getIamPolicy iap.webServiceVersions.setIamPolicy iap.tunnel.getIamPolicy iap.tunnel.setIamPolicy iap.tunnelZones.getIamPolicy iap.tunnelZones.setIamPolicy iap.tunnelInstances.getIamPolicy iap.tunnelInstances.setIamPolicy |
Concede os direitos administrativos do IAP para gerenciar as políticas de acesso de recursos do IAP. |
Como gerenciar o acesso com a Google Cloud CLI
Negar acesso
As políticas de negação do Identity and Access Management (IAM) permitem definir proteções no acesso aos recursos do Google Cloud. Para conferir uma lista de cenários em que as políticas de negação são úteis, consulte casos de uso.
É possível criar políticas de negação e incluir todas as permissões do IAP nelas. Para conferir a lista de permissões do IAP que podem ser adicionadas
a uma política de negação, consulte Permissões compatíveis com políticas de negação
e procure iap.googleapis.com
. Embora as políticas de negação possam ser aplicadas a
qualquer permissão do IAP, a eficácia delas está vinculada a um
ponto de vinculação de política de negação.
Algumas permissões do IAP só são eficazes no nível do recurso específico
e não nos descendentes. Por exemplo, iap.organizations.getSettings
dá acesso a getSettings
no nível da organização, e não aos
descendentes dela. Isso significa que os administradores precisam listar explicitamente todas as
permissões granulares relevantes ao criar políticas de negação para negar o acesso em um
ponto de anexo e seus descendentes.
Para uma lista completa dessas permissões granulares, consulte
Permissões compatíveis com políticas de negação.
Todas as permissões no FQDN iap.googleapis.com
e os tipos de recurso
iap.organizations
, iap.folders
, iap.projects
, iap.web
, iap.webTypes
,
iap.webServices
e iap.webServicesVersions
são permissões granulares.
Confira a seguir um exemplo de política de negação do IAM para
negar o acesso à API getSettings
a um principal em uma organização e seus
descendentes.
{
"name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
"uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
"kind": "DenyPolicy",
"displayName": "Only project admins can delete projects.",
"etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
"createTime": "2021-09-07T23:15:35.258319Z",
"updateTime": "2021-09-07T23:15:35.258319Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"iap.googleapis.com/iap.organizations.getSettings",
"iap.googleapis.com/iap.folders.getSettings",
"iap.googleapis.com/iap.projects.getSettings",
"iap.googleapis.com/iap.web.getSettings",
"iap.googleapis.com/iap.webTypes.getSettings",
"iap.googleapis.com/iap.webServices.getSettings",
"iap.googleapis.com/iap.webServicesVersions.getSettings",
],
}
}
]
}
Em vez de especificar todas as permissões granulares, confira abaixo um exemplo da
política de negação do IAM com apenas uma permissão: *.getSettings
.
{
"name": "policies/cloudresourcemanager.googleapis.com%2Forganizations%2F253519172624/denypolicies/testpolicyid",
"uid": "06ccd2eb-d2a5-5dd1-a746-eaf4c6g3f816",
"kind": "DenyPolicy",
"displayName": "Only project admins can delete projects.",
"etag": "MTc1MTkzMjY0MjUyMTExODMxMDQ=",
"createTime": "2021-09-07T23:15:35.258319Z",
"updateTime": "2021-09-07T23:15:35.258319Z",
"rules": [
{
"denyRule": {
"deniedPrincipals": [
"principalSet://goog/public:all"
],
"deniedPermissions": [
"iap.googleapis.com/*.getSettings",
],
}
}
]
}
Confira a seguir algumas maneiras mais simples de criar uma política de negação do IAM sem precisar especificar todas as permissões granulares.
Ação do administrador | Permissão na política de negação |
---|---|
Negar permissões específicas do IAP em todos os tipos de recurso do IAP | *.updateSettings *.getSettings *.setIamPolicy *.getIamPolicy |
Negar todas as permissões do IAP em um tipo de recurso específico | iap.organizations.* iap.folders.* iap.projects.* iap.web.* iap.webTypes.* iap.webServices.* iap.webServicesVersions.* |
Acesso público
Para conceder acesso a um recurso a todos, atribua um papel a um dos seguintes principais:
allAuthenticatedUsers
: qualquer pessoa autenticada com uma Conta do Google ou uma conta de serviço.allUsers
: qualquer pessoa que esteja na Internet, incluindo usuários autenticados e não autenticados. O cabeçalho assinado para a solicitação não terá uma declaraçãosub
ouemail
.
Se o acesso público for concedido, o IAP não gerará registros de auditoria do Cloud para a solicitação.
No momento, as vinculações que concedem acesso público não podem ter uma condição associada a ele.
Por exemplo, uma política que permite a qualquer pessoa acessar um recurso se o caminho da solicitação começar com /public/
é inválida.