AWS IAMロール
Bootstrap IAM ロール
- EC2 および VPC の操作: VPC と EKS クラスターのセットアップに必要です。
- S3 の操作 (例:
s3:CreateBucket) : ClickHouse BYOC ストレージ用のバケットを作成するために必要です。 - IAM の操作 (例:
iam:CreatePolicy) : コントローラーが追加のロールを作成するために必要です (詳細は次のセクションを参照してください) 。 - EKS の操作: 名前が
clickhouse-cloudプレフィックスで始まるリソースに限定されます。
コントローラーによって追加で作成される IAM ロール
ClickHouseManagementRole に加えて、コントローラーはいくつかの追加のロールも作成します。
これらのロールは、お客様の EKS クラスター内で実行されるアプリケーションが引き受けることを想定しています。
- State Exporter Role
- サービスの正常性情報を ClickHouse Cloud に報告する ClickHouse コンポーネントです。
- ClickHouse Cloud が所有する SQS キューへの書き込み権限が必要です。
- Load-Balancer Controller
- 標準的な AWS ロードバランサーコントローラーです。
- ClickHouse サービスのボリュームを管理する EBS CSI コントローラーです。
- External-DNS
- DNS 設定を Route 53 に反映します。
- Cert-Manager
- BYOC サービスのドメイン向けに TLS 証明書を発行します。
- Cluster Autoscaler
- 必要に応じてノードグループのサイズを調整します。
data-plane-mgmt は、ClickHouseCluster や Istio の Virtual Service/Gateway など、必要なカスタムリソースを ClickHouse Cloud のコントロールプレーンコンポーネントがリコンサイルできるようにします。
GCP のサービスアカウント
Bootstrap サービス アカウント
- Common: 基本的な閲覧権限と ID 関連の権限。
- VPC: BYOC インフラストラクチャを支える VPC、サブネット、ルーティング、および Private Service Connect アタッチメントを管理します。
- Cluster: GKE クラスターとクラスター内のリソースを管理します。
- Storage: ClickHouse のバックアップ、共有状態、監視データに使用される Cloud ストレージ バケットの管理に使用されます。
- IAM Role: プロジェクト内のサービス アカウントとカスタム ロールを管理します。このロールでは、サービス アカウント キーの作成、組織ポリシーのバインド、または他のプロジェクト内のリソースの操作は許可されません。
コントローラーによって追加で作成されるサービスアカウント
clickhouse-management サービスアカウントに加え、最初の BYOC サービスをプロビジョニングすると、ClickHouse のコントロールプレーン (clickhouse-management として認証) が、クラスター内の特定のワークロード向けにプロジェクト内へ追加のサービスアカウントを作成します。これらはそれぞれ、単一の用途に限定された最小限の権限セットで作成されます。
- GKE ノード runtime identity
- BYOC クラスター内のすべての GKE ノード仮想マシンにアタッチされます。
- キューブレット、ノードローカル agent、Cloud Operations collector が logs とメトリクスを送信するために使用されるほか、イメージ取得サブシステムがコンテナー イメージをダウンロードする際にも使用されます。
- Billing scraper identity
- standalone scraper ワークロードが billing テレメトリーを収集するために使用されます。
- Monitoring identity
- クラスター内で稼働する monitoring stack の対象 identity です。このデプロイメント専用の GCS bucket にある長期メトリクス ストレージの読み書きに使用されます。
- ClickHouse runtime management identity
- ClickHouse の runtime データプレーン管理コントローラーが使用します。これは、Private Service Connect endpoint の管理、bucket ライフサイクルの調整、サービスアカウントのローテーションなどの day-2 operations を処理します。
Azure のロールと ID
オンボーディング用サービス プリンシパル
- ネットワーク: BYOC インフラストラクチャをホストする VNet、サブネット、パブリック IP、NAT ゲートウェイ、ネットワーク セキュリティ グループ、DNS ゾーンを管理します。
- クラスター: AKS クラスターとノードプールを管理します。
- ストレージ: ClickHouse データ、バックアップ、監視データに使用するストレージ アカウントとブロブ コンテナーを管理します。
- ID: サブスクリプション内のユーザー割り当てマネージド ID と、そのフェデレーション ID 資格情報を管理します。
- 認可: カスタム ロール定義とロールの割り当てを管理します。すべての権限はターゲット サブスクリプションに限定されるため、このロールは他のサブスクリプションやテナントのリソースにアクセスできません。
コントローラーが作成する追加のマネージド identity
- サービスごとの identity
- 各 ClickHouse サービスが、テーブルデータとバックアップ用のストレージアカウントにアクセスする際に使用します。アクセスには、そのストレージアカウントをスコープとするカスタム ブロブ ストレージロールを使用します。
- サービスをバックアップから復元する際には、ソースサービスのバックアップコンテナーに対する読み取り専用アクセスも追加で付与されます。
- 共有インフラストラクチャ identity
- プライベートリンク サービスの管理など、Day 2 運用において ClickHouse のruntimeデータプレーン管理コントローラーが使用します。