Visão geral do Access Context Manager

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 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.

Você pode configurar e aplicar políticas do Access Context Manager nos seguintes componentes da solução BeyondCorp Enterprise:

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. Esse cenário resulta em mais vetores de ataque que não sã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 ser considerado seguro.

O Access Context Manager permite reduzir o tamanho da rede privilegiada e mudar para um modelo em que os endpoints não têm autoridade de 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.

É possível criar uma política de acesso no contexto de uma organização e usá-la em qualquer lugar da organização. Para delegar a administração de uma política de acesso, crie uma política de acesso com escopo e defina o escopo dela no nível da pasta ou do projeto. O administrador delegado a quem a política com escopo é atribuída pode gerenciar apenas a política de acesso com escopo, e não a política de acesso no nível da organização.

Uma política de acesso é versionada usando um etag. Você pode usar etag para direcionar alterações à política de acesso, como modificações em níveis de acesso, para uma versão específica da política. Se várias origens alterarem sua política de acesso, o uso do campo etag da ferramenta de linha de comando gcloud e das chamadas de API vai garantir que não ocorram conflitos e substituições não intencionais.

Para saber como criar políticas de acesso, consulte Como 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 padrão do IAM.

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 são combinados como uma operação AND (todos precisam ser verdadeiros) ou uma operação NOR (nenhum precisa ser verdadeiro) para determinar se a condição foi atendida.

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 permitidos é especificado na forma de um bloco de roteamento entre domínios sem classe (CIDR, na sigla em inglês), que permite um controle simples, mas 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.

É possível criar e gerenciar níveis de acesso somente para identidade com a ferramenta de linha de comando gcloud, mas não com o console do Google Cloud.

Para começar a criar um nível de acesso básico, consulte Criar um nível de acesso para o Access Context Manager.

Para informações sobre como criar um nível de acesso que permita o acesso com base no contexto de uma solicitação, consulte Criar um nível de acesso personalizado.

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, talvez você precise que uma solicitação venha da rede corporativa e de um dispositivo com um 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