This product is not supported for your selected
Datadog site. (
).
CloudPrem は Preview 版です
CloudPrem Preview に参加すると、新しいセルフ ホスト型のログ管理機能を利用できます。
Request Access概要
Ingress は、CloudPrem デプロイメントの中でも特に重要なコンポーネントです。Helm チャートは、public ingress と internal ingress という 2 つの Ingress 設定を自動的に作成します。クラスターに AWS Load Balancer Controller がインストールされている場合は、それぞれの Ingress 設定に対して 1 つずつ ALB がプロビジョニングされます。各ロード バランサーは、Ingress アノテーションを使ってさらに細かく調整できます。
パブリック Ingress
/cloudprem で始まる CloudPrem gRPC API エンドポイントだけが、相互 TLS 認証を行います。それ以外のエンドポイントをパブリック Ingress 経由で公開すると、認証なしでインターネットからアクセスできてしまうため、セキュリティ上のリスクになります。gRPC 以外のエンドポイントは、必ず内部 Ingress のみに限定してください。
パブリック Ingress は、Datadog 側のコントロール プレーンとクエリ サービスが、パブリック インターネット経由で CloudPrem クラスターを管理し、クエリを実行できるようにするために欠かせません。これにより、次の仕組みを通じて CloudPrem の gRPC API へ安全にアクセスできます:
- Datadog サービスからのトラフィックを受け付ける、インターネット向けの AWS Application Load Balancer (ALB) を作成します。
- TLS はロード バランサー側で終端されます。
- ALB と CloudPrem クラスターの間の通信には HTTP/2 (gRPC) を使用します。
- Datadog のサービスが有効なクライアント証明書を提示する必要がある相互 TLS (mTLS) 認証を必須にします。
- ALB を TLS passthrough モードで構成し、クライアント証明書を
X-Amzn-Mtls-Clientcert ヘッダーに載せて CloudPrem Pod に転送します。 - 有効なクライアント証明書がない、または証明書ヘッダーが欠けているリクエストを拒否します。
この構成により、Datadog の認証済みサービスだけが CloudPrem クラスターにアクセスでき、通信全体を通じて安全な暗号化も維持されます。
IP 許可リスト
Datadog のコントロール プレーンとクエリ サービスは、固定の IP レンジ群を使って CloudPrem クラスターに接続します。これらの IP レンジは、Datadog の各 site ごとに Datadog の IP Ranges API から取得でき、具体的には “webhooks” セクションに含まれています。たとえば datadoghq.eu サイトの IP レンジを取得するには、次のコマンドを実行します:
curl -X GET "https://ip-ranges.datadoghq.eu/" \
-H "Accept: application/json" |
jq '.webhooks'
内部 Ingress
内部 Ingress では、Datadog Agent や、環境内のその他のログ コレクターから、HTTP 経由でログを取り込みます。
既定では、チャートは内部向けの AWS Application Load Balancer (ALB) を作成し、要求された API エンドポイント パスに応じて HTTP トラフィックを適切な CloudPrem サービスへルーティングします。一方、HAProxy、NGINX、Traefik など、独自の Ingress コントローラーを使いたい場合は、既定の内部 ALB を無効にして、次のルーティング ルールでコントローラーを設定できます:
rules:
- http:
paths:
# 取り込み (Quickwit、ES、Datadog) 用エンドポイントは indexer へ
- path: /api/v1/*/ingest
pathType: ImplementationSpecific
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
- path: /api/v1/_elastic/bulk
pathType: Prefix
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
- path: /api/v1/_elastic/*/_bulk
pathType: ImplementationSpecific
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
- path: /api/v2/logs
pathType: Prefix
backend:
service:
name: <RELEASE_NAME>-indexer
port:
name: rest
# インデックス管理 API のエンドポイントは metastore へ
- path: /api/v1/indexes
pathType: Prefix
backend:
service:
name: <RELEASE_NAME>-metastore
port:
name: rest
# それ以外はすべて searcher へ
- path: /*
pathType: ImplementationSpecific
backend:
service:
name: <RELEASE_NAME>-searcher
port:
name: rest
参考資料