Chaves de encriptação geridas do cliente

Por predefinição, as aplicações de IA encriptam o conteúdo do cliente em repouso. As aplicações de IA processam a encriptação por si, sem necessidade de ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.

Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEKs) no Cloud KMS com serviços integrados com CMEKs, incluindo as aplicações de IA. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite monitorizar a utilização das chaves, ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.

Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos das Aplicações de IA é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).

Limitações do Cloud KMS em aplicações de IA

As seguintes limitações aplicam-se às chaves CMEK (Cloud KMS) nas aplicações de IA:

  • Não é possível alterar as chaves já aplicadas a um arquivo de dados.
  • Depois de uma chave ser registada, não é possível anular o registo nem removê-la de um armazenamento de dados.
  • Tem de usar apps e arquivos de dados multirregionais dos EUA ou da UE (não globais). Para mais informações sobre várias regiões e residência de dados, incluindo limites associados à utilização de localizações não globais, consulte as localizações.
  • Se precisar de registar mais do que uma chave para um projeto, contacte a equipa da sua Conta Google para pedir um aumento da quota para configurações de CMEK, indicando uma justificação para precisar de mais do que uma chave.

  • A utilização do gestor de chaves externo (EKM) com CMEK está em disponibilidade geral com lista de autorizações. Para usar a EKM com a CMEK, contacte a equipa de contas da Google.

    Aplicam-se as seguintes limitações ao EKM ou HSM com CMEK:

    • A sua quota de EKM e HSM para chamadas de encriptação e desencriptação deve ter, pelo menos, 1000 QPM de margem. Para saber como verificar as suas quotas, consulte o artigo Verifique as suas quotas do Cloud KMS.

    • Se usar a GKM, a chave tem de estar acessível durante mais de 90% de qualquer período de tempo superior a 30 segundos. Se a chave não estiver acessível durante este período, pode afetar negativamente a indexação e a atualidade da pesquisa.

    • Se existirem problemas de faturação, problemas persistentes de falta de quota ou problemas persistentes de inacessibilidade durante mais de 12 horas, o serviço desativa automaticamente o CmekConfig associado à chave EKM ou HSM.

  • Os arquivos de dados criados antes de uma chave ser registada no projeto não podem ser protegidos pela chave.

  • Não pode ajustar os modelos de pesquisa para repositórios de dados protegidos por chaves.

  • Para apps com várias bases de dados, se uma base de dados usar uma configuração CMEK, todas as outras bases de dados também têm de usar a mesma configuração CMEK.

  • A alteração da chave não é suportada para as chaves de região única dos conetores de terceiros. Se desativar ou destruir uma versão de chave que protege um arquivo de dados associado a um conector de terceiros, o conector deixa de funcionar.

  • A alteração da chave não é compatível com o Analytics. Se rodar as chaves de um arquivo de dados, as apps que usam esse arquivo de dados deixam de apresentar estatísticas.

  • Não pode usar o Terraform para configurar as CMEK para aplicações de IA.

Acerca das chaves de região única para conetores de terceiros

Se usar conetores de terceiros e quiser usar as suas próprias chaves para proteger os dados ligados, tem de criar três chaves suplementares de região única, além da chave multirregional. Os comandos para criar chaves são fornecidos no procedimento seguinte: registe a sua chave do Cloud KMS.

As chaves únicas têm de ser criadas para as seguintes regiões:

Multirregião Regiões únicas
eu europe-west1 europe-west4 europe-north1
us us-east1 us-central1 us-west1

Antes de começar

Certifique-se de que cumpre os seguintes pré-requisitos:

  • Crie uma chave simétrica multirregional do Cloud KMS. Consulte os artigos Crie um conjunto de chaves e Crie uma chave na documentação do Cloud KMS.

    • Defina o período de rotação como Nunca (rotação manual).

    • Para Localização, selecione Várias regiões e selecione europe ou us no menu pendente.

  • A função da IAM encriptador/desencriptador de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave foi concedida ao agente de serviço do Discovery Engine. A conta do agente de serviço tem um endereço de email que usa o seguinte formato: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com. Para obter instruções gerais sobre como adicionar uma função a um agente de serviço, consulte o artigo Conceda ou revogue uma única função.

  • A função do IAM encriptador/desencriptador de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave foi concedida ao agente de serviço do Cloud Storage. Se esta função não for concedida, a importação de dados para arquivos de dados protegidos por CMEK falha porque o Discovery Engine não consegue criar o diretório e o contentor temporários protegidos por CMEK necessários para a importação.

  • Não crie nenhuma app nem repositório de dados que queira gerir com a sua chave até concluir as instruções de registo da chave nesta página.

Registe a sua chave do Cloud KMS

