Workflow Automation によるセキュリティワークフローの自動化 This product is not supported for your selected
Datadog site . (
).
次で利用可能:
ワークロード保護
|
Cloud Security Misconfigurations
|
Cloud Security Identity Risks
Datadog Workflow Automation は、インフラストラクチャーや各種ツールに接続するアクションを組み合わせてワークフローを構築することで、エンド ツー エンドのプロセスを一元的に管理し、自動化できるようにします。
Cloud Security と Workflow Automation を組み合わせれば、セキュリティ関連のワークフローも自動化できます。たとえば、インタラクティブな Slack メッセージから公開 Amazon S3 バケットへのアクセスをブロックする ワークフローや、Jira issue を自動作成してチームに割り当てる ワークフローを作成できます。
トリガーとソースの仕組みを理解する Workflow Automation では、ワークフローを手動または自動でトリガーできます。本記事のサンプル ワークフローは、サイド パネルで Actions > Run Workflow ボタンをクリックして手動でトリガーしています。
ワークフローをトリガーする際は、トリガー イベントのソース ID をワークフロー内の次のステップへ引き渡す必要があります。本記事の例では、トリガー イベントは新しいセキュリティ ファインディングです。どちらの例でも、ソース ID はワークフローの初期ステップで ソース オブジェクト変数 を使って指定しています。
ワークフローの構築 ワークフローを構築するには、すぐに使えるブループリントからあらかじめ構成されたフローを使用することも、カスタムワークフローを作成することもできます。ワークフローの作成方法の詳細については、Workflow Automation のドキュメント を参照してください。
Slack 経由で Amazon S3 バケットへのアクセスをブロックする この例では、公開 Amazon S3 バケットが検出されたときにインタラクティブな Slack メッセージを送信するリメディエーション ワークフローを作成します。Approve または Reject をクリックすると、S3 バケットへのアクセスを自動的にブロックするか、対応を行わないかを選択できます。
注 : このワークフローを構築するには、Slack インテグレーション を構成する必要があります。
Workflow Automation ページ で、New Workflow をクリックします。Add Trigger > Security をクリックします。ワークフローを実行するには、事前に Security トリガーが必要です。ワークフローの名前を入力し、Save をクリックします。 セキュリティ誤構成の取得 セキュリティ誤構成を取得してワークフローに渡すには、Get security finding アクションを使用します。このアクションは {{ Source.securityFinding.id }} ソースオブジェクト変数を使用して、Get a finding API エンドポイントから誤構成の詳細を取得します。
Add Step をクリックして、ワークフローに最初のステップを追加します。Get security finding アクションを検索して選択し、ワークフローキャンバスにステップとして追加します。ワークフローキャンバスのステップをクリックして構成します。 Finding ID には、{{ Source.securityFinding.id }} を入力します。Save をクリックしてワークフローを保存します。JS 関数の追加 次に、JavaScript Data Transformation Function アクションをキャンバスに追加し、誤構成のタグからリージョン名を返すように構成します。
ワークフローキャンバスのプラス (+) アイコンをクリックして、別のステップを追加します。 JS Function アクションを検索して選択し、ワークフローキャンバスにステップとして追加します。ワークフローキャンバスのステップをクリックし、スクリプトエディターに以下を貼り付けます。
Copy
// 誤構成タグからリージョン情報を取得します
// トリガーやステップのデータにアクセスするには `$` を使用します。
// Lodash にアクセスするには `_` を使用します。
// https://lodash.com/ を参照してください。
let tags = $ . Steps . Get_security_finding . tags
let region = tags . filter ( t => t . includes ( 'region:' ))
if ( region . length == 1 ){
return region [ 0 ]. split ( ':' )[ 1 ]
} else {
return '' ;
}
Slack アクションの追加 ワークフローキャンバスのプラス (+) アイコンをクリックして、別のステップを追加します。 Slack の Make a decision アクションを検索して選択し、ワークフローキャンバスにステップとして追加します。 ワークフローキャンバスのステップをクリックし、以下の情報を入力します。Workspace : Slack ワークスペースの名前。Channel : Slack メッセージの送信先チャンネル。Prompt text : Slack メッセージで選択ボタンの直上に表示されるテキストです。例: “Would you like to block public access for {{ Steps.Get_security_finding.resource }} in region {{ Steps.GetRegion.data }}?” ワークフローの承認 ワークフローキャンバスの Approve の下にあるプラス (+) アイコンをクリックして、別のステップを追加します。 Amazon S3 の Block Public Access アクションを検索し、ワークフロー キャンバスにステップとして追加します。 ワークフローキャンバスのステップをクリックし、以下の情報を入力します。Connection : AWS インテグレーションのワークフロー接続名。Region : {{ Steps.GetRegion.data }}Bucket name : {{ Steps.Get_security_finding.resource }} ワークフローキャンバスの Block public access ステップの下にあるプラス (+) アイコンをクリックして、別のステップを追加します。 Slack の Send message アクションを検索して選択し、ワークフローキャンバスにステップとして追加します。 ワークフローキャンバスのステップをクリックし、以下の情報を入力します。Workspace : Slack ワークスペースの名前。Channel : Slack メッセージの送信先チャンネル。Message text : Slack メッセージに表示されるテキスト。例:
Copy
S3 バケット `{{ Steps.Get_security_finding.resource }}` は正常にブロックされました。AWS API のレスポンス:
```{{ Steps.Block_public_access }}```
この問題は、次にリソースがスキャンされるときに修正済みとしてマークされます。これには最大で 1 時間程度かかります。
拒否ワークフロー ワークフローキャンバスの Reject の下にあるプラス (+) アイコンをクリックして、別のステップを追加します。 Slack の Send message アクションを検索して選択し、ワークフローキャンバスにステップとして追加します。 ワークフローキャンバスのステップをクリックし、以下の情報を入力します。Workspace : Slack ワークスペースの名前。Channel : Slack メッセージの送信先チャンネル。Message text : Slack メッセージに表示されるテキスト。例: 「ユーザーはアクションを拒否しました。」 Save をクリックします。Jira 課題の自動作成と割り当て この例では、セキュリティ ファインディングが検出されたときに Jira issue を作成し、適切なチームへ割り当てる自動チケット ルーティング ワークフローを作成します。
注 : このワークフローを構築するには、Jira インテグレーション を構成する必要があります。
Workflow Automation ページ で、New Workflow をクリックします。Add Trigger > Security をクリックします。ワークフローを実行するには、事前に Security トリガーが必要です。ワークフローの名前を入力し、Save をクリックします。 セキュリティ所見を取得する ファインディングを取得してワークフローへ渡すには、Get security finding アクションを使用します。このアクションは、{{ Source.securityFinding.id }} というソース オブジェクト変数を使い、Get a finding API エンドポイントからファインディングの詳細を取得します。
Add Step をクリックして、ワークフローに最初のステップを追加します。Get security finding アクションを検索して選択し、ワークフローキャンバスにステップとして追加します。ワークフローキャンバスのステップをクリックして構成します。 Security ID に {{ Source.securityFinding.id }} を入力します。Jira アクションの追加 ワークフローキャンバスのプラス (+) アイコンをクリックして、別のステップを追加します。 Jira の Create issue アクションを検索し、ワークフロー キャンバスにステップとして追加します。 ワークフローキャンバスのステップをクリックし、以下の情報を入力します。Jira account : Jira アカウントの URL。Project : {{ Source.securityFinding.tags_value.team }}Summary : {{ Source.securityFinding.rule.name }} Save をクリックします。ワークフローをトリガーする 既存のワークフローは、誤構成またはアイデンティティ リスクのエクスプローラーからトリガーできるほか、サイド パネルでリソースを開いているときにも実行できます。
エクスプローラーでは、リソースにカーソルを合わせ、表示された Actions のドロップダウンをクリックしてから、Run workflow をクリックします。 サイド パネルの Next Steps セクションで Run Workflow をクリックし、実行するワークフローを選択します。 実行できるワークフローの一覧に表示するには、ワークフローに Security トリガーが含まれている必要があります。ワークフローによっては、インシデントの詳細や重大度、影響を受けた S3 バケット名、またはアラートを送信する Slack チャンネルなど、追加の入力パラメーターを入力する必要がある場合があります。
ワークフロー実行後、サイドパネルに追加情報が表示されます。リンクをクリックすると、ワークフローを表示できます。
その他の参考資料