Visão geral

O Access Context Manager permite que os administradores da organização do Google Cloud definam um controle de acesso refinado e baseado em atributos para projetos e recursos no Google Cloud.

Os administradores primeiro definem uma política de acesso, que é um contêiner em toda a organização para níveis de acesso e perímetros de serviço.

Os níveis de acesso descrevem os requisitos necessários para que as solicitações sejam atendidas. Por exemplo:

  • Tipo de dispositivo e sistema operacional
  • Endereço IP
  • Identidade do usuário

Os perímetros de serviço definem sandboxes de recursos que podem trocar dados livremente dentro do perímetro, mas não têm permissão para exportar dados para fora dele. O Access Context Manager não é responsável pela aplicação de políticas. Sua finalidade é descrever as regras desejadas. A política é configurada e aplicada em vários pontos, como os VPC Service Controls. Veja mais sobre esses serviços nos respectivos guias do usuário.

Por que o Access Context Manager

Muitas empresas dependem de um modelo de segurança de perímetro, por exemplo, firewalls, para proteger recursos internos. Esse modelo é semelhante a um castelo medieval: uma fortaleza com muralhas espessas, cercada por um fosso, com um único ponto de entrada e saída fortemente vigiado. Qualquer coisa que esteja do lado de fora é considerada perigosa e tudo o que estiver do lado de dentro é confiável.

Os firewalls e o modelo de segurança de perímetro funcionarão bem se houver um limite preciso em torno de usuários e serviços específicos. No entanto, se uma força de trabalho for móvel, a variedade de dispositivos aumentará à medida que os usuários trouxerem os próprios dispositivos deles (BYOD, sigla em inglês) e utilizarem serviços baseados em nuvem. Isso resulta em outros vetores de ataque não considerados pelo modelo de perímetro. O perímetro não é mais apenas o local físico da empresa, e o que está dentro não pode mais ser considerado seguro.

Com o Access Context Manager, é possível reduzir o tamanho da rede privilegiada e passar para um modelo em que os endpoints não são encarregados da autoridade do ambiente com base na rede. Em vez disso, é possível conceder acesso com base no contexto da solicitação, como tipo de dispositivo, identidade do usuário e muito mais, enquanto ainda verifica o acesso a redes corporativas, quando necessário.

O Access Context Manager é parte integrante do esforço da BeyondCorp no Google. Para saber mais, veja BeyondCorp.

Políticas de acesso

Uma política de acesso é um contêiner para todos os seus recursos do Access Context Manager, como níveis de acesso e perímetros de serviço.

O Access Context Manager é um recurso de toda a organização. É criada uma política de acesso no contexto de um projeto para fins de cota, mas essa política pode ser usada em qualquer lugar da organização, não apenas nesse projeto.

Uma política de acesso é versionada usando um etag. Isso permite que você direcione alterações à sua política de acesso, como modificações nos níveis de acesso, a uma versão específica da política. Se sua política de acesso estiver sendo alterada por várias fontes, o uso do campo etag para os comandos gcloud do Access Context Manager e chamadas de API pode garantir que nenhuma alteração seja substituída inesperadamente e que não sejam introduzidos conflitos não intencionais.

Veja o Guia de início rápido para aprender a criar uma política de acesso.

Níveis de acesso

Os níveis de acesso são usados para permitir o acesso a recursos com base em informações contextuais sobre a solicitação. Usando níveis de acesso, é possível começar a organizar níveis de confiança. Por exemplo, é possível criar um nível de acesso chamado High_Level que permitirá solicitações de um pequeno grupo de indivíduos com privilégios altos. Também é possível identificar um grupo mais geral para confiar, como um intervalo de IP de onde você quer permitir solicitações. Nesse caso, é possível criar um nível de acesso chamado Medium_Level para permitir essas solicitações.

Depois de definir os níveis de acesso, os serviços de aplicação podem usá-los para determinar se uma solicitação será atendida. Por exemplo, você pode especificar que, enquanto muitos recursos estão disponíveis para "Medium_Trust", certos recursos mais confidenciais exigem o nível "High_Trust". Essas verificações são aplicadas além da política de gerenciamento de identidade e acesso padrão.

