Proteção de funções do Cloud

Esta página fornece uma visão geral de alto nível das maneiras de controlar as interações usando seus recursos do Cloud Functions.

Controle de acesso

Há duas abordagens para controlar o acesso do Cloud Functions:

Como proteger o acesso com identidade

Uma maneira de controlar o acesso a uma função é exigir que a entidade solicitante se identifique usando uma credencial. Uma credencial é um "nome" de algum tipo, protegido por um secret que a entidade conhece ou tem acesso, como uma senha ou um dongle de hardware. Por padrão, as funções são implantadas como particular e exigem essa credencial, embora seja possível implantar uma função pública, ou seja, não exigir um.

A primeira etapa do processo é validar a credencial para garantir que o solicitante seja quem diz ser, que apresente a combinação correta de nome e secreto. Essa etapa é chamada (Authentication).

Depois que a identidade do requerente for autenticada, o nível de acesso, as permissões concedidas, poderão ser avaliadas. Essa etapa é chamada (Authorization).

Autenticação

O Cloud Functions é compatível com dois tipos diferentes de identidades, que também são chamadas de principais:

  • Contas de serviço: são contas especiais que servem como identidade de uma pessoa, como uma função, um aplicativo ou uma VM. É uma maneira de autenticar essas pessoas.
  • Contas de usuário: elas representam pessoas, sejam proprietários de contas individuais do Google ou como parte de uma entidade controlada pelo Google, como um Grupo do Google.

Para contas de serviço e contas de usuário, a parte do nome da credencial geralmente é um endereço de e-mail associado à conta. O secret para uma conta de usuário geralmente é uma senha e, para uma conta de serviço, geralmente é a chave privada do par de chaves que é criado com a conta.

Porém, as próprias senhas de usuário e chaves da conta de serviço são muito eficientes: podem oferecer acesso amplo a dados e funcionalidades e permanecem eficazes até serem revogadas ou alteradas ativamente. Portanto, para limitar os possíveis danos que podem ocorrer se a credencial vazar, no Google Cloud essa credencial principal é substituída por uma credencial de curto prazo baseada nela, um token, que tem vida útil limitada e é criada imediatamente como parte da sequência de solicitação; O token é transmitido com a solicitação e serve para autenticar a conta com segurança.

Há dois tipos de tokens usados no Cloud Functions: tokens de acesso e tokens de ID. Os tokens de acesso geralmente são usados para autenticar chamadas de API, e os tokens de ID são usados para autenticar chamadas a códigos criados pelo desenvolvedor, por exemplo, se uma função chama outra. Os tokens são criados com o framework OAuth 2 e a extensão dele, Open Identity Connect, mas a sequência é complexa e propensa a erros, e o uso de Bibliotecas de cliente do Cloud para gerenciar o processo é altamente recomendável.

Autorização

Depois que a identidade da entidade solicitante for confirmada, o que o solicitante pode fazer precisa ser avaliado. Essa avaliação se baseia em quais permissões a conta autenticada recebeu quando foi configurada. O Cloud Functions usa o gerenciamento de identidade e acesso (IAM) para fazer isso. Papéis, que são conjuntos de permissões individuais agrupados por conveniência, são atribuídos à conta diretamente ou por uma configuração chamada de política. Cada permissão individual no conjunto de papéis geralmente corresponde a uma única chamada da API REST exposta pelo serviço solicitado. Para mais informações sobre esse processo, consulte Como autorizar o acesso por meio do IAM.

Controle de acesso baseado em rede

Você também pode limitar o acesso especificando as configurações de rede para funções individuais. Isso permite um controle refinado da entrada e saída de rede para e de suas funções.

Isolamento e sandbox

Internamente, as instâncias de função são isoladas umas das outras usando a plataforma de sandbox gVisor. Por concepção, uma função não pode acessar os ambientes operacionais de outras funções.