AWS

概要

Amazon Web Services (AWS) を接続すると、次のことができるようになります。

  • イベントストリームで AWS ステータスの自動更新を確認する
  • Agent をインストールすることなく、EC2 ホストの CloudWatch メトリクスを取得する
  • EC2 ホストに EC2 固有の情報をタグ付けする
  • EC2 のスケジュール設定されたメンテナンス イベントをストリームに表示する
  • その他のさまざまな AWS 製品から CloudWatch メトリクスとイベントを収集する
  • イベントストリームで CloudWatch アラームを確認する

AWS インテグレーションをすぐに使い始めるには、AWS スタートガイドをご確認ください。

Datadog の Amazon Web Services インテグレーションは、CloudWatch からすべてのメトリクス を収集するように構築されています。Datadog では継続的にドキュメントを更新してすべてのサブインテグレーションを表示できるように努めていますが、新しいメトリクスやサービスがクラウドサービスから次々にリリースされるため、インテグレーション一覧が追い付かないことがあります。
インテグレーション説明
API GatewayAPI の作成、公開、管理、セキュリティ保護
App Runnerソースコードまたはコンテナイメージから高速、シンプル、かつ費用対効果の高いデプロイを可能にするサービス。
AppstreamAWS 上のフルマネージド型のアプリケーションストリーミング
AppSyncリアルタイムのデータ同期機能とオフラインのプログラミング機能を備えた GraphQL サービス
Athenaサーバーレスのインタラクティブなクエリサービス
AutoscalingEC2 容量のスケーリング
Billing請求と予算
CloudFrontローカルのコンテンツ配信ネットワーク
Cloudhsmマネージド型のハードウェアセキュリティモジュール (HSM)
CloudSearchログファイルおよび AWS API 呼び出しへのアクセス
CloudTrailログファイルおよび AWS API 呼び出しへのアクセス
CodeBuildフルマネージド型のビルドサービス
CodeDeployコードデプロイの自動化
Cognitoセキュリティ保護されたユーザーのサインアップとサインイン
Connectセルフサービス型のクラウドベースコンタクトセンターサービス
Direct ConnectAWS への専用ネットワーク接続
DMSデータベース移行サービス
DocumentDBMongoDB 互換データベース
Dynamo DBNoSQL データベース
EBS (Elastic Block Store)永続的なブロックレベルのストレージボリューム
EC2 (Elastic Cloud Compute)クラウドのサイズ変更可能なコンピュート容量
EC2 Spot未使用の EC2 容量の活用
ECS (Elastic Container Service)Docker コンテナをサポートするコンテナ管理サービス
EFS (Elastic File System)共有ファイルストレージ
EKSKubernetes 用の Elastic Container Service
Elastic Transcoderクラウドでのメディアおよびビデオコード変換
ElastiCacheクラウドのインメモリキャッシュ
Elastic BeanstalkWeb アプリケーションとサービスのデプロイとスケーリングを行うサービス
ELB (Elastic Load Balancing)着信アプリケーショントラフィックを複数の Amazon EC2 インスタンス間で分散
EMR (Elastic Map Reduce)Hadoop を使用するデータ処理
ES (Elasticsearch)Elasticsearch クラスターのデプロイ、操作、スケーリング
Firehoseストリーミングデータの取得とロード
FSxWindows File Server または Lustre にスケーラブルなストレージを提供するフルマネージド型のサービス。
Gamelift専用ゲームサーバーホスティング
Glue分析のためのデータの抽出、変換、ロード
GuardDutyインテリジェントな脅威の検出
HealthAWS のリソース、サービス、アカウントの状態の可視化
Inspector自動化されたセキュリティ評価
IOT (Internet of Things)クラウドサービスへの IOT デバイスの接続
KeyspacesApache Cassandra 互換のマネージド型データベースサービス
Kinesis大規模な分散データストリームをリアルタイムに処理するサービス
KMS (Key Management Service)暗号キーの作成と制御
Lambdaサーバーレスコンピューティング
Lex会話ボットの構築
Machine Learning機械学習モデルの作成
MediaConnectライブビデオの転送
MediaConvert放送およびマルチ画面配信のためのビデオ処理
MediaPackageインターネット配信のためのビデオの準備と保護
MediaTailorスケーラブルなサーバー側広告挿入
MQActiveMQ 向けのマネージド型メッセージブローカー
Managed Streaming for KafkaApache Kafka を使用してストリーミングデータを処理するアプリケーションの構築と実行
NAT Gatewayプライベートサブネット内のインスタンスをインターネットまたは他の AWS サービスに接続可能
Neptuneクラウド向けに構築された高速・高信頼性のグラフデータベース
Network FirewallVPC の境界でトラフィックを絞り込み
OpsWorks構成管理
Pollyテキスト読み上げサービス
RDS (Relational Database Service)クラウドのリレーショナルデータベース
Redshiftデータウェアハウスソリューション
Rekognitionアプリケーション向けのイメージおよびビデオ分析
Route 53DNS とトラフィック管理と可用性のモニタリング
S3 (Simple Storage Service)高可用性・スケーラブルなクラウドストレージサービス
SageMaker機械学習モデルおよびアルゴリズム
SES (Simple Email Service)費用効率の高いアウトバウンド専用のメール送信サービス
SNS (Simple Notification System)アラートと通知
SQS (Simple Queue Service)メッセージキューサービス
Storage Gatewayハイブリッドクラウドストレージ
SWF (Simple Workflow Service)クラウドワークフロー管理
VPC (Virtual Private Cloud)仮想ネットワーク内での AWS リソースの起動
Web Application Firewall (WAF)一般的な Web エクスプロイトからの Web アプリケーションの保護
Workspacesセキュアなデスクトップコンピューティングサービス
X-Ray分散アプリケーションのトレーシング

