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 em gcr.io. 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.gcr.io/gae-runtimes/buildpacks/nodejs20/run: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

Ao usar as funções do Cloud Run (1ª geração), é possível alterar a política de atualização da função inserindo a flag --runtime-update-policy no comando gcloud deploy, conforme mostrado aqui:

  gcloud functions deploy FUNCTION_NAME --no-gen2 \
    --runtime-update-policy=POLICY ...

Substitua:

  • FUNCTION_NAME pelo nome da função
  • POLICY por automatic ou on-deploy

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