Descrição geral do design de segurança

Saiba como o Cloud Run implementa as práticas recomendadas de segurança para proteger os seus dados e explore como usar estas funcionalidades para cumprir os seus requisitos de segurança.

Arquitetura

O Cloud Run é executado sobre o Borg no mesmo ambiente em que a Google implementa milhares de milhões de contentores por semana, alojando alguns dos maiores sites do mundo, incluindo o Gmail e o YouTube. Uma vez que os componentes do Cloud Run partilham a mesma infraestrutura, são criados de acordo com as mesmas normas de segurança que outros serviços Google.

Para saber mais sobre a nossa abordagem à segurança, leia o documento técnico Vista geral da segurança da Google.

A arquitetura do Cloud Run contém muitos componentes de infraestrutura diferentes. O diagrama seguinte mostra como estes componentes respondem a pedidos ao seu serviço e chamadas da API Cloud Run Admin:

Ilustração dos componentes da infraestrutura do Cloud Run
Figura 1. Diagrama dos componentes da infraestrutura do Cloud Run.

Pedidos ao seu serviço

Quando é feito um pedido ao seu serviço do Cloud Run através do seu domínio personalizado ou diretamente para o seu URL run.app, o pedido é processado pelos seguintes componentes:

  • Google Front End (GFE): o serviço de infraestrutura global da Google que termina as ligações TLS e aplica proteções contra ataques DoS quando faz um pedido ao URL run.app. O Cloud Run é um serviço regional, pelo que, quando um pedido é acedido através do URL run.app, o GFE encaminha o pedido para o Cloud Run através de um canal encriptado na região adequada.
  • Google Cloud Equilibrador de carga: quando configura o Cloud Load Balancing para processar o seu domínio personalizado, inclui a funcionalidade GFE mencionada anteriormente. Também pode configurar Google Cloud equilibradores de carga para realizar funções adicionais, como a gestão de tráfego e o controlo de acesso.
  • Proxy HTTP: um componente zonal que equilibra a carga dos pedidos HTTP recebidos para as instâncias das suas aplicações em sandbox.
  • Scheduler: seleciona os servidores de apps para alojar instâncias das suas aplicações em sandbox.
  • Servidor de apps: um nó de computação zonal e multiinquilino que cria e gere as caixas de areia que executam as instâncias do contentor de cada aplicação.
  • Sandbox: isola o código do utilizador do sistema e de outros clientes. Saiba mais na secção Segurança informática seguinte.
  • Armazenamento: expõe uma interface de servidor de ficheiros para imagens de contentores importadas de registos de contentores suportados.
  • Servidor de metadados: fornece credenciais e metadados específicos da sandbox.
  • Rede de saída: gere o tráfego de saída iniciado pela sandbox.

Chamadas da Cloud Run Admin API

Quando é feito um pedido à API Admin do Cloud Run, o pedido é processado pelos seguintes componentes:

  • Google Front End (GFE): o serviço de infraestrutura global da Google que termina as ligações TLS e aplica proteções contra ataques DoS.
  • Plano de controlo: valida e escreve as configurações da sua aplicação no armazenamento.
  • Armazenamento de configurações: armazena as configurações da aplicação no Spanner e no Bigtable para acesso por outros componentes, como o servidor de apps, o programador e os elementos de rede.

Segurança de computação

Os componentes do Cloud Run são executados no sistema de gestão de contentores da Google, o Borg. Para os seus contentores, o Cloud Run oferece dois ambientes de execução:

  • Primeira geração: baseada na plataforma de segurança do contentor gVisor, esta opção tem uma pequena base de código, o que oferece uma superfície de ataque mais pequena. Todas as alterações são revistas em termos de segurança e a maioria das alterações são escritas de forma segura para a memória. A proteção adicional é alcançada através da utilização da filtragem de chamadas do sistema do modo de computação segura (seccomp).

  • Segunda geração: com base em microVMs Linux, esta opção oferece mais compatibilidade e desempenho para cargas de trabalho personalizadas. A proteção adicional é alcançada através da utilização da filtragem de chamadas do sistema seccomp e dos espaços de nomes do Linux do Sandbox2.

Ambos os ambientes de execução usam duas camadas de isolamento de processos que consistem numa camada suportada por hardware equivalente a VMs individuais (virtualização x86) e numa camada de kernel de software, conforme mostrado no diagrama seguinte:

Em ambos os ambientes de execução, o contentor do utilizador está isolado de outras cargas de trabalho através de duas camadas de sandbox.
Figura 2. Em ambos os ambientes de execução, o contentor do utilizador está isolado de outras cargas de trabalho através de duas camadas de sandbox.

Se o seu serviço usar infraestrutura de terceiros para proteger contentores, use o ambiente de execução de segunda geração.

Encriptação e armazenamento de dados

As instâncias do Cloud Run não têm estado. A terminação de uma instância rejeita o respetivo estado. Por conseguinte, todas as novas instâncias são iniciadas a partir de um estado limpo.

Se tiver dados com estado, pode gerir os seus dados das seguintes formas:

Além disso, o Cloud Run integra-se com muitos outros Google Cloud sistemas para gerir e aceder aos seus dados das seguintes formas:

Em todas as plataformas Google Cloud, todos os seus dados são encriptados em repouso.

O Cloud Run está em conformidade com as iniciativas ao nível do Google Cloud- para a proteção e a transparência de dados, incluindo a transparência de acesso e a residência de dados.

Segurança de redes

O Cloud Run e todos os outros Google Cloud serviços encriptam todo o tráfego em trânsito. Pode incorporar controlos de saída e entrada nos seus serviços ou tarefas do Cloud Run para adicionar uma camada adicional de restrição. Os administradores da organização também podem aplicar a saída e a entrada definindo políticas da organização.

Tráfego de saída

O tráfego de saída que sai do Cloud Run é tratado como camada de transporte 4 (TCP e UDP).

Por predefinição, o tráfego de saída segue um dos seguintes caminhos ao sair do Cloud Run:

  • O destino é uma rede VPC: o tráfego desloca-se para uma rede VPC ou uma rede VPC partilhada no seu projeto através da saída da VPC direta ou de um conetor do Acesso a VPC sem servidor. O conetor é um recurso regional que se encontra diretamente na rede VPC.
  • O destino de destino não está na rede VPC: o tráfego é encaminhado diretamente para o destino de destino na rede da Google ou na Internet pública.
Diagrama dos componentes da infraestrutura do Cloud Run
Figura 3. O tráfego de saída pode ser encaminhado através de um proxy por um conector para uma rede VPC. Também pode viajar diretamente para uma VPC ou para uma rede não VPC (pré-visualização).

Controlar a saída

Para ter um controlo adicional sobre o tráfego de saída, use a definição de saída da VPC para encaminhar todo o tráfego para a sua rede VPC através da saída direta da VPC ou de conetores.

Depois de estar na rede VPC, pode usar as ferramentas de VPC para gerir o tráfego, por exemplo:

Os administradores da organização também podem aplicar a saída definindo a restrição da lista de definições de saída de VPC permitidas (Cloud Run).

Tráfego de entrada

Ao contrário do tráfego de saída, o tráfego de entrada do Cloud Run está na camada de aplicação 7 (HTTP).

O Cloud Run aceita tráfego de entrada proveniente das seguintes origens:

  • Internet pública: os pedidos são encaminhados diretamente de origens públicas para os seus serviços do Cloud Run com a opção de encaminhar tráfego através de um balanceador de carga HTTP(S) externo.

  • Rede VPC: pode encaminhar o tráfego de uma rede VPC para os serviços do Cloud Run através do acesso privado à Google, do Private Service Connect ou de um balanceador de carga de aplicações interno. O tráfego deste tipo permanece sempre na rede da Google.

  • Google Cloud serviços: o tráfego desloca-se diretamente para o Cloud Run a partir de outros Google Cloud serviços, como o BigQuery ou até mesmo o próprio Cloud Run. Em alguns casos, também pode configurar estes serviços para encaminhar através de uma rede VPC. O tráfego deste tipo permanece sempre na rede da Google.

Diagrama dos componentes da infraestrutura do Cloud Run
Figura 4. Tráfego de entrada (inbound) de rede HTTP de camada 7 para o Cloud Run.

O modelo de segurança de rede do Cloud Run inclui as seguintes propriedades de tráfego de entrada:

  • Direcionar tráfego para o URL run.app predefinido: o URL run.app requer sempre HTTPS para que o tráfego entre no Cloud Run. A infraestrutura de publicação de front-end da Google termina o TLS e, em seguida, encaminha o tráfego para o Cloud Run e para o seu contentor através de um canal encriptado. Pode desativar o URL predefinido.
  • Tráfego para um domínio personalizado associado ao seu Google Cloud balanceador de carga: Para o tráfego HTTPS,os Google Cloud balanceadores de carga internos e externos terminam o TLS e encaminham o tráfego para o Cloud Run e o seu contentor através de um canal encriptado. Google Cloud Os balanceadores de carga também permitem aplicar funcionalidades de segurança adicionais, como o IAP, o Cloud Armor e as políticas SSL.

