Terraform を使うと、Datadog IAM ロール、ポリシードキュメント、Datadog-AWS インテグレーションを 1 つの terraform apply コマンドで作成することが可能です。

  1. Datadog Terraform プロバイダーを構成し、Terraform の構成で Datadog API と対話するように設定します。

: Datadog Terraform Provider のバージョン 3.50.0datadog_integration_aws_account リソースは datadog_integration_aws リソースに置き換えられました。datadog_integration_aws リソースからアップグレードするには、datadog_integration_aws リソースからのアップグレードを参照してください。

  1. 以下の例を基本テンプレートとして、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 {     }   } } 

  1. 以下の例を基本テンプレートとして、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 {     }   } } 

  1. 以下の例を基本テンプレートとして、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 {     }   } } 
  1. terraform apply を実行してください。データの収集が始まるまで最大 10 分ほど待ってから、AWS のサービスやインフラストラクチャーから送信されるメトリクスを確認するために、標準で用意されている AWS 概要ダッシュボードをご覧ください。

お役に立つドキュメント、リンクや記事: