AWS と Terraform のインテグレーション
Terraform を使うと、Datadog IAM ロール、ポリシードキュメント、Datadog-AWS インテグレーションを 1 つの terraform apply コマンドで作成することが可能です。
- Datadog Terraform プロバイダーを構成し、Terraform の構成で Datadog API と対話するように設定します。
注: Datadog Terraform Provider のバージョン 3.50.0 で datadog_integration_aws_account リソースは datadog_integration_aws リソースに置き換えられました。datadog_integration_aws リソースからアップグレードするには、datadog_integration_aws リソースからのアップグレードを参照してください。
- 以下の例を基本テンプレートとして、Terraform のコンフィギュレーションファイルを設定します。変更を適用する前に、以下のパラメーターを確実に更新してください。
AWS_PERMISSIONS_LIST: Datadog AWS インテグレーションが必要とする IAM ポリシー。現在のリストは、Datadog AWS インテグレーションのドキュメントで確認できます。AWS_ACCOUNT_ID: AWS アカウント ID。
さらなる使用例やオプションパラメーターの全リスト、Datadog の追加リソースについては、Terraform Registry を参照してください。
data "aws_iam_policy_document" "datadog_aws_integration_assume_role" { statement { actions = ["sts:AssumeRole"] principals { type = "AWS" identifiers = ["arn:aws:iam::464622532012:root"] } condition { test = "StringEquals" variable = "sts:ExternalId" values = [ "${datadog_integration_aws_account.datadog_integration.auth_config.aws_auth_config_role.external_id}" ] } } } data "aws_iam_policy_document" "datadog_aws_integration" { statement { actions = [<AWS_PERMISSIONS_LIST>] resources = ["*"] } } resource "aws_iam_policy" "datadog_aws_integration" { name = "DatadogAWSIntegrationPolicy" policy = data.aws_iam_policy_document.datadog_aws_integration.json } resource "aws_iam_role" "datadog_aws_integration" { name = "DatadogIntegrationRole" description = "Datadog AWS インテグレーション用ロール" assume_role_policy = data.aws_iam_policy_document.datadog_aws_integration_assume_role.json } resource "aws_iam_role_policy_attachment" "datadog_aws_integration" { role = aws_iam_role.datadog_aws_integration.name policy_arn = aws_iam_policy.datadog_aws_integration.arn } resource "aws_iam_role_policy_attachment" "datadog_aws_integration_security_audit" { role = aws_iam_role.datadog_aws_integration.name policy_arn = "arn:aws:iam::aws:policy/SecurityAudit" } resource "datadog_integration_aws_account" "datadog_integration" { account_tags = [] aws_account_id = "<ACCOUNT_ID>" aws_partition = "aws" aws_regions { include_all = true } auth_config { aws_auth_config_role { role_name = "DatadogIntegrationRole" } } resources_config { cloud_security_posture_management_collection = true extended_collection = true } traces_config { xray_services { } } logs_config { lambda_forwarder { } } metrics_config { namespace_filters { } } }
- 以下の例を基本テンプレートとして、Terraform のコンフィギュレーションファイルを設定します。変更を適用する前に、以下のパラメーターを確実に更新してください。
AWS_PERMISSIONS_LIST: Datadog AWS インテグレーションが必要とする IAM ポリシー。現在のリストは、Datadog AWS インテグレーションのドキュメントで確認できます。AWS_ACCOUNT_ID: AWS アカウント ID。
さらなる使用例やオプションパラメーターの全リスト、Datadog の追加リソースについては、Terraform Registry を参照してください。
data "aws_iam_policy_document" "datadog_aws_integration_assume_role" { statement { actions = ["sts:AssumeRole"] principals { type = "AWS" identifiers = ["arn:aws:iam::417141415827:root"] } condition { test = "StringEquals" variable = "sts:ExternalId" values = [ "${datadog_integration_aws_account.datadog_integration.auth_config.aws_auth_config_role.external_id}" ] } } } data "aws_iam_policy_document" "datadog_aws_integration" { statement { actions = [<AWS_PERMISSIONS_LIST>] resources = ["*"] } } resource "aws_iam_policy" "datadog_aws_integration" { name = "DatadogAWSIntegrationPolicy" policy = data.aws_iam_policy_document.datadog_aws_integration.json } resource "aws_iam_role" "datadog_aws_integration" { name = "DatadogIntegrationRole" description = "Datadog AWS インテグレーション用ロール" assume_role_policy = data.aws_iam_policy_document.datadog_aws_integration_assume_role.json } resource "aws_iam_role_policy_attachment" "datadog_aws_integration" { role = aws_iam_role.datadog_aws_integration.name policy_arn = aws_iam_policy.datadog_aws_integration.arn } resource "aws_iam_role_policy_attachment" "datadog_aws_integration_security_audit" { role = aws_iam_role.datadog_aws_integration.name policy_arn = "arn:aws:iam::aws:policy/SecurityAudit" } resource "datadog_integration_aws_account" "datadog_integration" { account_tags = [] aws_account_id = "<ACCOUNT_ID>" aws_partition = "aws" aws_regions { include_all = true } auth_config { aws_auth_config_role { role_name = "DatadogIntegrationRole" } } resources_config { cloud_security_posture_management_collection = true extended_collection = true } traces_config { xray_services { } } logs_config { lambda_forwarder { } } metrics_config { namespace_filters { } } }
- 以下の例を基本テンプレートとして、Terraform のコンフィギュレーションファイルを設定します。変更を適用する前に、以下のパラメーターを確実に更新してください。
AWS_PERMISSIONS_LIST: Datadog AWS インテグレーションが必要とする IAM ポリシー。現在のリストは、Datadog AWS インテグレーションのドキュメントで確認できます。AWS_ACCOUNT_ID: AWS アカウント ID。
さらなる使用例やオプションパラメーターの全リスト、Datadog の追加リソースについては、Terraform Registry を参照してください。
data "aws_iam_policy_document" "datadog_aws_integration_assume_role" { statement { actions = ["sts:AssumeRole"] principals { type = "AWS" identifiers = ["arn:aws:iam::065115117704:root"] } condition { test = "StringEquals" variable = "sts:ExternalId" values = [ "${datadog_integration_aws_account.datadog_integration.auth_config.aws_auth_config_role.external_id}" ] } } } data "aws_iam_policy_document" "datadog_aws_integration" { statement { actions = [<AWS_PERMISSIONS_LIST>] resources = ["*"] } } resource "aws_iam_policy" "datadog_aws_integration" { name = "DatadogAWSIntegrationPolicy" policy = data.aws_iam_policy_document.datadog_aws_integration.json } resource "aws_iam_role" "datadog_aws_integration" { name = "DatadogIntegrationRole" description = "Datadog AWS インテグレーション用ロール" assume_role_policy = data.aws_iam_policy_document.datadog_aws_integration_assume_role.json } resource "aws_iam_role_policy_attachment" "datadog_aws_integration" { role = aws_iam_role.datadog_aws_integration.name policy_arn = aws_iam_policy.datadog_aws_integration.arn } resource "aws_iam_role_policy_attachment" "datadog_aws_integration_security_audit" { role = aws_iam_role.datadog_aws_integration.name policy_arn = "arn:aws:iam::aws:policy/SecurityAudit" } resource "datadog_integration_aws_account" "datadog_integration" { account_tags = [] aws_account_id = "<ACCOUNT_ID>" aws_partition = "aws" aws_regions { include_all = true } auth_config { aws_auth_config_role { role_name = "DatadogIntegrationRole" } } resources_config { cloud_security_posture_management_collection = true extended_collection = true } traces_config { xray_services { } } logs_config { lambda_forwarder { } } metrics_config { namespace_filters { } } }
terraform apply を実行してください。データの収集が始まるまで最大 10 分ほど待ってから、AWS のサービスやインフラストラクチャーから送信されるメトリクスを確認するために、標準で用意されている AWS 概要ダッシュボードをご覧ください。