[Hyperdrive] Revisar permissões para uso do BQ ML
Description
Objetivo
-
Revisar permissões necessárias para o uso do BQ ML integrado as pipelines Carol para geração de embeddings.
-
Criar conexão com o Vertex para tenants com a feature habilitada.
Critérios de Aceite
-
Precisamos que as seguintes permissões sem atribuídas durante o processo de habilitação do uso de AI por uma tenant:
-
Deveremos criar um parâmetro na tenant “allowedUsageAI”, e com isso, deverá ser efetuado as habilitações descritas abaixo.
-
Ao habilitar o IAM em uma tenant com o allowedUsageAI ativo:
-
Usuário: conforme aplicado no terraform, somente para usuários IAM da Carol.
-
Role: bigquery.connections.create, bigquery.connections.delete
-
Motivo: permitir criar a conexão, que define o modelo AI (embedding) que será utilizado.
-
-
Ao habilitar o allowedUsageAI em uma tenant, habilitar os recursos necessários no projeto GCP da tenant para uso do Vertex AI:
-
Recursos:
-
Vertex AI API
-
Cloud Storage
-
Dataform API
-
-
Motivo: permitir criar a conexão com o Vertex AI.
-
-
Ao habilitar o allowedUsageAI em uma tenant, devemos criar uma connection e conceder à SA da connection a seguinte role:
-
Vertex AI User -
Motivo: permitir criar o modelo ML.
-
-
Ao habilitar o allowedUsageAI em uma tenant, usuários da Carol (permanent-data-writer@carol-782ab62fb3994c8e9b68.iam.gserviceaccount.com) devem possuir a seguinte permissão:
-
Permissão:
bigquery.connections.use
-
-
Ao inativar a flag “allowedUsageAI“ deve ser desativado o recurso abaixo do projeto GCP:
-
Vertex AI.
-
Comandos executados durante os testes acima:
-- bq mk \-- --connection \-- --location=us \-- --project_id=carol-6f77a449debc4270ac8b \-- --connection_type=CLOUD_RESOURCE \-- vertex_remote_conn-- #######################################################CREATE OR REPLACE MODEL`carol-6f77a449debc4270ac8b.custom_data.embedding_model`REMOTE WITH CONNECTION`carol-6f77a449debc4270ac8b.us.vertex_remote_conn`OPTIONS (ENDPOINT = 'text-embedding-004');-- #######################################################CREATE TABLE IF NOT EXISTS`carol-6f77a449debc4270ac8b.custom_data.documentos` (id INT64,titulo STRING,conteudo STRING,embedding ARRAY<FLOAT64> -- vetor gerado pelo modelo);