Visão geral do Confidential Space


O Confidential Space oferece um ambiente isolado para operar com dados sensíveis, enquanto os proprietários desses dados mantêm a confidencialidade. Os dados sensíveis podem incluir informações de identificação pessoal (PII), informações protegidas de saúde (PHI), propriedade intelectual, segredos criptográficos, modelos de aprendizado de máquina (ML) ou outros.

Você pode usar o Confidential Space para operar em dados sensíveis que só são visíveis para os proprietários originais e uma carga de trabalho mutuamente acordada. Como alternativa, você pode usá-lo para oferecer aos clientes finais uma privacidade de dados mais forte, já que o operador ou proprietário de um ambiente do Confidential Space não pode acessar os dados que estão sendo processados.

O Confidential Space usa um ambiente de execução confiável (TEE) que pode ser usado para liberar seus segredos apenas para cargas de trabalho autorizadas. Um processo de atestado e uma imagem do SO reforçada ajudam a proteger a carga de trabalho e os dados que ela processa de um operador.

Para mais detalhes sobre os casos de uso e o modelo de segurança do Confidential Space, consulte Visão geral da segurança do Confidential Space.

Componentes do Confidential Space

Um sistema de Confidential Space tem três componentes principais:

  • Uma carga de trabalho: uma imagem conteinerizada que contém código que processa os recursos protegidos. Isso é executado sobre uma imagem do Confidential Space, um SO reforçado baseado no Container-Optimized OS. Isso é executado em uma VM confidencial AMD SEV ou Intel TDX (pré-lançamento), um TEE baseado na nuvem que oferece isolamento de hardware e recursos de atestado remoto. A carga de trabalho geralmente está localizada em um projeto separado dos recursos protegidos.

  • O serviço de atestado: um verificador de atestado remoto que retorna evidências de atestado na forma de tokens do OpenID Connect (OIDC). Os tokens contêm atributos de identificação para a carga de trabalho. O serviço de atestado é executado na mesma região em que a carga de trabalho está sendo executada.

  • Recursos protegidos: recursos gerenciados que são protegidos por um sistema de autenticação e autorização. Se os recursos estiverem no Google Cloud, eles podem ser recursos de nuvem gerenciados, como chaves do Cloud Key Management Service (Cloud KMS) ou buckets do Cloud Storage. Se os recursos não estiverem no Google Cloud (por exemplo, em um ambiente local ou em outra nuvem), eles podem ser qualquer recurso.

Papéis do Confidential Space

Os componentes de um sistema do Confidential Space são gerenciados por pessoas com três funções distintas:

  • Colaboradores de dados: pessoas ou organizações que são proprietárias dos recursos protegidos operados pela carga de trabalho. Os colaboradores de dados podem acessar os próprios dados, definir permissões neles e, dependendo da saída da carga de trabalho, acessar os resultados com base nesses dados.

    Os colaboradores de dados não podem acessar os dados uns dos outros nem modificar o código da carga de trabalho.

    Consulte Criar e conceder acesso a recursos confidenciais para saber mais sobre o papel dos colaboradores de dados.

  • Autor da carga de trabalho: a pessoa que cria o aplicativo que acessa e processa os dados confidenciais. Eles adicionam o aplicativo a uma imagem conteinerizada usando o Docker e fazem o upload dela para o Artifact Registry.

    O autor da carga de trabalho não tem acesso aos dados ou aos resultados e não pode controlar o acesso a eles.

    Consulte Criar e personalizar cargas de trabalho para saber mais sobre a função do autor da carga de trabalho.

  • Operador de carga de trabalho: a pessoa que executa a carga de trabalho. O operador de carga de trabalho normalmente tem privilégios administrativos totais no projeto em que executa a carga de trabalho. Por exemplo, eles podem gerenciar recursos no projeto, como instâncias do Compute Engine, discos e regras de rede, e interagir com qualquer API do Google Cloud que atue neles.

    O operador de carga de trabalho não tem acesso aos dados e não pode controlar o acesso a eles. Ele não pode influenciar ou modificar o código da carga de trabalho ou o ambiente de execução.

    Consulte Implantar cargas de trabalho para saber mais sobre a função do operador de carga de trabalho.