Para encriptar dados com as CMEK, tem de registar a sua chave multirregional. Opcionalmente, se os seus dados precisarem de chaves de região única, por exemplo, quando usar conetores de terceiros, tem de registar as suas chaves de região única.

REST

Para registar a sua própria chave para aplicações de IA, siga estes passos:

  1. Chame o método UpdateCmekConfig com a chave que quer registar.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"kmsKey":"projects/KMS_PROJECT_ID/locations/KMS_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"}' \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID?set_default=SET_DEFAULT"
    

    Substitua o seguinte:

    • KMS_PROJECT_ID: o ID do seu projeto que contém a chave. O número do projeto não funciona.
    • KMS_LOCATION: a região múltipla da sua chave: us ou europe.
    • KEY_RING: o nome do conjunto de chaves que contém a chave.
    • KEY_NAME: o nome da chave.
    • PROJECT_ID: o ID do seu projeto que contém o repositório de dados.
    • LOCATION: a multirregião do seu repositório de dados: us ou eu.
    • CMEK_CONFIG_ID: defina um ID exclusivo para o recurso CmekConfig, por exemplo, default_cmek_config.
    • SET_DEFAULT: definido como true para usar a chave como a chave predefinida para as lojas de dados subsequentes criadas na multirregião.
  2. Opcional: registe o valor name devolvido pelo método e siga as instruções em Obtenha detalhes sobre uma operação de longa duração para ver quando a operação está concluída.

    Normalmente, o registo de uma chave demora alguns minutos.

    Após a conclusão da operação, os novos arquivos de dados nessa multirregião são protegidos pela chave. Para obter informações gerais sobre a criação de armazenamentos de dados, consulte o artigo Acerca das apps e dos armazenamentos de dados.

Consola

Antes de começar

Certifique-se de que a região ainda não está protegida por uma chave. O procedimento seguinte falha se já existir uma chave registada para a região através do comando REST.

Para determinar se existe uma chave ativa nas Aplicações de IA para uma localização, consulte o artigo Ver chaves do Cloud KMS.

Procedimento

Para registar a sua própria chave para aplicações de IA, siga estes passos:

  1. Na Google Cloud consola, aceda à página Aplicações de IA.

    Aplicações de IA

  2. Clique em Definições e selecione o separador CMEK.

  3. Clique em Adicionar chave para a localização us ou eu.

    Clique em Adicionar chave para uma localização.
    Clique em Adicionar chave.
    1. Clique no menu pendente Selecionar uma chave do Cloud KMS e selecione a chave.

      • Se a chave estiver num projeto diferente, clique em Mudar de projeto, clique no nome do seu projeto, escreva o nome da chave que criou e selecione a chave.

      • Se souber o nome do recurso da chave, clique em Introduzir manualmente, cole o nome do recurso da chave e clique em Guardar.

    2. Clique em OK > Guardar.

Isto regista a sua chave, criando um CmekResource denominado default_cmek_config.

Os dados carregados podem demorar várias horas a aparecer nos resultados da pesquisa.

Veja as chaves do Cloud KMS

Para ver uma chave registada para aplicações de IA, faça uma das seguintes ações:

  • Se tiver o nome do recurso CmekConfig, chame o método GetCmekConfig:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    Substitua o seguinte:

    • LOCATION: a multirregião do seu repositório de dados: us ou eu.
    • PROJECT_ID: o ID do seu projeto que contém os dados.
    • CMEK_CONFIG_ID: o ID do recurso CmekConfig. Se registou a chave através da consola, o ID é default_cmek_config.

    Um exemplo de uma chamada curl e de uma resposta tem o seguinte aspeto:

    $ curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
    
    { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true }

  • Se não tiver o nome do recurso CmekConfig, chame o método ListCmekConfigs:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs"
    

    Substitua o seguinte:

    • LOCATION: a multirregião do seu repositório de dados: us ou eu.
    • PROJECT_ID: o ID do seu projeto que contém os dados.

    Um exemplo de uma chamada curl e de uma resposta tem o seguinte aspeto:

    $ curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs"
    
    { "cmek_configs": [ { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true } ] }

Anule o registo da sua chave do Cloud KMS

Para anular o registo da sua chave nas aplicações de IA, siga estes passos:

  1. Chame o método DeleteCmekConfig com o nome do recurso CmekConfig que quer anular o registo.

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    Substitua o seguinte:

    • LOCATION: a multirregião do seu repositório de dados: us ou eu.
    • PROJECT_ID: o ID do seu projeto que contém o arquivo de dados.
    • CMEK_CONFIG_ID: o ID do recurso CmekConfig. Se registou a chave através da consola, o ID é default_cmek_config.

    Um exemplo de uma chamada curl e de uma resposta tem o seguinte aspeto:

    $ curl -X DELETE
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
     
    {
     "name": "projects/my-ai-app-project-123/locations/us/operations/delete-cmek-config-56789",
     "metadata": {
      "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.DeleteCmekConfigMetadata"
     }
    }
    

  2. Opcional: registe o valor name devolvido pelo método e siga as instruções em Obtenha detalhes acerca de uma operação de longa duração para ver quando a operação está concluída.

    Normalmente, a eliminação de uma chave demora alguns minutos.

