概要
このガイドでは、ClickPipes リバース プライベート エンドポイントで使用する MSK マルチ VPC の設定を始める方法を説明します。
ClickPipes はクライアント VPC を所有し、マネージド VPC 接続を作成します。ネットワーク接続を確立するには、MSK クラスターでマルチ VPC プライベート接続を有効にし、クラスターのポリシーで ClickPipes の AWS アカウントを承認します。
要件
MSK クラスターの VPC は、ClickPipes のいずれかのリージョンに配置されている必要があります。サポート対象リージョンの一覧については、ClickPipes リージョンを参照してください。
MSK マルチ VPC 接続を有効にする
- MSK クラスターに移動します。
- Amazon MSK コンソールの左側のナビゲーションペインで「Clusters」を選択します。
- MSK マルチ VPC 接続を設定する対象の MSK クラスターを選択します。
- MSK マルチ VPC 接続を有効にします
- Connectivity タブで、Multi-VPC connectivity セクションを見つけます。
- Edit をクリックします。
- Turn-on MSK multi-VPC connectivity オプションを有効にします。
- 画面の指示に従います
- ClickPipes アカウントのプリンシパルをクラスターのポリシーに追加します
- Configuration タブに移動します。
- Cluster policy セクションで Edit をクリックします。
- IAM policy に
arn:aws:iam::072088201116:rootを含めます。例:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::072088201116:root" ] }, "Action": [ "kafka:CreateVpcConnection", "kafka:GetBootstrapBrokers", "kafka:DescribeCluster", "kafka:DescribeClusterV2" ], "Resource": "<MSK_CLUSTER_ARN>" } ] }
クラスターとマルチ VPC 接続の両方で、MSK の認証方法を有効にします。次の例では SASL/IAM を使用しています。SASL/SCRAM を使用するには、代わりに scram = true を設定します。
resource "aws_msk_cluster" "this" {
# ... 既存の設定 ...
client_authentication {
sasl {
iam = true
}
}
broker_node_group_info {
# ... 既存の設定 ...
connectivity_info {
vpc_connectivity {
client_authentication {
sasl {
iam = true
}
}
}
}
}
}MSK クラスターポリシーで ClickPipes AWS アカウントを承認します。
resource "aws_msk_cluster_policy" "clickpipes" {
cluster_arn = aws_msk_cluster.this.arn
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Sid = "ClickPipesMultiVpc"
Effect = "Allow"
Principal = { AWS = "arn:aws:iam::072088201116:root" }
Action = [
"kafka:CreateVpcConnection",
"kafka:GetBootstrapBrokers",
"kafka:DescribeCluster",
"kafka:DescribeClusterV2",
]
Resource = aws_msk_cluster.this.arn
}]
})
}クラスターにすでにポリシーがある場合は、ClickPipes の権限を追加する際に既存のステートメントを保持します。
リバースプライベートエンドポイントの作成
ClickPipes ドキュメントに記載されている手順に従って、リバースプライベートエンドポイントを作成します。
ClickHouse Terraform プロバイダーを使用して、リバースプライベートエンドポイントを作成します。
resource "clickhouse_clickpipes_reverse_private_endpoint" "msk" {
service_id = var.clickhouse_service_id
description = "MSK multi-VPC reverse private endpoint"
type = "MSK_MULTI_VPC"
msk_cluster_arn = aws_msk_cluster.this.arn
msk_authentication = "SASL_IAM" # Or "SASL_SCRAM"
depends_on = [aws_msk_cluster_policy.clickpipes]
}リソースのフィールドは変更できません。フィールドを変更すると、リバースプライベートエンドポイントは削除され、再作成されます。