概要

このガイドを使用して、Datadog AWS インテグレーションを手動でセットアップします。

AWS インテグレーションを手動で設定するには、AWS アカウントで IAM ポリシーと IAM ロールを作成し、Datadog アカウントで生成された AWS External ID でそのロールを構成します。これにより、Datadog の AWS アカウントは、自動的に AWS API をクエリし、Datadog アカウントにデータをプルすることができます。以下のセクションでは、これらの各コンポーネントを作成し、Datadog アカウントでセットアップを完了するための手順を詳しく説明します。

ロール委任を使用した S3 ログアーカイブの設定は現在限定的に利用可能です。Datadog for Government アカウントでこの機能をリクエストするには、Datadog サポートにお問い合わせください

セットアップ

外部 ID を生成する

  1. AWS インテグレーション構成ページで、Add AWS Account をクリックし、** Manually** を選択します。
  2. アクセスタイプで Role Delegation を選択し、AWS External ID をコピーします。外部 ID の詳細については、IAM ユーザーガイドをご参照ください。 : 外部 ID は、ユーザーにより明示的に変更されたり、別の AWS アカウントが Datadog に追加されたりしない限り、48 時間は利用可能な状態となり、再生成されません。その時間内に Add New AWS Account ページに戻り、アカウントの追加プロセスを完了すれば、外部 ID が変更されることはありません。

Datadog のための AWS IAM ポリシー

Datadog が提供するすべての AWS インテグレーションを利用するために、AWS アカウントの Datadog ロールに必要な権限を持つ IAM ポリシーを作成します。インテグレーションに他のコンポーネントが追加されると、これらの権限は変更される可能性があります。

  1. AWS IAM コンソールで新しいポリシーを作成します。
  2. JSON タブを選択します。テキストボックスに権限ポリシーを貼り付けます。 : オプションで、IAM ポリシーに Condition 要素を追加できます。例えば、特定の地域に監視を制限するために条件を使用できます。
  3. Next: TagsNext: Review をクリックします。
  4. ポリシーに DatadogIntegrationPolicy、または自分が選択した名前を付け、適切な説明を入力します。
  5. Create policy をクリックします。

Datadog のための AWS IAM ロール

IAM ポリシーで定義された権限を使用するために、Datadog 用の IAM ロールを作成します。

  1. AWS IAM コンソールで新しいロールを作成します。
  2. 信頼されるエンティティの種類で AWS account を選択し、Another AWS account を選択します。

  1. Account ID として、464622532012 を入力します。これは Datadog のアカウント ID で、Datadog に AWS のデータへのアクセスを許可するものです。

  1. Account ID として、417141415827 を入力します。これは Datadog のアカウント ID で、Datadog に AWS のデータへのアクセスを許可するものです。

  1. 統合したい AWS アカウントが GovCloud アカウントである場合は Account ID065115117704 を、それ以外の場合は 392588925713 を入力します。これは Datadog のアカウント ID で、Datadog に AWS のデータへのアクセスを許可するものです。

  1. Require external ID を選択し、外部 ID を生成するセクションでコピーした外部 ID を入力します。 Require MFA を無効にしたままにしてください。詳しくは、AWS のドキュメント、第三者にお客様の AWS リソースへのアクセスを許可する際の外部 ID の使用方法をご覧ください。
  2. Next をクリックします。
  3. すでにポリシーを作成している場合は、このページで検索し、選択してください。そうでない場合は、新しいウィンドウで開く Create Policy をクリックし、前のセクションの指示に従います。
  4. オプションで、Cloud Security Management Misconfigurations を使用するための AWS SecurityAudit ポリシーをロールにアタッチします。
  5. Next をクリックします。
  6. ロールに DatadogIntegrationRole などの名前を付け、適切な説明を入力します。
  7. Create Role をクリックします。

Datadog で設定を完了する

  1. 別のタブで開いていた Datadog のアカウントを手動で追加するための AWS インテグレーション構成ページに戻ります。チェックボックスをクリックして、Datadog の IAM ロールが AWS アカウントに追加されたことを確認します。
  2. アカウント ID をダッシュなしで入力します (例: 123456789012)。アカウント ID は、Datadog 用に作成されたロールの ARN で確認することができます。
  3. 前のセクションで作成したロールの名前を入力し、Save をクリックします。 : インテグレーションタイルに入力する名前は大文字と小文字が区別され、AWS のロール名と完全に一致する必要があります。
  4. Datadog is not authorized to perform sts:AssumeRole エラーが発生した場合は、UI で推奨されているトラブルシューティングの手順を実行するか、トラブルシューティングガイドを読んでください。
  5. データ収集が開始されるまで最大 10 分待ち、すぐに使える AWS 概要ダッシュボードを表示し、AWS サービスやインフラストラクチャーから送信されるメトリクスを確認します。

セットアップ

AWS

  1. AWS のコンソールで、Datadog インテグレーションで使用する IAM ユーザーを必要な権限で作成します。
  2. Datadog インテグレーション IAM ユーザー用のアクセスキーとシークレットキーを生成します。