Valide se um repositório de dados está protegido por uma chave

Os armazenamentos de dados criados após o registo da chave estão protegidos pela chave. Se quiser confirmar que um determinado arquivo de dados está protegido pela sua chave, siga estes passos:

  1. Execute o seguinte comando curl no arquivo de dados:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "x-goog-user-project: PROJECT_ID" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID"
    

    Substitua o seguinte:

    • LOCATION: a multirregião do seu repositório de dados: us ou eu.
    • PROJECT_ID: o ID do seu projeto que contém o arquivo de dados.
    • DATA_STORE_ID: o ID do armazenamento de dados.

    Um exemplo de uma chamada curl tem o seguinte aspeto:

    curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    -H "Content-Type: application/json"
    -H "x-goog-user-project: my-ai-app-project-123"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/collections/default_collection/dataStores/my-data-store-1"
    

  2. Reveja o resultado do comando: se o campo cmekConfig estiver no resultado e o campo kmsKey mostrar a chave que registou, significa que o armazenamento de dados está protegido pela chave.

    Uma resposta de exemplo tem o seguinte aspeto:

    {
     "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1",
     "displayName": "my-data-store-1",
     "industryVertical": "GENERIC",
     "createTime": "2023-09-05T21:20:21.520552Z",
     "solutionTypes": [
       "SOLUTION_TYPE_SEARCH"
     ],
     "defaultSchemaId": "default_schema",
     "cmekConfig": {
       "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1/cmekConfigs/default_cmek_config",
       "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key"
     }
    }
    

Outros dados protegidos pela chave do Cloud KMS

Além dos dados nas bases de dados, as suas chaves podem proteger outros tipos de informações essenciais pertencentes à app detidas pelas aplicações de IA, como os dados de sessão gerados durante a pesquisa com seguimentos. Este tipo de informações essenciais está protegido por CMEK se os armazenamentos de dados associados à app estiverem protegidos por CMEK.

Embora não possa executar um comando específico para verificar se as sessões estão protegidas, se executar o comando Verifique se um repositório de dados está protegido por uma chave e vir a chave no recurso cmekConfig, sabe que os dados da sessão estão protegidos.

Alterne as chaves do Cloud KMS

Quando roda as chaves, está a criar uma nova versão da chave e a definir a nova versão como a versão principal. Deixe a versão original da chave ativada durante algum tempo antes de a desativar. Isto dá tempo para a conclusão de quaisquer operações de longa duração que possam estar a usar a chave mais antiga.

O procedimento seguinte descreve os passos para rodar as chaves de um arquivo de dados das aplicações de IA. Para informações gerais sobre a alternância de chaves, consulte Alternância de chaves no guia do Cloud KMS.

Importante: não rode as chaves em arquivos de dados associados a apps de recomendações ou a apps que precisem de estatísticas, e não rode as chaves de região única usadas para conetores de terceiros. Consulte as limitações do Cloud KMS nas aplicações de IA.

  1. Volte a registar a chave. Para tal, repita o passo 1 de Registe a sua chave do Cloud KMS.

  2. Consulte as instruções na secção Gerir chaves do guia do Cloud KMS para fazer o seguinte:

    1. Crie uma nova versão da chave, ative-a e torne-a principal.

    2. Deixe a versão da chave mais antiga ativada.

    3. Após cerca de uma semana, desative a versão mais antiga da chave e certifique-se de que tudo está a funcionar como antes.

    4. Mais tarde, quando tiver a certeza de que não foram causados problemas pela desativação da versão da chave mais antiga, pode destruir a versão da chave mais antiga.

Se uma chave do Cloud KMS estiver desativada ou revogada

Se uma chave estiver desativada ou as autorizações da chave forem revogadas, o armazenamento de dados deixa de carregar dados e de apresentar dados no prazo de 15 minutos. No entanto, a reativação de uma chave ou a reposição de autorizações demora muito tempo. A reposição do serviço de dados pode demorar até 24 horas.

Por conseguinte, não desative uma chave, a menos que seja necessário. A desativação e a ativação de uma chave num arquivo de dados é uma operação demorada. Por exemplo, alternar repetidamente uma chave entre desativada e ativada significa que o armazenamento de dados vai demorar muito tempo a atingir um estado protegido. A desativação de uma chave e a sua reativação imediata podem resultar em dias de inatividade, uma vez que a chave é primeiro desativada da base de dados e, posteriormente, reativada.