Segurança do ambiente de execução
Cada função é executada em uma imagem de ambiente de execução com controle de versões no ambiente de execução seguro do Cloud Run functions. As imagens do ambiente de execução contêm bibliotecas do sistema operacional, ambientes de execução da linguagem e outros pacotes do sistema. O Google mantém todas as imagens do ambiente de execução do Cloud Run functions, lançando patches de segurança e atualizações de manutenção após um período de testes de estabilidade.
Imagens do ambiente de execução
Cada ambiente de execução tem uma imagem associada (também conhecida como imagem de execução) em um repositório público no Artifact Registry. Para ver uma lista de IDs de ambiente de execução e as respectivas imagens, consulte Ambientes de execução.
Identificar a imagem do ambiente de execução
É possível identificar a imagem de ambiente de execução usada para criar a função inspecionando os registros de criação da função.
Nos registros de criação, pesquise google.run-image
. Isso fornece a entrada de registro da etapa de criação que descreve a versão da imagem do ambiente de execução usada para criar a função. Por exemplo, uma entrada de registro de uma função do Nodejs pode ser assim:
{
...
"textPayload": "Step #2 - \"build\": Adding image label google.run-image:
us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/nodejs22:nodejs20_20230924_20_6_1_RC00",
...
}
Política de atualização de segurança
Você pode escolher uma das seguintes políticas de atualização de segurança:
Atualizações automáticas: (padrão) as atualizações e os patches de segurança no 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 confiabilidade, o ambiente de execução atualizado é lançado para todas as funções, resultando em uma atualização sem inatividade. As atualizações automáticas de segurança estão disponíveis no Cloud Run functions (1a geração) e no Cloud Run functions. Para assumir correções de segurança no nível de linguagem, pode ser necessário recriar funções que usam linguagens compiladas, como Go ou Java.
Atualizações na implantação: as atualizações e os patches de segurança são aplicados aos ambientes de execução somente quando as funções são implantadas ou reimplantadas, a menos que indicado de outra forma. As atualizações sobre a implantação estão disponíveis no Cloud Run functions (1a geração) e no Cloud Run functions.
É possível alterar a política de atualização do ambiente de execução usando a flag
--runtime-update-policy
no comando gcloud deploy
.
Definir a política de atualização da função
É possível alterar a política de atualização da função incluindo a
flag --runtime-update-policy
no comando gcloud deploy
, conforme mostrado abaixo:
gcloud functions deploy FUNCTION_NAME \ --runtime-update-policy=POLICY ...
Substitua:
- FUNCTION_NAME pelo nome da função
- POLICY por
automatic
ouon-deploy
A política padrão para todas as funções é automatic
.
Inspecionar a política de atualização da função
É possível inspecionar a política de atualização da função com o seguinte comando:
gcloud functions describe FUNCTION_NAME \
Em que FUNCTION_NAME é o nome da função
- As funções com atualizações de segurança automáticas ativadas terão a chave
automaticUpdatePolicy
- As funções atualizadas na implantação terão a chave
onDeployUpdatePolicy
Identificar a imagem do ambiente de execução usada após uma atualização automática
Quando você ativa as atualizações automáticas, o Cloud Run functions troca a imagem do ambiente de execução da função por uma revisão mais recente que contém outros patches de segurança e atualizações. Essa alteração aparece nos registros do ambiente de execução da função.
Nos registros do ambiente de execução, o rótulo runtime_version
informa quando uma nova imagem de ambiente de execução está em uso na função. Uma entrada de registro para uma função do Nodejs que foi atualizada automaticamente pode ser assim:
{
...
"labels:" {
runtime_version: nodejs20_20230924_20_6_1_RC00
execution_id: ...
}
...
}
Verificações de segurança no Cloud Run functions
O Cloud Run functions que tem atualizações automáticas ativadas são criadas com base
em uma imagem scratch
. Como resultado, o
contêiner que representa a função no Artifact Registry não terá uma imagem base
e será consideravelmente menor do que as funções que usam atualizações na implantação. A
imagem base é combinada com a imagem da função no ambiente de execução para criar uma função
completa.
É possível usar verificações de segurança para monitorar as imagens base gerenciadas pelo Google que
impulsionam sua função. A imagem base mais recente da função está disponível em
REGION-docker.pkg.dev/serverless-runtimes/STACK/runtimes/RUNTIME_ID
.
Substitua:
- REGION pela região preferencial, por exemplo,
us-central1
. - STACK pela pilha de sistema operacional preferencial, por exemplo,
google-22-full
. - RUNTIME_ID pelo ID do ambiente de execução usado pela função como, por exemplo,
python310
.
Por exemplo, a imagem base mais recente do Node.js 20 usando a pilha google-22-full
,
hospedada em us-central1
seria referenciada com este URL:
us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/nodejs22
Como a imagem agora foi criada com base no scratch
, a imagem armazenada no Artifact Registry
não poderá ser executada diretamente. Se você precisar de uma imagem executável, use a política na implantação.