Datadog

  1. AWS インテグレーションタイルで、Add AWS Account をクリックし、** Manually** を選択します。
  2. Access Keys (GovCloud or China* Only) タブを選択します。
  3. I confirm that the IAM User for the Datadog Integration has been added to the AWS Account (Datadog インテグレーション用の IAM ユーザーが AWS アカウントに追加されていることを確認します) チェックボックスをクリックします。
  4. Account IDAWS Access KeyAWS Secret Key を入力します。GovCloud および中国用のアクセスキーとシークレットキーのみが許可されます。
  5. Save をクリックします。
  6. データ収集が開始されるまで最大 10 分待ち、すぐに使える AWS 概要ダッシュボードを表示し、AWS サービスやインフラストラクチャーから送信されるメトリクスを確認します。

* 中国本土における (または中国本土内の環境に関連する) Datadog サービスの使用はすべて、当社 Web サイトの[サービス制限地域][10]セクションに掲載されている免責事項に従うものとします。

AWS IAM permissions

AWS IAM permissions enable Datadog to collect metrics, tags, EventBridge events, and other data necessary to monitor your AWS environment.

To correctly set up the AWS Integration, you must attach the relevant IAM policies to the Datadog AWS Integration IAM Role in your AWS account.

AWS integration IAM policy

The set of permissions necessary to use all the integrations for individual AWS services.

The following permissions included in the policy document use wild cards such as List* and Get*. If you require strict policies, use the complete action names as listed and reference the Amazon API documentation for your respective services.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "apigateway:GET",
                "autoscaling:Describe*",
                "backup:List*",
                "backup:ListRecoveryPointsByBackupVault",
                "bcm-data-exports:GetExport",
                "bcm-data-exports:ListExports",
                "budgets:ViewBudget",
                "cassandra:Select",
                "cloudfront:GetDistributionConfig",
                "cloudfront:ListDistributions",
                "cloudtrail:DescribeTrails",
                "cloudtrail:GetTrailStatus",
                "cloudtrail:LookupEvents",
                "cloudwatch:Describe*",
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "codedeploy:BatchGet*",
                "codedeploy:List*",
                "cur:DescribeReportDefinitions",
                "directconnect:Describe*",
                "dynamodb:Describe*",
                "dynamodb:List*",
                "ec2:Describe*",
                "ec2:GetSnapshotBlockPublicAccessState",
                "ec2:GetTransitGatewayPrefixListReferences",
                "ec2:SearchTransitGatewayRoutes",
                "ecs:Describe*",
                "ecs:List*",
                "elasticache:Describe*",
                "elasticache:List*",
                "elasticfilesystem:DescribeAccessPoints",
                "elasticfilesystem:DescribeFileSystems",
                "elasticfilesystem:DescribeTags",
                "elasticloadbalancing:Describe*",
                "elasticmapreduce:Describe*",
                "elasticmapreduce:List*",
                "es:DescribeElasticsearchDomains",
                "es:ListDomainNames",
                "es:ListTags",
                "events:CreateEventBus",
                "fsx:DescribeFileSystems",
                "fsx:ListTagsForResource",
                "glacier:GetVaultNotifications",
                "glue:ListRegistries",
                "health:DescribeAffectedEntities",
                "health:DescribeEventDetails",
                "health:DescribeEvents",
                "kinesis:Describe*",
                "kinesis:List*",
                "lambda:GetPolicy",
                "lambda:List*",
                "lightsail:GetInstancePortStates",
                "logs:DeleteSubscriptionFilter",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:DescribeSubscriptionFilters",
                "logs:FilterLogEvents",
                "logs:PutSubscriptionFilter",
                "logs:TestMetricFilter",
                "oam:ListAttachedLinks",
                "oam:ListSinks",
                "organizations:Describe*",
                "organizations:List*",
                "rds:Describe*",
                "rds:List*",
                "redshift:DescribeClusters",
                "redshift:DescribeLoggingStatus",
                "route53:List*",
                "s3:GetBucketLocation",
                "s3:GetBucketLogging",
                "s3:GetBucketNotification",
                "s3:GetBucketTagging",
                "s3:ListAccessGrants",
                "s3:ListAllMyBuckets",
                "s3:PutBucketNotification",
                "savingsplans:DescribeSavingsPlanRates",
                "savingsplans:DescribeSavingsPlans",
                "ses:Get*",
                "sns:GetSubscriptionAttributes",
                "sns:List*",
                "sns:Publish",
                "sqs:ListQueues",
                "states:DescribeStateMachine",
                "states:ListStateMachines",
                "support:DescribeTrustedAdvisor*",
                "support:RefreshTrustedAdvisorCheck",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "timestream:DescribeEndpoints",
                "waf-regional:ListRuleGroups",
                "waf-regional:ListRules",
                "waf:ListRuleGroups",
                "waf:ListRules",
                "wafv2:GetIPSet",
                "wafv2:GetLoggingConfiguration",
                "wafv2:GetRegexPatternSet",
                "wafv2:GetRuleGroup",
                "wafv2:ListLoggingConfigurations",
                "xray:BatchGetTraces",
                "xray:GetTraceSummaries"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

AWS resource collection IAM policy

To use resource collection, you must attach AWS’s managed SecurityAudit Policy to your Datadog IAM role.

Notes:

  • Warning messages appear on the AWS integration tile in Datadog if you enable resource collection, but do not have the AWS Security Audit Policy attached to your Datadog IAM role.
  • To enable Datadog to collect account management resources from account.GetAlternateContact and account.GetContactInformation, you need to enable trusted access for AWS account management.