Proteja a sua função do Cloud Run
Esta página oferece uma vista geral de nível superior das formas como pode controlar as interações com os recursos das funções do Cloud Run.
Controlo de acesso
Existem duas abordagens para controlar o acesso às funções do Cloud Run:
Proteger o acesso com a identidade
Uma forma de controlar o acesso a uma função é exigir que a entidade solicitante se identifique através de uma credencial. Uma credencial é um "nome" de algum tipo, protegido por um segredo que a entidade conhece ou ao qual tem acesso, como uma palavra-passe ou um dongle de hardware. Por predefinição, as funções são implementadas como privadas e requerem uma credencial desse tipo, embora seja possível implementar uma função como pública, ou seja, sem precisar de uma.
O primeiro passo no processo é validar a credencial para garantir que
o requerente é quem diz ser e que apresenta a combinação certa de nome e segredo. Este passo chama-se (Authentication
).
Depois de a identidade do requerente ser autenticada, é possível avaliar o respetivo nível de acesso e as autorizações que lhe foram concedidas. Este passo
é denominado (Authorization
).
Autenticação
As funções do Cloud Run suportam dois tipos diferentes de identidades, que também são denominadas principais:
- Contas de serviço: estas são contas especiais que servem como identidade de uma entidade que não é uma pessoa, como uma função, uma aplicação ou uma VM. Dão-lhe uma forma de autenticar estas entidades não humanas.
- Contas de utilizador: estas contas representam pessoas, quer como titulares de contas Google individuais ou como parte de uma entidade controlada pela Google, como um Grupo Google.
Tanto para as contas de serviço como para as contas de utilizador, a parte do nome da credencial é normalmente um endereço de email associado à conta. O segredo de uma conta de utilizador é normalmente uma palavra-passe e, para uma conta de serviço, é normalmente a chave privada do par de chaves que é criado juntamente com a conta.
No entanto, as palavras-passe dos utilizadores e as chaves das contas de serviço são muito poderosas: podem fornecer um acesso abrangente a dados e funcionalidades, e permanecem eficazes até serem ativamente revogadas ou alteradas. Assim, para limitar os potenciais danos que podem ocorrer se a credencial for divulgada, esta credencial principal é substituída por uma credencial de curto prazo baseada na mesma, um token, que tem um tempo de vida limitado e é criado rapidamente como parte da sequência de pedidos. Google Cloud O token é transmitido com o pedido e serve para autenticar a conta em segurança.
Existem dois tipos de tokens usados nas funções do Cloud Run: tokens de acesso e tokens de ID. Normalmente, as chaves de acesso são usadas para autenticar chamadas de API e as chaves de identificação são usadas para autenticar chamadas para código criado pelo programador, por exemplo, se uma função chamar outra função. Os tokens são criados através da framework OAuth 2 e da respetiva extensão, Open Identity Connect, mas a sequência é complexa e propensa a erros, e a utilização das bibliotecas de cliente da nuvem para gerir o processo é altamente recomendada.
Autorização
Assim que a identidade da entidade solicitante for confirmada, é necessário avaliar o que o solicitante tem autorização para fazer. Esta avaliação baseia-se nas autorizações concedidas à conta autenticada quando foi configurada. As funções do Cloud Run usam a gestão de identidade e de acesso (IAM) para o fazer. As funções, que são conjuntos de autorizações individuais agrupadas para maior conveniência, são atribuídas à conta, diretamente ou através de uma configuração denominada política. Normalmente, cada autorização individual no conjunto de funções corresponde a uma única chamada da API REST exposta pelo serviço pedido. Para mais informações sobre este processo, consulte o artigo Autorizar o acesso através do IAM.
Controlo de acesso baseado em rede
Também pode limitar o acesso especificando definições de rede para funções individuais. Isto permite um controlo preciso sobre a entrada e a saída de rede para e a partir das suas funções.
Isolamento e sandboxing
Internamente, as instâncias de funções estão isoladas umas das outras através da plataforma de sandbox gVisor. Por conceção, uma função não pode aceder aos ambientes de funcionamento de outras funções.
Atualizações do ambiente de execução
A Google disponibiliza patches de segurança e atualizações de manutenção após um período de testes de estabilidade. As funções do Cloud Run podem aplicar atualizações a outros aspetos do ambiente de execução, como o sistema operativo ou os pacotes incluídos. Estas atualizações ajudam a manter o ambiente de execução da sua função seguro.
Atualizações de segurança das funções do Cloud Run
Pode escolher uma das seguintes políticas de atualização de segurança:
Atualizações automáticas (predefinição): as atualizações e os patches de segurança do ambiente de execução são publicados em novas versões da imagem do ambiente de execução. Após um período de testes de estabilidade e fiabilidade, o tempo de execução atualizado é implementado em todas as funções, o que resulta numa atualização sem tempo de inatividade. As atualizações de segurança automáticas estão disponíveis com as funções do Cloud Run (1.ª geração) e as funções do Cloud Run. Para implementar correções de segurança ao nível do idioma, pode ter de reconstruir funções que usam idiomas compilados, como Go ou Java.
Nas atualizações de implementação: as atualizações e os patches de segurança são aplicados aos tempos de execução apenas quando as funções são implementadas ou reimplementadas, salvo indicação em contrário. As atualizações sobre a implementação estão disponíveis nas funções do Cloud Run (1.ª geração) e nas funções do Cloud Run.
Pode alterar a política de atualização de tempo de execução através da flag --runtime-update-policy
no comando gcloud functions deploy
.
Para saber mais sobre as atualizações de segurança do ambiente de execução, consulte as políticas de atualização de segurança.