Para mais informações sobre a configuração do tráfego de rede da VPC para o Cloud Run, consulte o artigo Receba pedidos de redes VPC.

Controlar a entrada

Os controlos de entrada do Cloud Run gerem o tráfego que entra no Cloud Run para garantir que o tráfego provém apenas de origens fidedignas.

Para serviços do Cloud Run que atendem apenas clientes internos, pode configurar a definição "internal" para que apenas o tráfego das seguintes origens internas possa entrar no Cloud Run:

  • Redes VPC no seu projeto ou perímetro dos VPC Service Controls, incluindo serviços do Cloud Run que encaminham todo o respetivo tráfego através da rede VPC.
  • A rede VPC partilhada à qual o serviço do Cloud Run está associado.
  • Alguns Google Cloud serviços, como o BigQuery, que estão no seu projeto ou perímetro dos VPC Service Controls.
  • Tráfego de clientes nas instalações que atravessam a sua rede VPC para alcançar o Cloud Run.

Se estiver a usar um balanceador de carga externo ou interno, pode desativar o URL run.apppredefinido.

Os administradores da organização também podem aplicar a entrada definindo políticas da organização.

Para mais informações sobre o controlo da entrada, consulte o artigo Restringir a entrada para o Cloud Run.

Controlo de acesso

Os controlos de acesso são usados para restringir quem tem acesso aos seus serviços e tarefas do Cloud Run.

Quem pode gerir o seu serviço ou trabalho

Para controlar quem gere o seu serviço ou tarefa do Cloud Run, o Cloud Run usa o IAM para autorizar utilizadores e contas de serviço.

Aos dados a que o seu serviço ou tarefa pode aceder

Para controlar o que as suas cargas de trabalho do Cloud Run podem alcançar através da rede, pode forçar todo o tráfego através da rede VPC e aplicar regras de firewall da VPC, conforme descrito anteriormente na secção Segurança de rede.

Se estiver a usar a saída direta da VPC, pode anexar etiquetas de rede ao recurso do Cloud Run e referenciar as etiquetas de rede na regra da firewall. Se estiver a usar o Acesso a VPC sem servidor, pode aplicar regras de firewall às instâncias do conetor.

Use o IAM para controlar a que recursos o seu serviço ou tarefa do Cloud Run pode aceder. Os serviços e as tarefas usam a conta de serviço predefinida do Compute Engine por predefinição. Para cargas de trabalho confidenciais, use uma conta de serviço dedicada para que possa conceder apenas as autorizações de que a carga de trabalho precisa para realizar o seu trabalho. Saiba mais sobre a utilização da identidade por serviço para gerir uma conta de serviço dedicada. Para obter informações sobre como o Cloud Run lembra os utilizadores de criarem uma conta de serviço dedicada, consulte o artigo Proteja os serviços do Cloud Run com o Recommender.

Quem pode invocar o seu serviço ou executar a sua tarefa

O Cloud Run oferece várias opções diferentes para controlar quem invoca o seu serviço ou executa a sua tarefa.

Controlos de entrada

Para gerir a entrada de serviços do Cloud Run ao nível da rede, consulte a secção Controlar a entrada na secção anterior.

Os trabalhos do Cloud Run não publicam pedidos e, por isso, não usam controlos de entrada quando executam trabalhos.

IAM para o seu serviço

Use a autorização run.routes.invoke para configurar quem pode aceder ao seu serviço do Cloud Run das seguintes formas:

  • Conceda a autorização para selecionar contas de serviço ou grupos para permitir o acesso ao serviço. Todos os pedidos têm de ter um cabeçalho de autorização HTTP que contenha um token de ID do OpenID Connect assinado pela Google para uma das contas de serviço autorizadas.

  • Selecione Permitir acesso público para desativar a verificação do IAM do invocador do Cloud Run e permitir o acesso não autenticado. O Cloud Run realiza uma verificação do IAM em cada pedido quando a verificação do IAM do invocador do Cloud Run está ativada.

