Datadog App Builderを使ってDatadogコンソールからEC2を操作してみた
こんにちは。テクニカルサポートチームのShiinaです。
はじめに
Datadog を利用していると、AWS マネジメントコンソールと Datadog コンソールを行き来するのが面倒だなぁと感じる場面があります。
Datadog App Builder を使うと、Datadog コンソール上から直接 AWS リソースの操作が行うことができます。
今回は、EC2 インスタンスの管理アプリケーションでインスタンス操作をやってみました。
Datadog App Builder とは
ローコードでアプリケーションを構築できる Datadog の機能です。
AWS や GitHub など主要サービスとの連携が簡単に行えます。
JavaScript の組み込みもサポートされているため、カスタムロジックとして機能の拡張も行えます。
ブループリント
すぐに使えるアプリケーションがブループリントとして提供されています。
まずはブループリントを利用して操作感や設計図の構成を把握していくのがよいと思います。
現時点では48種類の設計図が提供されており、クラウド・開発・運用・AI ツールの操作や管理ができる機能が揃っています。
- AWSリソース管理
EC2、RDS、S3、ECS、EKS、Lambda、DynamoDB、Auto Scaling、Step Functions、Elastic Beanstalk、証明書管理など - クラウド管理
Google Compute Engine、Azure VM・Web Apps - CI/CD・開発支援
GitHub/GitLab(プロジェクト・PR管理、Terraform連携、Actions)
Jira、ServiceNow、Statuspage(チケット・インシデント管理) - モニタリング・アラート
Datadog(メトリクス・モニター・SLO管理)
Instabug(モバイルセッション調査) - インシデント・オンコール管理
PagerDuty、OpsGenie - ID・ユーザー管理
Okta(ユーザー・グループ・ロール管理) - AIツール
PR要約、回帰分析、プロンプト応答(OpenAI)
使ってみた
今回はブループリントとして提供されている「Manage EC2 Instances」を使って Datadog コンソールから EC2 を操作してみます。
1. IAMロールの作成
AWS と連携するロールを作成します。
- ロール名:任意の名前(例:DatadogAppBuilderEC2ManageRole)
- ポリシー:AmazonEC2FullAccess
2.コネクションの設定
- Datadog コンソールの Actions より Connections を選択します。
- New Connection を選択します。
- AWS のアイコンを選択し、次の値を入力します。
- Connection Name:任意の名前(例:EC2ManageConnection)
- Account ID:AWS アカウントID
- AWS Role Name:事前に作成した IAM ロール名
-
適切なアクセス権限を選択します。
権限範囲は自分、チーム、組織、カスタムから選択ができます。
-
external ID と信頼ポリシーが生成されるのでコピーします。
3. IAM ロールの信頼ポリシー更新
- 作成したロールの信頼関係タブより「信頼ポリシーを編集」を選択します。
- コピーした信頼ポリシーを貼り付け、ポリシーを更新します。
4.ブループリントからアプリケーション作成
-
下記 URL にアクセスします。
https://app.datadoghq.com/app-builder/apps/edit?startModalOpen=false&template=ec2_instance_manager&viewMode=templatePreview -
Setup your connection のプルダウンメニュから作成したコネクションを選択します。
-
ブループリントではデフォルトリージョンがバージニア北部となっているため、利用しているリージョンに切り替えます。(今回は東京リージョンに切り替えます)
-
Open in Editor を選択し、ACTIONS より listInstances を選択します。
-
Region のプルダウンメニュから ap-northeast-1 を選択します。
-
同様に startInstance、stopInstance、rebootInstance もリージョンを切り替えます。
-
Save as New App を選択し、保存します。
-
Preview を選択し、アプリケーション動作を確認します。
-
EC2 インスタンス一覧が表示されていれば設定は完了です。
5. アプリケーションから EC2 インスタンスを起動する
- Datadog コンソールの Actions より App Builder を選択します。
- アプリケーション一覧より作成したアプリケーションを選択します。
- EC2 インスタンスに対して ACTIONS から Start を選択します。
- 確認が求められるので Confirm を選択します。
しばらくすると、EC2 インスタンスの起動が行われ、STATE が RUNNING になりました。
監査ログの注意点
どのユーザが操作したかを調査したい場合、CloudTrail のログだけでは特定できない点に注意が必要です。
アプリケーションから EC2 インスタンスの起動を行った場合、CloudTrail のログを確認すると、EC2 インスタンスの起動イベント(StartInstances)が記録されます。
IAM ロール「DatadogAppBuilderEC2ManageRole」に対して「DatadogAWSIntegration」というセッション名で AssumeRole し、アクションが実施されたことしか分かりません。
Datadog コンソールからアプリケーション経由で誰が操作を行ったのかを調査したい場合は Datadog の Audit Trail を有効化する必要があります。
Audit Trail を利用することで、実際に操作したユーザーを特定することが可能となります。
たとえば @evt.name:"App Builder" startInstance
といったクエリで該当イベントを検索することができます。
権限管理
Datadog App Builder を活用して AWSリソースを操作する場合、特に本番環境では「誰が」「どの範囲で」アプリケーションを利用できるかを明確にし、適切な権限管理を行うことが非常に重要です。
運用開始前に、利用者の範囲や権限を十分に検討し、アプリケーションの利用権限をユーザー・チーム・組織単位で適切に設定しましょう。
これにより、不要な操作や誤操作、セキュリティリスクを未然に防ぐことができます。
まとめ
Datadog App Builder を活用すると、これまで AWS マネジメントコンソールで行っていた一部の操作を Datadog コンソール上からシームレスに実行できるようになるため、とても面白い機能だと感じました。
ブループリントを利用することで、初めての方でも手軽にアプリケーションを作成・導入できる点も大きな魅力です。
運用時には権限管理や監査ログには注意が必要ですが、今後も Datadog App Builder の進化に期待したいですね。
本記事が参考になれば幸いです。
参考