> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/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.
