Visão geral do Confidential Space


O Confidential Space oferece um ambiente isolado para operar dados sensíveis de várias partes, para que os proprietários possam manter a confidencialidade. Esses dados podem incluir informações de identificação pessoal (PII), informações protegidas de saúde (PHI), propriedade intelectual, secrets criptográficos, modelos de aprendizado de máquina (ML) ou outros.

Você pode usar o Confidential Space para operar dados sensíveis que só ficam visíveis para os proprietários originais e uma carga de trabalho mutuamente acordada. Outra opção é usar o Confidential Space 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 tratados.

O Confidential Space usa um ambiente de execução confiável (TEE) que pode ser usado para liberar seus secrets somente 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 vindos de um operador.

Para saber mais 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 para processar os recursos protegidos. Ele é executado sobre uma imagem do Confidential Space, um SO reforçado baseado no Container-Optimized OS. Isso, por sua vez, é executado em uma VM confidencial, 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 protegidos por um sistema de autenticação e autorização. Se os recursos estiverem em Google Cloud, eles poderão 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 em Google Cloud (por exemplo, em um ambiente local ou em outra nuvem), eles poderão ser qualquer recurso.

Funções 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: as pessoas ou organizações proprietárias dos recursos protegidos que estão sendo 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 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 a função 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 em contêineres, por exemplo, usando o Docker, e fazem upload da imagem para um repositório como 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 APIGoogle Cloud que funcione 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 a máxima segurança, o Confidential Space é compatível com um modelo de confiança em que os colaboradores de dados, os autores de carga de trabalho e os 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 particulares de maneira confidencial. Em geral, a configuração de um Confidential Space pode ser semelhante ao processo a seguir:

  1. Vários colaboradores de dados armazenam dados confidenciais criptografados em projetos isolados Google Cloud próprios, geralmente em organizações diferentes. Eles querem comparar e processar esses dados sem revelá-los uns aos outros 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 simulados e não confidenciais para uma carga de trabalho de teste operar. Esses dados podem ser arquivos diferentes ou estar em um lugar diferente, como um bucket separado do Cloud Storage.

  3. Os colaboradores de dados criam um pool de identidade da carga de trabalho (WIP). Mais tarde, uma carga de trabalho em execução em um projeto separado e isolado do operador de carga de trabalho poderá usar esse WIP para acessar os dados confidenciais dos colaboradores.

  4. O autor da carga de trabalho escreve o 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 em contêineres com o Docker e fazem upload dela 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 onde os dados confidenciais criptografados dos colaboradores de dados 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 será anexada a uma VM confidencial que executa a carga de trabalho.

  6. Os colaboradores de dados adicionam um provedor aos pools de identidades de carga de trabalho. Eles adicionam detalhes ao provedor, como o serviço de atestado que precisa ser usado, mapeamentos de atributos para criar um rastreamento de auditoria em registros e condições de atributos. Esses detalhes verificam as asserções feitas pela imagem do Confidential Space, o contêiner de carga de trabalho e a instância de VM de carga de trabalho. Se a carga de trabalho passar nessa verificação, ela poderá acessar e descriptografar os dados confidenciais.

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

    Depois que os atestados da VM são verificados e a carga de trabalho atende às condições dos colaboradores de dados, a conta de serviço anexada à VM pode acessar e processar os dados confidenciais e gerar 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 primeiro em dados não confidenciais.

  9. Todas as partes assinam 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, Intel TDX ou Intel TDX com NVIDIA Confidential Computing (Prévia) como 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