セットアップ

AWS のロール委任は、Datadog for Government site でサポートされていません。アクセスキーを使用する必要があります。

以下のいずれかの方法を使用して AWS アカウントを Datadog に統合し、メトリクス、イベント、タグ、ログを収集します。

自動

手動

  • ロールの委任
    AWS インテグレーションをロールの委任で手動設定する場合は、手動設定ガイドを参照してください。

  • アクセスキー (GovCloud または中国のみ)
    アクセスキーによる AWS インテグレーションを設定する場合は、手動設定ガイドを参照してください。

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*",
                "budgets:ViewBudget",
                "cloudfront:GetDistributionConfig",
                "cloudfront:ListDistributions",
                "cloudtrail:DescribeTrails",
                "cloudtrail:GetTrailStatus",
                "cloudtrail:LookupEvents",
                "cloudwatch:Describe*",
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "codedeploy:List*",
                "codedeploy:BatchGet*",
                "directconnect:Describe*",
                "dynamodb:List*",
                "dynamodb:Describe*",
                "ec2:Describe*",
                "ecs:Describe*",
                "ecs:List*",
                "elasticache:Describe*",
                "elasticache:List*",
                "elasticfilesystem:DescribeFileSystems",
                "elasticfilesystem:DescribeTags",
                "elasticfilesystem:DescribeAccessPoints",
                "elasticloadbalancing:Describe*",
                "elasticmapreduce:List*",
                "elasticmapreduce:Describe*",
                "es:ListTags",
                "es:ListDomainNames",
                "es:DescribeElasticsearchDomains",
                "events:CreateEventBus",
                "fsx:DescribeFileSystems",
                "fsx:ListTagsForResource",
                "health:DescribeEvents",
                "health:DescribeEventDetails",
                "health:DescribeAffectedEntities",
                "kinesis:List*",
                "kinesis:Describe*",
                "lambda:GetPolicy",
                "lambda:List*",
                "logs:DeleteSubscriptionFilter",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:DescribeSubscriptionFilters",
                "logs:FilterLogEvents",
                "logs:PutSubscriptionFilter",
                "logs:TestMetricFilter",
                "organizations:Describe*",
                "organizations:List*",
                "rds:Describe*",
                "rds:List*",
                "redshift:DescribeClusters",
                "redshift:DescribeLoggingStatus",
                "route53:List*",
                "s3:GetBucketLogging",
                "s3:GetBucketLocation",
                "s3:GetBucketNotification",
                "s3:GetBucketTagging",
                "s3:ListAllMyBuckets",
                "s3:PutBucketNotification",
                "ses:Get*",
                "sns:List*",
                "sns:Publish",
                "sqs:ListQueues",
                "states:ListStateMachines",
                "states:DescribeStateMachine",
                "support:DescribeTrustedAdvisor*",
                "support:RefreshTrustedAdvisorCheck",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues",
                "xray:BatchGetTraces",
                "xray:GetTraceSummaries"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

AWS Security Audit Policy

