Segurança do ambiente de execução
Todas as funções são executadas sobre uma imagem de tempo de execução com controlo de versões no ambiente de execução seguro das funções do Cloud Run. As imagens de tempo de execução contêm bibliotecas do sistema operativo, tempos de execução de linguagem e outros pacotes do sistema. A Google mantém todas as imagens de tempo de execução das funções do Cloud Run, lançando patches de segurança e atualizações de manutenção após um período de testes de estabilidade.
Imagens do tempo de execução
Cada tempo de execução tem uma imagem de tempo de execução associada (também conhecida como imagem de execução) num repositório público no gcr.io
. Para ver uma lista de IDs de tempo de execução e as respetivas imagens de tempo de execução,
consulte tempos de execução.
Identifique a sua imagem de tempo de execução
Pode identificar a imagem de tempo de execução usada para criar a sua função inspecionando os registos de compilação da função.
Nos registos de compilação, pesquise google.run-image
. Isto dá-lhe a entrada de registo do passo de compilação que descreve a versão da imagem do tempo de execução usada para compilar a sua função. Por exemplo, uma entrada de registo para uma função Nodejs pode ter o seguinte aspeto:
{
...
"textPayload": "Step #2 - \"build\": Adding image label google.run-image:
us.gcr.io/serverless-runtimes/google-22-full/runtimes/nodejs20:nodejs20_20241110_20_18_0_RC00
",
...
}
Política de atualizações de segurança
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
.
Defina a política de atualização da sua função
Se estiver a usar funções do Cloud Run (1.ª geração), pode alterar a política de atualização da função incluindo a flag --runtime-update-policy
no comando gcloud deploy
, conforme mostrado aqui:
gcloud functions deploy FUNCTION_NAME --no-gen2 \ --runtime-update-policy=POLICY ...
Substituição:
- FUNCTION_NAME com o nome da sua função
- POLICY com
automatic
ouon-deploy
Inspeccione a política de atualização da sua função
Pode inspecionar a política de atualização da sua função com o seguinte comando:
gcloud functions describe FUNCTION_NAME \
Onde FUNCTION_NAME é o nome da sua função
- As funções com atualizações de segurança automáticas ativadas têm a chave
automaticUpdatePolicy
- As funções que são atualizadas na implementação têm a chave
onDeployUpdatePolicy
Identifique a imagem do tempo de execução usada após uma atualização automática
Quando ativa as atualizações automáticas, o Cloud Run Functions troca a imagem de tempo de execução da sua função por uma revisão mais recente que contenha patches e atualizações de segurança adicionais. Esta alteração aparece nos registos de tempo de execução da sua função.
Nos registos de tempo de execução, a etiqueta runtime_version
indica quando está a ser usada uma nova imagem de tempo de execução na sua função. Uma entrada do registo para uma função Node.js que foi atualizada automaticamente pode ter o seguinte aspeto:
{
...
"labels:" {
runtime_version: nodejs20_20230924_20_6_1_RC00
execution_id: ...
}
...
}