Agent ルールはポリシーに編成されます。ポリシーとは、まとめてデプロイし、ホストやクラスターなどの特定のインフラストラクチャーにスコープ設定する Agent ルールのセットです。
すぐに使えるデフォルトの Agent ルール (OOTB ルール) に加え、標準の OOTB ルールだけでは検出できないイベントを Datadog で検出するためにカスタム Agent ルールを記述できます。
ポリシー
ポリシーを作成する
- ポリシーに移動します。
- New Policy をクリックします。既存のポリシーを開いて Actions をクリックし、クローンを作成することもできます。
- ポリシーの名前を入力し、Create をクリックします。
新しいポリシーが作成されます。有効化やデプロイはされません。
- ポリシーをクリックして開きます。
- New Rule で、カスタム Agent ルールをポリシーに追加します。Agent ルールの作成については、カスタム Agent ルールの作成を参照してください。
- Deployed on 0 agents の横にある Edit をクリックします。
- 特定のインフラストラクチャーをターゲットにするために、ポリシーにタグを追加します。
- ポリシーをデプロイするには、Policy is disabled の横にあるスイッチを切り替えて確定します。これには、このページで詳しく説明している Remote Configuration が使用されます。
Datadog 管理のポリシーを現在のバージョンに固定する
ポリシーの固定は、Agent バージョン 7.71.0 以降でサポートされています。以前の Agent では、引き続き最新のポリシーの更新を自動的に受信します。
Datadog 管理のポリシーが Datadog で更新されると、それらがインフラストラクチャーに自動的にデプロイされます。
ポリシーの新しいバージョンがインフラストラクチャーにデプロイされるタイミングを制御するには、ポリシーを現在のバージョンに固定します。ポリシーのバージョンを固定すると、Datadog でポリシーの新しいバージョンがリリースされたときに、ポリシーの更新が自動的に展開されるのを防ぐことができます。
ポリシーを固定するには、次の手順を実行します。
- ポリシーに移動します。
- Datadog 管理のポリシーをクリックします。
- Version で、固定オプションをクリックします。
インフラストラクチャーで 7.71.0 より前のバージョンの Agent を実行している場合、古い Agent に関する警告が表示されます。Fleet Automation で Agent のバージョンを確認し、アップグレードしてください。
- Pin をクリックします。ポリシーのバージョンの固定を解除するには、固定オプションを再度クリックします。
競合するルール
同じホストにデプロイされた 2 つのポリシーに、ステータス (アクティブと非アクティブ) が異なる同じルールが含まれている場合、そのルールはアクティブと見なされます。
タグは、環境、クラスター、ホストなど、ポリシーが適用される場所を定義します。ポリシーにタグを追加して、ルールをインフラストラクチャーの一部に限定します。
- Agent 構成に移動します。
- ポリシーを開き、Edit をクリックします。
- タグを入力し、Apply をクリックします。ポリシーが有効な場合、そのポリシーがタグのターゲットに適用されます。
タグを追加すると、タグのターゲットとなる Agent の数と各 Agent を実行しているインフラストラクチャーが Datadog に表示されます。たとえば、Tags match 144 agents のようになります。
カスタム Agent ルールの作成
カスタム Agent ルールを作成し、カスタムポリシーの一部としてデプロイできます。後でカスタムの検出ルールを定義する際に、カスタム Agent ルールを参照し、式のパラメーターを追加します。
カスタム Agent ルールは、デフォルトポリシーとは別のカスタムポリシーで Agent にデプロイされます。カスタムポリシーには、カスタム Agent ルールのみが含まれます。
- Agent 構成に移動します。
- ポリシーを作成するか、既存のポリシーを開きます。
- ポリシーを開いた状態で、Actions の Manual rule creator を選択して Agent ルールエディターを開きます。Datadog の Agent ルールページからも同じエディターを利用できます。Agent ルールと脅威検出ルールの両方を順を追って設定できる Assisted rule creator ウィザードを代わりに使用する場合は、カスタムの Agent ルールと検出ルールを一緒に作成するを参照してください。
- ルールの Name と Description を入力します。
- Expression で、Datadog Security Language (SECL) を使用して一致条件を定義します。
- (オプション) ルールがイベントに一致したときに実行される変数またはアクションを追加します。変数とアクションを参照してください。
- Create Agent Rule をクリックします。ポリシーに戻ります。
カスタム Agent ルールを作成すると、その変更は他の保留中のルールの更新と一緒に保存されます。環境に変更を適用するには、更新されたカスタムポリシーを Agent にデプロイします。
ポリシーの有効化とデプロイ
有効化されたポリシーのルールは、そのタグによって識別されるインフラストラクチャーターゲットに適用されます。ポリシーを有効にすることは、それをデプロイすることと同じです。
Datadog UI の Remote Configuration を使用して、ポリシーのタグで指定されたホスト (すべてのホストまたは定義されたホストのサブセット) にカスタムポリシーを自動的にデプロイできます。また、各ホストの Agent に手動でデプロイすることもできます。
Remote Configuration
Remote Configuration は、Datadog から Agent にポリシーを自動的に配信する方法です。署名および認証されたポリシーのみが Agent にプッシュされることを保証する安全なメカニズムが使用されています。Remote Configuration を使用してポリシーをデプロイするには、「ポリシーを作成する」で詳しく説明している手順に従ってください。
デプロイ戦略
Agent ルールやポリシーの変更を Remote Configuration で展開する方法は、2 つの戦略から選択できます。すべてのホストに変更を即座にデプロイする方法と、管理デプロイを使用して段階的にデプロイする方法です。デプロイページでデプロイを監視します。
即時デプロイ
即時デプロイでは、段階的な検証なしで、スコープ内のすべてのホストに更新されたポリシーを同時に送信します。通常、これは数分で完了し、変更をすべての場所にすぐに適用したい場合に最適です。
Deploy instantly を選択し、Update Policy をクリックします。デプロイページで進捗状況を追跡します。
管理デプロイ
管理デプロイでは、変更を段階的に展開するため、インフラストラクチャー全体に適用する前にホストのサブセットで検証できます。
- ポリシーまたはルールを編集する場合は、Start a managed deployment を選択します。ポリシーまたはルールが管理デプロイですでに展開されている場合は、Start from your last deployment を選択して前回のデプロイのパラメーターを再利用します。ルールの変更で再利用されるパラメーターは、そのルールを含むポリシーの最後のデプロイのものになります。
- Customize deployment roll-out plan で、デプロイのスコープを設定し、変更を最大 10 ステージで段階的に展開するように構成します。各ステージを By percentage of hosts in scope または By host tags で定義します。
- Set up monitoring and delay time で、デプロイ中にチェックするモニターを 1 つ以上選択します。デプロイの進行中にモニターがアラートを発すると、展開が一時停止します。さらに、次のステージに進むまでの待機時間を設定します。
- Set deployment window で、デプロイを実行できる日時とタイムゾーンを設定します。デプロイの実行がこの期間を過ぎると、一時停止し、次の期間に再開されます。
- (オプション) Add a description で、デプロイの説明を追加します。
- Update Policy をクリックして展開を開始します。デプロイページで進捗状況を追跡します。
手動デプロイ
手動デプロイでは、各 Agent にポリシーファイルを自分でインストールします。Datadog UI でポリシーとそのルールを作成し、生成されたファイルをダウンロードできます。ポリシーの構文をすでに理解している場合は、.policy ファイルを自分で作成します。その後、下記の手順に従って、ポリシーを実行するすべての Agent にそのファイルをアップロードするか同期します。
- Agent Configuration ページで、ポリシーを開きます。
- [Actions] (アクション) で Download Policy を選択します。
次に、下記の手順に従って、各ホストにポリシーファイルをアップロードします。
default.policy ファイルをターゲットホストの /etc/datadog-agent/runtime-security.d フォルダー (すべての .policy ファイルの格納先) にコピーします。ファイルには、ホストの root ユーザーに対する read および write アクセス権が必要です。
変更を適用するには、次のいずれかを実行します。
default.policy を含む ConfigMap を作成します (例: kubectl create configmap jdefaultpol --from-file=default.policy)。
ConfigMap (jdefaultpol) を values.yaml に追加します (datadog.securityAgent.runtime.policies.configMap)。
securityAgent:
# [...]
runtime:
# datadog.securityAgent.runtime.enabled
# Set to true to enable Security Runtime Module
enabled: true
policies:
# datadog.securityAgent.runtime.policies.configMap
# Place custom policies here
configMap: jdefaultpol
# [...]
Helm チャートをアップグレードします (helm upgrade <RELEASENAME> -f values.yaml --set datadog.apiKey=<APIKEY> datadog/datadog)。
注:default.policy にさらに変更を加える必要がある場合は、kubectl edit cm jdefaultpol を使用するか、configMap を kubectl create configmap jdefaultpol --from-file default.policy -o yaml --dry-run=client | kubectl replace -f - に置き換えます。
デフォルトの Agent ルールの無効化
- Agent ルールを無効にするには、Agent Configurationページに移動し、そのルールを使用しているポリシーを選択します。
- ポリシーでルールを開きます。
- ステータスを Inactive に設定します。
- Save Changes をクリックします。
ルール構成でルールを削除すると、そのルールが含まれていたすべてのポリシーからそのルールが削除されます。
カスタムルールの管理の RBAC
カスタムルールの RBAC に使用する重要なロールと権限の一部を次に示します。
security_monitoring_cws_agent_rules_actions 権限は、ルールでブロックモードを有効にするために使用される自動対応機能をオンにして構成するために使用できます。security_monitoring_cws_agent_rules_actions 権限を使用するには、Datadog Admin ロールを持つユーザーが security_monitoring_cws_agent_rules_actions 権限を含むロールを作成し、自動対応を管理するユーザーのみをそのロールに追加する必要があります。
- Datadog Standard ロールを持つユーザーは、操作によってルールの保護設定が変更されない限り、デフォルトでカスタムルールの作成と更新が許可されます。