Para garantir que apenas os membros da sua organização podem invocar um serviço do Cloud Run, um administrador da organização pode definir a política da organização de partilha restrita por domínio. Os administradores organizacionais também podem desativar serviços específicos do Cloud Run. Selecione Permitir acesso público quando a partilha restrita ao domínio está ativada para criar URLs públicos.

Saiba mais sobre os exemplos de utilização comuns para autenticação e como o Cloud Run usa o controlo de acesso com a IAM.

Ative o Identity-Aware Proxy para um serviço do Cloud Run

Ative o IAP no Cloud Run para proteger o tráfego para um serviço do Cloud Run encaminhando-o para o IAP para autenticação. Também pode usar a federação de identidades da força de trabalho com o IAP no Cloud Run. Saiba como configurar o Identity-Aware Proxy para o Cloud Run.

Funcionalidades de segurança do balanceador de carga para o seu serviço

Se configurou um serviço do Cloud Run para ser um back-end de um Google Cloud equilibrador de carga, proteja este caminho através dos seguintes métodos:

IAM para o seu trabalho

Use a autorização run.jobs.run para configurar quem pode executar a sua tarefa do Cloud Run das seguintes formas:

  • Conceda a autorização a contas de serviço ou grupos selecionados para permitir o acesso à tarefa. Se a tarefa for acionada por outro serviço, como o Cloud Scheduler, a conta de serviço usada tem de ter a autorização run.jobs.run na tarefa.

  • Conceder autorização ao utilizador com sessão iniciada para executar uma tarefa a partir da consola Google Cloud. Se a tarefa for acionada por outro serviço, como o Cloud Scheduler, a conta de serviço ou o grupo usado tem de ter a autorização run.jobs.run na tarefa.

Para garantir que apenas os membros da sua organização podem executar uma tarefa do Cloud Run, um administrador da organização pode definir a restrição de partilha restrita ao domínio. Os administradores da organização também podem desativar tarefas específicas do Cloud Run.

VPC Service Controls

Os seus serviços do Cloud Run podem fazer parte de um perímetro dos VPC Service Controls, para que possa usar os VPC Service Controls para controlar o acesso e mitigar o risco de exfiltração. Saiba mais sobre a utilização dos VPC Service Controls.

Segurança da cadeia de abastecimento

Imagens base geridas por buildpacks do Google Cloud

Os serviços implementados a partir do código fonte através dos buildpacks do Google Cloud são criados com imagens base fornecidas pela Google. A Google mantém estas imagens base e fornece patches de rotina semanalmente. Em situações de emergência que envolvam vulnerabilidades de segurança críticas, podemos disponibilizar patches em poucas horas.

Segurança da cadeia de abastecimento interna do Cloud Run

Como é executado no Borg, o Cloud Run implementa toda a segurança da cadeia de fornecimento que é padrão em todos os serviços Google, como o Gmail e o YouTube. Leia mais acerca das práticas da cadeia de aprovisionamento interna da Google nos documentos técnicos BeyondProd e Binary Authorization for Borg.

Autorização binária

O Cloud Run tem suporte incorporado para a autorização binária para garantir que apenas as imagens de contentores fidedignas são implementadas no Cloud Run. Leia mais em Configuração geral do Cloud Run.

Estatísticas de segurança da cadeia de abastecimento de software

Os administradores da nuvem podem ver informações de segurança sobre a cadeia de fornecimento dos contentores implementados diretamente a partir de um painel na consola. Google CloudLeia mais em Veja estatísticas de segurança da cadeia de abastecimento de software.

Segurança do ambiente de execução

O Cloud Run suporta atualizações automáticas de imagens de base com contentores compatíveis. As atualizações de segurança são aplicadas sem tempo de inatividade no serviço através da execução de uma nova base na imagem base do contentor.

Os serviços implementados a partir da origem, que incluem o Cloud Run, usam os buildpacks do Google Cloud e são compatíveis com atualizações de segurança automáticas.

Os serviços com atualizações de segurança automáticas ativadas são implementados através de imagens base fornecidas pela Google. A Google mantém estas imagens base e fornece patches de rotina após um período de testes de estabilidade. Em situações de emergência que envolvam vulnerabilidades de segurança críticas, podemos disponibilizar patches em poucas horas.

Para saber mais sobre as atualizações de segurança do ambiente de execução, veja como configurar atualizações de segurança.

O que se segue?

Para ver um exemplo completo de como configurar a rede, consulte o guia de rede sem servidor do Cloud Run.