To use Cloud Security Posture Management, attach AWS’s managed SecurityAudit Policy to your Datadog IAM role.

ログの収集

AWSサービスログを Datadog に送信する方法はいくつかあります。

  • Kinesis Firehose destination: Kinesis Firehose 配信ストリームで Datadog の宛先を使用して、ログを Datadog に転送します。CloudWatch から非常に大量のログを送信する際は、このアプローチを使用することが推奨されます。
  • Forwarder Lambda 関数: S3 バケットまたは CloudWatch ロググループにサブスクライブする Datadog Forwarder Lambda 関数をデプロイし、ログを Datadog に転送します。Lambda 関数からログを介して非同期でトレース、拡張カスタムメトリクス、またはカスタムメトリクスを送信するには、このアプローチを使用する必要があります。また、S3 またはデータを Kinesis に直接ストリーミングできないその他のリソースからログを送信する場合、Datadog ではこのアプローチを使用することをお勧めしています。

メトリクスの収集

メトリクスを Datadog に送信する方法は 2 つあります。

  • メトリクスのポーリング: AWS インテグレーションで利用できる API ポーリングです。CloudWatch API をメトリクス別にクロールしてデータを取得し、Datadog に送信します。新しいメトリクスの取得は平均 10 分毎に行われます。
  • Kinesis Firehose でのメトリクスストリーム: Amazon CloudWatch Metric Streams と Amazon Kinesis Data Firehose を使用してメトリクスを確認します。: このメソッドには 2 - 3 分のレイテンシーがあり、別途設定が必要となります。

リソース収集

一部の Datadog 製品は、AWS リソース (S3 バケット、RDS スナップショット、CloudFront ディストリビューションなど) の構成方法に関する情報を活用します。Datadog は、AWS アカウントに対して読み取り専用の API 呼び出しを行うことにより、この情報を収集します。

クラウドセキュリティポスチャ管理

セットアップ

お使いの AWS アカウントで AWS インテグレーションの設定を行っていない場合は、上記の設定プロセスを完了させます。リソース収集が有効化されていることを適宜ご確認ください。

注: この機能を使用するには、AWS インテグレーションにロールの委任を設定する必要があります。

既存の AWS インテグレーションに Cloud Security Posture Management を追加するには、以下の手順でリソース収集を有効にしてください。

  1. 自動または手動手順で Datadog IAM ロールに必要な権限を提供します。

    自動 - CloudFormation テンプレートを更新します。 a. CloudFormation コンソールで Datadog インテグレーションのインストールに使用した主要なスタックを探し、Update を選択します。 b. Replace current template を選択します。 c. Amazon S3 URL を選択して https://datadog-cloudformation-template.s3.amazonaws.com/aws/main.yaml を入力し、Next をクリックします。 d. CloudSecurityPostureManagementPermissionstrue に設定し、Next をクリックします。Review ページに到達するまでその他の既存のパラメーターは変更しないでください。ここで変更点をプレビューおよび確認します。 e. 下部にある 2 つの確認ボックスをオンにし、Update stack をクリックします。

    手動 - AWS が管理する SecurityAudit ポリシーを Datadog AWS IAM ロールにアタッチします。このポリシーは AWS コンソールにあります。

  2. Datadog AWS インテグレーションタイルで、以下の手順で設定を完了させます。または、Update an AWS Integration API エンドポイントを利用することも可能です。

    1. リソース収集を有効化したい AWS アカウントをクリックします。
    2. そのアカウントの Resource collection セクションに移動し、Expanded collection required for Cloud Security Posture Management チェックボックスをオンにします。
    3. タイルの下部で Update Configuration をクリックします。

アラームの収集

AWS CloudWatch アラームを Datadog イベントストリームに送信する方法は 2 つあります。

  • アラームポーリング: アラームポーリングは AWS インテグレーションですぐに使用でき、DescribeAlarmHistory API を介してメトリクスアラームをフェッチします。この方法に従うと、イベントソース Amazon Web Services の下にアラームが分類されます。: クローラーは複合アラームを収集しません。
  • SNS トピック: アラームを SNS トピックにサブスクライブしてから、SNS メッセージを Datadog に転送することで、イベントストリーム内のすべての AWS CloudWatch アラームを確認できます。Datadog でイベントとして SNS メッセージを受信する方法については、SNS メッセージの受信を参照してください。この方法に従うと、イベントソース Amazon SNS の下にアラームが分類されます。

収集データ

メトリクス

aws.logs.incoming_bytes
(gauge)
The volume of log events in uncompressed bytes uploaded to Cloudwatch Logs.
Shown as byte
aws.logs.incoming_log_events
(count)
The number of log events uploaded to Cloudwatch Logs.
Shown as event
aws.logs.forwarded_bytes
(gauge)
The volume of log events in compressed bytes forwarded to the subscription destination.
Shown as byte
aws.logs.forwarded_log_events
(count)
The number of log events forwarded to the subscription destination.
Shown as event
aws.logs.delivery_errors
(count)
The number of log events for which CloudWatch Logs received an error when forwarding data to the subscription destination.
Shown as event
aws.logs.delivery_throttling
(count)
The number of log events for which CloudWatch Logs was throttled when forwarding data to the subscription destination.
Shown as event
aws.events.invocations
(count)
Measures the number of times a target is invoked for a rule in response to an event. This includes successful and failed invocations but does not include throttled or retried attempts until they fail permanently.
aws.events.failed_invocations
(count)
Measures the number of invocations that failed permanently. This does not include invocations that are retried or that succeeded after a retry attempt
aws.events.triggered_rules
(count)
Measures the number of triggered rules that matched with any event.
aws.events.matched_events
(count)
Measures the number of events that matched with any rule.
aws.events.throttled_rules
(count)
Measures the number of triggered rules that are being throttled.
aws.usage.call_count
(count)
The number of specified operations performed in your account
Shown as operation
aws.usage.resource_count
(count)
The number of specified resources in your account
Shown as resource

イベント

AWS からのイベントは、AWS サービス単位で収集されます。収集されるイベントの詳細については、お使いの AWS サービスのドキュメントを参照してください。

タグ

AWS インテグレーションにより以下のタグが収集されます。: 一部のタグは、特定のメトリクスにのみ表示されます。

インテグレーションDatadog タグキー
すべてregion
API Gatewayapiid、apinamemethodresourcestage`
App Runnerinstanceserviceidservicename
Auto Scalingautoscalinggroupnameautoscaling_group
Billingaccount_idbudget_namebudget_typecurrencyservicenametime_unit
CloudFrontdistributionid
CodeBuildproject_name
CodeDeployapplicationcreatordeployment_configdeployment_groupdeployment_optiondeployment_typestatus
DirectConnectconnectionid
DynamoDBglobalsecondaryindexnameoperationstreamlabeltablename
EBSvolumeidvolume-namevolume-type
EC2autoscaling_groupavailability-zoneimageinstance-idinstance-typekernelnamesecurity_group_name
ECSclusternameservicenameinstance_id
EFSfilesystemid
ElastiCachecachenodeidcache_node_typecacheclusteridcluster_nameengineengine_versionpreferred_availability-zonereplication_group
ElasticBeanstalkenvironmentnameenviromentid
ELBavailability-zonehostnameloadbalancernamenametargetgroup
EMRcluster_namejobflowid
ESdedicated_master_enabledebs_enabledelasticsearch_versioninstance_typezone_awareness_enabled
Firehosedeliverystreamname
FSxfilesystemidfilesystemtype
Healthevent_categorystatusservice
IoTactiontypeprotocolrulename
Kinesisstreamnamenamestate
KMSkeyid
Lambdafunctionnameresourceexecutedversionmemorysizeruntime
Machine Learningmlmodelidrequestmode
MQbrokerqueuetopic
OpsWorksstackidlayeridinstanceid
Pollyoperation
RDSauto_minor_version_upgradedbinstanceclassdbclusteridentifierdbinstanceidentifierdbnameengineengineversionhostnamenamepublicly_accessiblesecondary_availability-zone
RDS Proxyproxynametargettargetgrouptargetrole
Redshiftclusteridentifierlatencynodeidservice_classstagewlmid
Route 53healthcheckid
S3bucketnamefilteridstoragetype
SESタグキーは AWS でカスタム設定されます。
SNStopicname
SQSqueuename
VPCnategatewayidvpnidtunnelipaddress
WorkSpacesdirectoryidworkspaceid

サービスのチェック

aws.status
Returns CRITICAL if one or more AWS regions are experiencing issues. Returns OK otherwise.
Statuses: ok, critical

トラブルシューティング

AWS インテグレーションに関する問題解決は、AWS インテグレーションのトラブルシューティングガイドをご参照ください。

その他の参考資料