Uma pessoa pode assumir uma ou mais dessas funções. Para maior segurança, o Confidential Space oferece suporte a um modelo de confiança em que colaboradores de dados, autores de carga de trabalho e operadores de carga de trabalho são partes separadas e mutuamente não confiáveis. Todas as funções precisam colaborar entre si para conseguir os resultados necessários.

Exemplo de fluxo do Confidential Space

O Confidential Space usa vários serviços do Google Cloud para ajudar a operar informações privadas de forma confidencial. Em geral, a configuração de um Confidential Space pode ser semelhante ao seguinte processo:

  1. Vários colaboradores de dados armazenam dados confidenciais criptografados nos próprios projetos isolados do Google Cloud , geralmente em organizações diferentes. Eles querem comparar e processar esses dados sem revelar um ao outro ou a terceiros. Os dados criptografados podem estar no Cloud Storage, no BigQuery ou em outro serviço.

  2. Os colaboradores de dados criam dados fictícios e não confidenciais para que uma carga de trabalho de teste funcione. Esses dados podem ser arquivos diferentes ou estar em um local diferente, como um bucket do Cloud Storage separado.

  3. Os colaboradores de dados criam uma conta de serviço nos projetos que pode descriptografar os dados. Elas conectam essas contas de serviço a um pool de identidade da carga de trabalho (WIP). Mais tarde, uma carga de trabalho em execução em um projeto separado e isolado de um operador de carga de trabalho pode usar esse WIP para falsificar as contas de serviço de descriptografia, se elas atenderem a determinadas condições.

  4. O autor da carga de trabalho escreve um código para processar os dados confidenciais. Em um projeto separado dos colaboradores de dados e do operador de carga de trabalho, eles criam uma imagem de contêiner com o Docker e a enviariam para o Artifact Registry.

  5. O operador de carga de trabalho cria uma conta de serviço em um projeto isolado que tem acesso de leitura ao local em que os dados confidenciais criptografados dos colaboradores são armazenados e acesso de gravação a algum lugar (por exemplo, um bucket do Cloud Storage) para gerar o resultado da operação nos dados descriptografados. Mais tarde, essa conta de serviço é anexada a uma VM confidencial que executa a carga de trabalho.

  6. Os colaboradores de dados adicionam o verificador de atestado do Confidential Space como um provedor aos pools de identidade da carga de trabalho. Eles também adicionam condições de atributo ao provedor que a carga de trabalho precisa transmitir para poder acessar e descriptografar os dados. Essas condições incluem a verificação dos atestados da VM de carga de trabalho, o resumo de imagem da carga de trabalho, se as variáveis de ambiente foram definidas e muito mais. Para mais informações, consulte Afirmações de atestado.

  7. A carga de trabalho é testada nos dados não confidenciais iniciando uma VM confidencial no projeto do operador de carga de trabalho. A VM é baseada em uma versão de depuração da imagem do Confidential Space, que carrega a carga de trabalho conteinerizada.

    Depois que os atestados da VM forem verificados e a carga de trabalho passar pelas condições dos colaboradores de dados, a conta de serviço anexada à VM poderá imitar as contas de serviço de descriptografia. As contas de serviço de colaborador de dados transmitem os dados descriptografados para a conta de serviço da carga de trabalho, que os processa e gera um resultado.

  8. Depois que o monitoramento e a depuração forem concluídos, a carga de trabalho será atualizada para uso em produção. Os colaboradores de dados atualizam e bloqueiam ainda mais os provedores de identidade da carga de trabalho, se necessário, e podem optar por testar a carga de trabalho de produção em dados não confidenciais primeiro.

  9. Todas as partes aprovam a carga de trabalho de produção, e ela está pronta para começar a trabalhar com dados confidenciais.

Requisitos

O Confidential Space exige o uso da VM confidencial para funcionar. As instâncias de VM confidenciais precisam usar AMD SEV ou Intel TDX (Pré-lançamento) como a tecnologia de computação confidencial. Consulte Configurações compatíveis para saber mais sobre as opções de configuração de hardware e em quais locais as instâncias de VM confidencial podem ser criadas.

A seguir