Os níveis de acesso são personalizáveis. Os níveis de acesso High_Trust e Medium_Trust são exemplos. É possível especificar vários níveis de acesso como parte de uma política de acesso.

O Access Context Manager oferece duas maneiras de definir níveis de acesso: básico e personalizado.

Um nível de acesso básico é um conjunto de condições usadas para testar solicitações. As condições são um grupo de atributos que você quer testar, como tipo de dispositivo, endereço IP ou identidade do usuário. Os atributos de nível de acesso representam as informações contextuais sobre uma solicitação.

Os níveis de acesso personalizados são criados com um subconjunto do Common Expression Language. Além do contexto de solicitação usado nos níveis básicos de acesso, também é possível usar níveis de acesso personalizados para permitir solicitações com base em dados de serviços de terceiros. Para mais informações, consulte Níveis de acesso personalizados.

Endereço IP

É possível conceder um nível de acesso com base no endereço IP da solicitação de origem. O intervalo de IPs a permitir é especificado na forma de um bloco de roteamento entre domínios sem classe (CIDR, sigla em inglês), que permite um controle simples, porém, detalhado, sobre os IPs permitidos.

Um único nível de acesso pode conter vários intervalos de IP.

Consulte Como criar um nível de acesso para rede corporativa para aprender a criar um nível de acesso que permita acesso somente a um intervalo especificado de endereços IP (por exemplo, aqueles dentro de uma rede corporativa).

Tipo de dispositivo

O Access Context Manager usa a verificação do endpoint para coletar informações sobre os dispositivos do usuário, incluindo sistema operacional e versão. É possível conceder um nível de acesso com base nesses dados. Por exemplo, é possível conceder um nível de acesso mais abrangente a dispositivos que executam a versão mais recente do sistema operacional principal implantado na sua empresa.

Para mais informações sobre como conceder um nível de acesso a determinados dispositivos, leia Como criar um nível de acesso para dispositivos do usuário.

Identidade do usuário

Em alguns cenários, é possível conceder um nível de acesso a entidades específicas. Nesse caso, a identidade do chamador determina se a condição é atendida.

Esse cenário geralmente é usado em conjunto com contas de serviço e com o VPC Service Controls. Por exemplo, para ativar um Cloud Function para acessar dados protegidos pelos VPC Service Controls.

Os níveis de acesso somente de identidade só podem ser criados e gerenciados com a ferramenta de linha de comando gcloud, não usando o Console do Google Cloud.

Aprenda a trabalhar com identidades e níveis de acesso em Como incluir identidades em níveis de acesso com redes.

Como combinar condições

Um único nível de acesso pode conter várias condições. As condições podem ser avaliadas usando o operador AND ou OR. Especifique o modo ao criar ou atualizar um nível de acesso.

O caso AND é a opção mais estrita (e padrão). E apenas concederá o nível de acesso se todas as condições forem cumpridas. Por exemplo, é possível exigir que uma solicitação venha de dentro da rede corporativa e de um dispositivo que esteja executando o sistema operacional mais recente.

OR é uma opção menos restritiva. E apenas requer que uma das muitas condições seja verdadeira. Às vezes, isso é valioso ao lidar com identidades de usuários. Por exemplo, para excluir entidades específicas (como Contas de serviço) dos requisitos normais.

Condições de aninhamento

As condições podem ser aninhadas de maneira que uma dependa da outra. Por exemplo, se você tiver dois níveis de acesso, de confiança "Média" e "Alta", será possível definir os requisitos da "Alta" para a "Média", além de outras condições.

As condições de aninhamento podem tornar o gerenciamento de níveis de acesso mais conveniente. Por exemplo, imagine que seu nível de acesso mais abrangente contém uma versão mínima do sistema operacional e você define os níveis mais restritivos para depender dele. Se você atualizar a versão mínima no futuro, só precisará atualizar uma única condição, em vez de cada nível de acesso na política.

Saiba mais