🔒
OpenTelemetry で OpenSearch の認証認可を突破しメトリクスを収集する
receivers:
elasticsearch:
endpoint: "https://hogehoge.ap-northeast-1.es.amazonaws.com:443"
auth:
authenticator: sigv4auth/es
exporters:
logging: {}
extensions:
sigv4auth/es:
region: ap-northeast-1
service: es
service:
extensions:
- sigv4auth/es
pipelines:
metrics:
receivers:
- elasticsearch
processors: []
exporters:
- logging
- ElasticSearch 互換モードなら elasticsearchreceiver で収集できる
- IAM でアクセスコントロールをかけている場合、 sigv4auth extension が使用可能。
elasticsearch
レシーバブロックのトップにauth
ブロックを設定する。-
service
名はes
-
AWS Managed Service for Prometheus も併用して prometheusremotewrite exporter でメトリクスを送信するようなユースケースではそちらの sigv4auth も通さなければならないので、
sigv4auth/es
のように名前を切りましょう
-
- 別途 OpenTelemetry Collector Pod に IRSA 等で OpenSearch の読み取り権限を付与しておく必要がある:
es:ESHttpGet
-
es:ESHttpHead
(いらないかも)
Discussion