0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Datadog Agent の APIキー は環境変数に記述した方がよさそう

0
Posted at

今後は Datadog Agent の APIキー を環境変数に記述することにした

AI 時代の“誤投入リスク”をゼロにする設定方針
Datadog Agent のコンフィグで必ず指定するのが APIキー。APIキーが漏洩してもデータ取得はできないし、利用されてメトリクスを送信されても問題はないが、メトリクス送信の料金に影響したら困る。
今まで問題にはならなかったが、近ごろAIがAPIキーを読んでしまったので、念のためAPIキーをローテーションするようアドバイスされることがしばしばある。

(Before)Agent の datadog.yaml

今まで、Datadog Agent の設定ファイル /etc/datadog-agent/datadog.yaml に直接 API Key を記述していた。

/etc/datadog-agent/datadog.yaml
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
site: datadoghq.com
hostname: xxxxxxxxxxxx
env: prod

「VS Code + Claude Code」などの生成AIを使っていると、コマンド出力結果をAIプロンプトに貼り付けしたとき、誤ってAPIキーを AI プロンプトへ投入してしまうミスが何度か発生した。

ミスでなくても、AIチャットで docker-compose の設定を調べていたとき、AIが 「重要: 調査中の検索結果に .env の API キー値が出力されました。ログに残る可能性があるため、今回ローテーションしたキーは再ローテーションしてからスクリプトを実行してください。」 のような警告を出したこともある。

そこで、面倒なAPIキーのローテーションをしなくて済むように、設定方式を見直しした。

APIキーは、Datadog用の環境変数ファイルに記述する

結論として、APIキー は datadog.yaml に書かず、環境変数ファイル environment に記述する。

■ Before(datadog.yaml 方式)

  • 問題1:org で共通に使っていた APIキー を ローテーションする都度、全てのサーバーの datadog.yaml を書き換える必要があり、数時間を無駄にしていた

  • 問題2:コマンド出力を AI に貼り付けた際、APIキー がそのまま AI に流出する事故が起きやすい

■ After(環境変数 environment 方式)

ディレクトリ /etc/datadog-agent/ に environment という中身が空のファイルがあった。
この environmentファイル が Datadog Agent 用の環境変数とのこと。

/etc/datadog-agent/environment
DD_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxx

そして datadog.yaml には APIキー を書かない

/etc/datadog-agent/datadog.yaml
# api_key: <環境変数に記載した>
site: datadoghq.com
hostname: xxxxxxxxxxxx
env: prod
  • 解決1.サーバー毎にAPIキーを生成した
    • サーバーA用APIキー xxx
    • サーバーB用APIキー xxx
    • サーバーC用APIキー xxx

これなら、AIプロンプトにAPIキーを誤投入してしまった場合でも、該当サーバー1台だけ APIキー をローテーションすればよい

  • 解決2.APIキーを環境変数ファイルに記述すれば、コマンド出力に APIキー が含まれないため、誤投入リスクが減る

設定方法(ステップごとに解説)

1.環境変数ファイルに APIキー を記述する

$ sudo cat /etc/datadog-agent/environment
DD_API_KEY=<APIキーを書く>

2.datadog.yaml から api_key: の行を削除する

/etc/datadog-agent/datadog.yaml のAPIキー api_key:xxxxx を削除する。

3.ファイル権限設定:環境変数ファイルは root と dd-agent のみに読めるようにする

sudo chown root:dd-agent /etc/datadog-agent/environment
sudo chmod 640 /etc/datadog-agent/environment

environmentのファイル権限の Before / After

Before

-rw-r-----   1 dd-agent dd-agent    237 datadog.yaml
-rw-r--r--   1 root     root         46 environment

After

-rw-r-----   1 dd-agent dd-agent    237 datadog.yaml
-rw-r-----   1 root     dd-agent     46 environment

4.Agent を再起動し、状態を確認する

sudo systemctl restart datadog-agent
sudo datadog-agent status | grep -i -A3 'api key'

まとめ

生成 AI を使うシーンで「コマンド出力を AI に貼り付ける」ことは日常的に発生する。
うっかり APIキー をコマンド出力してしまうような設定ファイルの記述方式はAIの時代には都合がわるい。

APIキーは、Datadog Agent 用の環境変数 environmentファイルに記述することで、セキュリティと後戻り作業防止とAIプロンプトに誤投入を改善できるはず!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?