> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Privilégio do BYOC

> Implante o ClickHouse na sua própria infraestrutura de nuvem

<div id="aws-iam-roles">
  ## Funções do IAM da AWS
</div>

<div id="bootstrap-iam-role">
  ### Função do IAM Bootstrap
</div>

A função do IAM Bootstrap tem as seguintes permissões:

* **Operações de EC2 e VPC**: Necessárias para configurar VPCs e clusters do EKS.
* **Operações de S3 (por exemplo, `s3:CreateBucket`)**: Necessárias para criar buckets para o armazenamento BYOC do ClickHouse.
* **Operações de IAM (por exemplo, `iam:CreatePolicy`)**: Necessárias para que os controladores criem funções adicionais (consulte a próxima seção para mais detalhes).
* **Operações de EKS**: Limitadas a recursos com nomes que começam com o prefixo `clickhouse-cloud`.

<div id="additional-iam-roles-created-by-the-controller">
  ### Funções adicionais do IAM criadas pelo controlador
</div>

Além da `ClickHouseManagementRole` criada via CloudFormation, o controlador criará várias outras funções.

Essas funções são assumidas por aplicações executadas no cluster EKS do cliente:

* **Função do State Exporter**
  * Componente do ClickHouse que reporta informações sobre a saúde do serviço ao ClickHouse Cloud.
  * Requer permissão para gravar em uma fila do SQS pertencente ao ClickHouse Cloud.
* **Controlador de balanceador de carga**
  * Controlador padrão de load balancer da AWS.
  * Controlador EBS CSI para gerenciar volumes dos serviços do ClickHouse.
* **External-DNS**
  * Propaga configurações de DNS para o Route 53.
* **Cert-Manager**
  * Provisiona certificados TLS para domínios de serviço BYOC.
* **Cluster Autoscaler**
  * Ajusta o tamanho do grupo de nós conforme necessário.

As funções **K8s-control-plane** e **k8s-worker** destinam-se a ser assumidas por serviços do AWS EKS.

Por fim, **`data-plane-mgmt`** permite que um componente do plano de controle do ClickHouse Cloud faça a reconciliação dos recursos personalizados necessários, como `ClickHouseCluster` e o Istio Virtual Service/Gateway.

<div id="gcp-service-accounts">
  ## Contas de serviço do GCP
</div>

<div id="bootstrap-service-account">
  ### Conta de serviço Bootstrap
</div>

A conta de serviço Bootstrap recebe funções personalizadas com escopo no projeto com as seguintes permissões:

* **Common**: Permissões básicas de leitura e identidade.
* **VPC**: Gerencia a VPC, as sub-redes, o roteamento e os anexos do Private Service Connect que hospedam sua infraestrutura BYOC.
* **Cluster**: Gerencia clusters do GKE e recursos no cluster.
* **Storage**: Usada para gerenciar buckets do Cloud Storage usados para backups do ClickHouse, estado compartilhado e dados de monitoramento.
* **IAM Role**: Gerencia contas de serviço e funções personalizadas dentro do projeto. Essa função não concede a capacidade de criar chaves de conta de serviço, vincular políticas da organização nem modificar quaisquer recursos em outros projetos.

<div id="additional-service-accounts-created-by-the-controller">
  ### Contas de serviço adicionais criadas pelo controlador
</div>

Além da conta de serviço `clickhouse-management`, criada via Terraform como parte do onboarding, quando você provisiona seu primeiro serviço BYOC, o plano de controle do ClickHouse (autenticando-se como `clickhouse-management`) cria contas de serviço adicionais no seu projeto para cargas de trabalho específicas no cluster. Cada uma delas é criada com um conjunto de permissões restrito e voltado a uma única finalidade.

* **Identidade de runtime do nó do GKE**
  * Vinculada a cada máquina virtual de nó do GKE no seu cluster BYOC.
  * Usada pelo agente de nó do Kubernetes, por agentes locais do nó e pelos coletores do Cloud Operations para emitir logs e métricas, e pelo subsistema de download de imagens para baixar imagens de contêiner.
* **Identidade do scraper de faturamento**
  * Usada pela carga de trabalho de scraper independente para coletar telemetria de faturamento.
* **Identidade de monitoramento**
  * Identidade de destino para o stack de monitoramento em execução no seu cluster. Usada para ler/gravar o armazenamento de métricas de longo prazo em um bucket do GCS dedicado a esta implantação.
* **Identidade de gerenciamento de runtime do ClickHouse**
  * Usada pelo controlador de gerenciamento do plano de dados em runtime do ClickHouse, que lida com operações pós-implantação, como gerenciamento de endpoints do Private Service Connect, ajustes no ciclo de vida de buckets e rotação de contas de serviço.

<div id="azure-roles-and-identities">
  ## Funções e identidades do Azure
</div>

<div id="onboarding-service-principal">
  ### Principal de serviço de onboarding
</div>

O onboarding com o [módulo do Terraform para Azure](https://github.com/ClickHouse/terraform-byoc-onboarding/tree/main/modules/azure) provisiona um aplicativo multilocatário como um Aplicativo Empresarial (principal de serviço) no seu tenant, seguindo as orientações do Azure para autenticação entre tenants. Ao principal de serviço é atribuída uma função personalizada com privilégios mínimos, limitada à assinatura de destino, com permissões para:

* **Rede**: Gerenciar a VNet, as sub-redes, os IPs públicos, os gateways NAT, os grupos de segurança de rede e as zonas DNS que hospedam sua infraestrutura BYOC.
* **Cluster**: Gerenciar clusters AKS e node pools.
* **Storage**: Gerenciar as contas de armazenamento e os contêineres de blob usados para dados do ClickHouse, backups e dados de monitoramento.
* **Identidade**: Gerenciar identidades gerenciadas atribuídas pelo usuário e suas credenciais de identidade federada na assinatura.
* **Autorização**: Gerenciar definições de função personalizadas e atribuições de função. Todas as permissões são limitadas à assinatura de destino — a função não pode acessar recursos em outras assinaturas ou tenants.

<div id="additional-managed-identities-created-by-the-controller">
  ### Identidades gerenciadas adicionais criadas pelo controlador
</div>

Ao provisionar serviços BYOC, o plano de controle do ClickHouse cria identidades gerenciadas atribuídas pelo usuário em sua assinatura. Cada uma é federada a uma conta de serviço específica do Kubernetes (Workload Identity) e tem um conjunto de permissões restrito a uma única finalidade:

* **Identidade por serviço**
  * Usada por cada serviço do ClickHouse para acessar sua própria conta de armazenamento, que contém dados de tabelas e backups, por meio de uma função personalizada de armazenamento de blobs com escopo nessa conta.
  * Quando um serviço é restaurado de um backup, ele também recebe acesso somente leitura ao contêiner de backup do serviço de origem.
* **Identidade de infraestrutura compartilhada**
  * Usada pelo controlador de gerenciamento do plano de dados em runtime do ClickHouse para operações contínuas, como o gerenciamento de serviços Private Link.
