コレクターのホスティングに関するベストプラクティス

OpenTelemetry (OTel)コレクターのホスティングをセットアップする際には、ホストするインスタンスのセキュリティを強化するために以下のベストプラクティスを検討してください。

データを安全に保存する

コレクターの設定ファイルには、認証トークンやTLS証明書などの機密データが含まれている場合があります。 設定のセキュリティ保護のベストプラクティスを参照してください。

処理のためにテレメトリーを保存している場合は、生データの改ざんを防ぐために、それらのディレクトリへのアクセスを制限してください。

秘密情報を安全に保つ

Kubernetesのシークレットは、機密データを保持する認証情報です。 それらは特権アクセスを認証および認可します。 コレクターでKubernetesのデプロイメントを使用している場合は、推奨されるベストプラクティスに従って、クラスターのセキュリティを強化してください。

最小権限の原則を適用する

コレクターは、収集しているデータが特権のある場所にある場合を除き、特権アクセスを必要としません。 たとえば、Kubernetesのデプロイメントでは、システムログ、アプリケーションログ、コンテナランタイムログはアクセスに特別な権限が必要なノードボリュームに保存されていることがよくあります。 コレクターがノードでデーモンセットとして実行されている場合、これらのログにアクセスするために必要な特定のボリュームマウントの権限のみを付与し、それ以上の権限は付与しないでください。 特権アクセスは、ロールベースのアクセス制御(RBAC)で構成できます。 詳しくはRBACのベストプラクティスを参照してください。

サーバーのようなコンポーネントへのアクセスを制御する

コレクターの一部のコンポーネント(レシーバーやエクスポーター)などは、サーバーのように機能します。 認可されたユーザーのみがアクセスできるようにするには、次のことが必要です。

  • たとえば、Bearerトークン認証拡張機能やBasic認証拡張機能を使用して認証を有効にします。
  • コレクターが実行されるIPを制限します。

リソース使用量を保護する

コレクター自身の内部テレメトリーを使用して、そのパフォーマンスを監視します。 コレクターからCPU、メモリ、スループットの使用状況に関するメトリクスを収集し、リソース枯渇のアラートを設定します。

リソース上限に達した場合は、負荷分散された構成で複数のインスタンスをデプロイしコレクターの水平スケーリングを検討してください。 コレクターをスケールすることで、リソースの需要が分散されボトルネックを回避します。

デプロイメント内のリソース使用量を保護したら、コレクターインスタンスでも設定での保護を使用していることを確認してください。