Terraform で Datadog を管理する
概要
Terraform を使用して Datadog API と対話し、Datadog 組織、子組織、ユーザー、認証情報、権限などを管理できます。このガイドでは Terraform で Datadog を管理するためのユースケース例を、Terraform レジストリの一般的に使用される Datadog リソースおよびデータ ソースへのリンクとともに紹介します。
既存リソースをインポートして Terraform 構成に取り込むことで、将来 Terraform 経由で管理できるようになります。また、既存リソースを Terraform のデータ ソースとして参照することもできます。
セットアップ
まだ設定していない場合は、Datadog Terraform プロバイダーを構成して Datadog API と連携できるようにしてください。
ユーザー、ロール、チーム、およびサービス アカウント
以下のリソースおよびデータ ソースを使用すると、最小権限のセキュリティ原則に従い、Datadog 組織内で操作を行うユーザー、チーム、サービス アカウントに対して必要な権限のみを付与できます。
ユーザー
アカウントのユーザーを作成し、利用可能なデフォルトまたはカスタム ロールのいずれかを割り当てます。また、AuthN マッピングリソースを使用して、SAML 属性に基づいてユーザーに自動的にロールを割り当てることもできます。既存のユーザー、ロール、AuthN マッピングを Terraform 構成にインポートすることも可能です。
ユーザー データ ソースを使用して、Terraform 構成内の既存ユーザーに関する情報を取得し、Datadog チーム メンバーシップ リソースなどの他のリソースで利用できます。
ロール
Datadog はユーザー権限向けに 3 つのマネージド ロールを提供しますが、ロール リソースを使用してカスタム ロールを作成・管理することも可能です。
ロール データ ソースを使用して、既存ロールに関する情報を取得し、Datadog ユーザー リソースなどの他のリソースで利用できます。
チーム
Datadog チームリソースを使用して、特定のリソースをユーザー グループに関連付け、そのリソースを優先して Datadog のエクスペリエンスをフィルタリングします。チーム メンバーシップ リソースでチーム メンバーシップを管理し、チーム権限設定リソースでチームを管理できるユーザーを制御します。
チーム データ ソースおよびチーム メンバーシップ データ ソースを使用して、既存のチームおよびチーム メンバーシップに関する情報をそれぞれ取得し、他のリソースで利用できます。
詳細はチーム ページを参照してください。
サービス アカウント
サービス アカウント リソースは、チーム間で共有されるサービス アカウント アプリケーション キーやその他リソースの所有者として使用できる、非対話型アカウントを提供します。
既存のサービス アカウントに関する情報を取得して他のリソースで利用する場合は、サービス アカウント データ ソースを使用します。
詳細はサービス アカウントを参照してください。
資格情報
API キーとアプリケーション キー
API キーは Datadog アカウントへのデータ送信を、アプリケーション キーは Datadog アカウント内でのリソース作成を許可します。既存の資格情報をインポートすることも可能です。
既に Terraform で管理している資格情報の情報を取得するには、API キー データ ソースとアプリケーション キー データ ソースを使用します。
組織
組織レベルのリソースを使用すると、単一アカウント環境とマルチアカウント環境の両方で組織設定を管理できます。
組織設定
組織設定リソースを使用して、アカウントのアクセス権やウィジェット共有機能を構成します。たとえば、IdP エンドポイントや login URL、SAML ストリクト モードの有効化などを管理できます。詳細は SAML によるシングル サインオンを参照してください。
既存の組織設定を Terraform 構成にインポートすることも可能です。
子組織
Multi-organization Account 機能はデフォルトでは無効です。有効化するには
Datadog サポートへお問い合わせください。
隔離された環境を維持する必要がある場合は、親組織の下に子組織を作成できます。親アカウントから関連サブアカウントの使用状況を追跡でき、複数組織にアクセス権を持つユーザーはワンクリックで組織を切り替えられます。
詳細は複数組織アカウントの管理を参照してください。
注: 子組織は親組織の SAML 設定を継承しません。
制限ポリシー
制限ポリシーは特定のリソースに関連付けられ、ロール、チーム、ユーザーに付与されるアクセス レベルを定義します。制限ポリシー リソースを使用して制限ポリシーを作成・管理するか、既存の制限ポリシーを Terraform 構成にインポートしてください。
参考資料