AWS

Crawler Crawler

Présentation

Associez Amazon Web Services (AWS) pour :

  • Consulter des mises à jour automatiques de statut AWS dans votre flux d’événements
  • Obtenir des métriques CloudWatch pour les hosts EC2 sans installer l’Agent
  • Taguer vos hosts EC2 avec des informations propres à EC2
  • Consulter les événements de maintenance EC2 planifiés dans votre flux
  • Recueillir des métriques et des événements CloudWatch depuis de nombreux autres produits AWS
  • Consulter des alarmes CloudWatch dans votre flux d’événements

Pour profiter au plus vite de l’intégration AWS, consultez le guide de prise en main d’AWS.

L'intégration Amazon Web Services de Datadog est conçue pour recueillir TOUTES les métriques en provenance de CloudWatch. Datadog s'efforce de mettre régulièrement à jour sa documentation afin d'inclure chaque sous-intégration. Toutefois, les métriques et les services proposés par les différents services cloud étant en permanente évolution, il est possible que la liste ne soit pas à jour.
IntégrationDescription
API GatewayCréez, publiez, maintenez et sécurisez des API
App RunnerUn service qui simplifie, accélère et rentabilise le déploiement de code depuis les sources ou d’images de conteneur.
AppstreamStreaming d’applications entièrement géré sur AWS
AppSyncUn service GraphQL offrant des fonctionnalités de synchronisation des données en temps réel et de programmation hors ligne
AthenaService de requêtes interactif sans serveur
Auto ScalingConfiguration du dimensionnement d’EC2
BillingFacturation et budgets
CloudFrontRéseau de diffusion de contenu local
CloudHSMModule de sécurité matérielle (HSM) géré
CloudSearchAccès aux fichiers de log et aux appels d’API AWS
CloudTrailAccès aux fichiers de log et aux appels d’API AWS
CodeBuildService de génération entièrement géré
CodeDeployAutomatisation des déploiements de code
CognitoInscription et connexion utilisateur sécurisées
ConnectUn centre de contacts clients fonctionnant en libre-service et basé sur le cloud
Direct ConnectConnexion réseau dédiée à AWS
DMSService de migration de base de données
DocumentDBBase de données compatible avec MongoDB
DynamoDBBase de données NoSQL
EBS (Elastic Block Store)Volumes de stockage permanent par bloc
EC2 (Elastic Cloud Compute)Capacité de calcul redimensionnable dans le cloud
EC2 SpotExploitation des capacités inutilisées d’EC2
ECS (Elastic Container Service)Service de gestion de conteneurs prenant en charge les conteneurs Docker
EFS (Elastic File System)Stockage de fichiers partagés
EKSElastic Container Service pour Kubernetes
Elastic TranscoderTranscodage de fichiers multimédias et de vidéos dans le cloud
ElastiCacheCache en mémoire dans le cloud
Elastic BeanstalkService pour le déploiement et le dimensionnement d’applications et de services Web
ELB (Elastic Load Balancing)Distribution du trafic entrant d’applications sur plusieurs instances Amazon EC2
EMR (Elastic Map Reduce)Traitement de données avec Hadoop
ES (Elasticsearch)Déploiement, utilisation et mise à l’échelle des clusters Elasticsearch
FirehoseCapture et chargement de données de streaming
FSxService géré de stockage évolutif pour Windows File Server ou Lustre.
GameliftHébergement de serveurs de jeux dédiés
GlueExtraction, transformation et chargement de données pour l’analyse
GuardDutyDétection des menaces intelligente
HealthVisibilité sur l’état de vos ressources, services et comptes AWS
InspectorÉvaluation automatisée de la sécurité
IoT (Internet of Things)Connexion d’appareils IoT à des services cloud
KeyspacesService de base de données géré compatible avec Apache Cassandra
KinesisService de traitement en temps réel de grands flux de données distribués
KMS (Key Management Service)Création et contrôle des clés de chiffrement
LambdaService de calcul sans serveur
LexCréation de bots de discussion
Machine LearningCréation des modèles d’apprentissage automatique
MediaConnectTransport vidéo en direct
MediaConvertTraitement vidéo pour la diffusion et la distribution multi-écran
MediaPackagePréparation et protection de vidéos en vue de leur diffusion sur Internet
MediaTailorInsertion évolutive de publicités côté serveur
MQAgent de message géré pour ActiveMQ
Managed Streaming for KafkaConception et exécution d’applications qui utilisent Kafka pour le traitement des données de streaming
Passerelle NATAutoriser les instances d’un sous-réseau privé à se connecter à Internet ou à d’autres services AWS
NeptuneService de base de données orienté graph fiable et rapide conçu pour le cloud
Network FirewallFiltrage du trafic dans le périmètre d’un VPC
OpsWorksGestion de la configuration
PollyService de synthèse vocale
RDS (Relational Database Service)Base de données relationnelle dans le cloud
RedshiftSolution d’entrepôt de données
RekognitionAnalyse d’images et de vidéos pour les applications
Route 53Gestion de noms de domaine et de trafic avec surveillance de la disponibilité
S3 (Simple Storage Service)Service de stockage dans le cloud hautement disponible et évolutif
SageMakerAlgorithmes et modèles d’apprentissage automatique
SES (Simple Email Service)Service économique d’envoi d’e-mails
SNS (Simple Notification System)Alertes et notifications
SQS (Simple Queue Service)Service de file d’attente de messagerie
Storage GatewayStockage cloud hybride
SWF (Simple Workflow Service)Gestion de workflows dans le cloud
VPC (Virtual Private Cloud)Lancement de ressources AWS dans un réseau virtuel
Web Application Firewall (WAF)Protection des applications Web contre les failles Web les plus courantes
WorkSpacesService de bureau sécurisé
X-RayCréation de traces pour les applications distribuées

Configuration

La délégation des rôles AWS n'est pas prise en charge par le site gouvernemental Datadog. En effet, il nécessite l'utilisation de clés d'accès.

Choisissez l’une des méthodes suivantes pour intégrer vos comptes AWS dans Datadog afin de collecter des métriques, des traces et des logs :

Choisissez la méthode que vous souhaitez utiliser pour configurer le rôle AWS nécessaire. Nous vous conseillons d’utiliser CloudFormation.

Automatique - CloudFormation

Pour configurer CloudFormation pour AWS, consultez le guide de prise en main d’AWS.

Méthode manuelle

AWS

  1. Créez un rôle dans la console IAM d’AWS.
  2. Sélectionnez le type de rôle Another AWS account.
  3. Pour Account ID, saisissez 464622532012 (identifiant de compte Datadog). Cela signifie que vous accordez à Datadog un accès en lecture seule à vos données AWS.
  4. Sélectionnez Require external ID et saisissez l’ID généré dans le carré d’intégration AWS. Assurez-vous de ne pas cocher Require MFA. Pour en savoir plus sur l’ID externe, consultez le guide de l’utilisateur d’IAM.
  5. Cliquez sur Next: Permissions.
  6. Si vous avez déjà créé la stratégie, sélectionnez-la sur cette page, puis passez à l’étape 12. Si ce n’est pas le cas, cliquez sur Create Policy afin d’ouvrir une nouvelle fenêtre.
  7. Sélectionnez l’onglet JSON. Afin de profiter de toutes les intégrations AWS proposées par Datadog, utilisez l’extrait de stratégie sous la zone de texte. Étant donné que d’autres composants sont ajoutés à une intégration, ces autorisations peuvent évoluer.
  8. Cliquez sur Next: Tags et Review policy.
  9. Nommez la stratégie DatadogAWSIntegrationPolicy ou utilisez le nom de votre choix, et saisissez une description pertinente.
  10. Cliquez sur Create policy, puis fermez cette fenêtre.
  11. Depuis la fenêtre « Create role », actualisez la liste des stratégies et sélectionnez celle que vous venez de créer.
  12. (Facultatif) : ajoutez les autorisations requises pour utiliser la solution Cloud Security Posture Management de Datadog en ajoutant la stratégie SecurityAudit AWS à votre rôle.
  13. Cliquez sur Next: Tags et Next: Review.
  14. Saisissez le nom DatadogAWSIntegrationRole ou un nom similaire pour le rôle, ainsi qu’une description pertinente.
  15. Cliquez sur Create Role.

Étape facultative : si vous utilisez Terraform, configurez votre stratégie IAM Datadog à l’aide de l’intégration AWS avec Terraform.

Datadog

  1. Revenez au carré d’intégration Datadog/AWS.
  2. Sélectionnez l’onglet Role Delegation, puis cliquez sur Manually.
  3. Saisissez votre ID de compte AWS sans tiret, p. ex. 123456789012. Votre ID de compte est indiqué dans l’ARN du rôle créé durant l’installation de l’intégration AWS.
  4. Saisissez le nom du rôle créé. Remarque : le nom de rôle saisi dans le carré d’intégration est sensible à la casse et doit correspondre parfaitement au nom du rôle créé sur AWS.
  5. Si le message d’erreur Datadog is not authorized to perform sts:AssumeRole s’affiche, vérifiez que la valeur du paramètre sts:ExternalId: de la stratégie de confiance AWS correspond à celle du paramètre AWS External ID généré dans le carré d’intégration Datadog/AWS.
  6. Depuis le côté gauche de la fenêtre, choisissez les services AWS pour lesquels vous souhaitez récupérer des métriques.
  7. Vous pouvez également cocher la case Enable resource configuration collection pour activer la collecte de ressources (requise pour certains produits et certaines fonctionnalités).
  8. Si vous le souhaitez, ajoutez des tags à l’ensemble des hosts et des métriques.
  9. Vous pouvez surveiller un sous-ensemble d’instances EC2 en saisissant les tags AWS correspondants dans la zone de texte to hosts with tag. Remarque : cela s’applique également aux volumes EBS associés à une instance.
  10. Vous pouvez surveiller un sous-ensemble de Lambdas en saisissant les tags AWS correspondants dans la zone de texte to Lambdas with tag.
  11. Cliquez sur Install Integration.

Stratégie AWS IAM Datadog

Les autorisations énumérées ci-dessous sont incluses dans le document de stratégie à l’aide de wildcards comme List* et Get*. Si vous avez besoin de stratégies strictes, utilisez les noms d’action complets indiqués et consultez la documentation sur l’API Amazon pour les services requis.

Remarque : la solution Cloud Security Posture Management de Datadog requiert la politique SecurityAudit d’AWS ainsi que toutes les autorisations, car elle surveille les configurations de vos ressources AWS.

Toutes les autorisations

Si vous ne souhaitez pas accorder toutes les autorisations à la fois, il est conseillé d’utiliser au strict minimum les stratégies AmazonEC2ReadOnlyAccess et CloudWatchReadOnlyAccess. Pour en savoir plus sur les autorisations, consultez la rubrique Autorisations de base.

{
    "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",
                "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:DescribeOrganization",
                "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": "*"
        }
    ]
}
Autorisations de base

L’intégration Datadog/Amazon Web Services récupère des données à partir d’Amazon CloudWatch. Votre document de stratégie doit au minimum autoriser les actions suivantes :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "ec2:Describe*",
                "tag:GetResources",
                "tag:GetTagKeys",
                "tag:GetTagValues"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
Autorisation AWSDescription
cloudwatch:ListMetricsRépertorie les métriques CloudWatch disponibles.
cloudwatch:GetMetricDataRécupère des points de données pour une métrique donnée.
support:*Ajoute des métriques à propos des limites de service.
Nécessite un accès complet, en raison des limites AWS.
tag:getResourcesRécupère des tags personnalisés en fonction du type de ressource.
tag:getTagKeysRécupère des clés de tag selon les régions d’un compte AWS.
tag:getTagValuesRécupère les valeurs de tag selon les régions d’un compte AWS.

L’API Resource Group Tagging vise notamment à réduire le nombre d’appels API requis pour recueillir des tags personnalisés. Pour en savoir plus, consultez la documentation relative aux stratégies sur les tags (en anglais) sur le site Web d’AWS.

AWS

  1. Dans votre console AWS, configurez l’utilisateur IAM qui sera utilisé par l’intégration Datadog.
  2. Générez une clé d’accès et une clé de secret pour l’utilisateur IAM de l’intégration Datadog.

Pour en savoir plus, consultez la section Procédure d’utilisation d’un ID externe lorsque vous accordez l’accès à vos ressources AWS à un tiers de la documentation AWS.

Datadog

  1. Ouvrez le carré d’intégration AWS.
  2. Sélectionnez l’onglet Access Keys (GovCloud or China Only).
  3. Saisissez votre clé d’accès et votre clé de secret AWS. Seules les clés d’accès et de secret pour GovCloud et la Chine sont acceptées.
  4. Depuis le côté gauche de la fenêtre, choisissez les services pour lesquels vous souhaitez récupérer des métriques.
  5. Si vous le souhaitez, ajoutez des tags à l’ensemble des hosts et des métriques.
  6. Vous pouvez surveiller un sous-ensemble d’instances EC2 en saisissant les tags AWS correspondants dans la zone de texte to hosts with tag. Remarque : cela s’applique également aux volumes EBS associés à une instance.
  7. Vous pouvez surveiller un sous-ensemble de Lambdas en saisissant les tags AWS correspondants dans la zone de texte to Lambdas with tag.
  8. Cliquez sur Install Integration.

Collecte de logs

Il existe deux façons d’envoyer des logs de service AWS à Datadog :

  • Destination Kinesis Firehose : utilisez la destination Datadog dans votre flux de diffusion Kinesis Firehose pour transmettre vos logs à Datadog. Il est conseillé de procéder de la même façon pour envoyer un volume très élevé de logs depuis CloudWatch.
  • Fonction Lambda du Forwarder : déployez la fonction Lambda du Forwarder Datadog qui s’abonne aux compartiments S3 ou à vos groupes de logs CloudWatch. Transmettez ensuite vos logs à Datadog. Vous devez procéder de cette façon pour envoyer de façon asynchrone des traces, des métriques optimisées ou des métriques custom depuis vos fonctions Lambda via des logs. Datadog vous conseille également d’utiliser cette méthode pour envoyer des logs depuis S3 ou depuis d’autres ressources ne prenant pas en charge la diffusion de données vers Kinesis.

Collecte de métriques

Il existe deux façons d’envoyer des métriques AWS à Datadog :

  • Interrogation des métriques : l’intégration AWS contient une fonctionnalité d’interrogation d’API. Celle-ci effectue une analyse métrique par métrique de l’API CloudWatch afin d’extraire les données à envoyer à Datadog. De nouvelles métriques sont extraites toutes les 10 minutes en moyenne.
  • Flux de métriques avec Kinesis Firehose : vous pouvez utiliser les flux de métriques Amazon CloudWatch et Amazon Kinesis Data Firehose pour visualiser vos métriques. Remarque : cette méthode implique une latence de deux à trois minutes, et requiert une configuration distincte.

Collecte de ressources

Certains produits Datadog tirent parti d’informations relatives à la configuration de vos ressources AWS (tels que les compartiments S3, les snapshots RDS et les distributions CloudFront). Datadog récupère ces informations en effectuant des appels API en lecture seule vers votre compte AWS.

Cloud Security Posture Management

Configuration

Si vous n’avez pas encore configuré l’intégration AWS pour votre compte AWS, suivez les étapes requises ci-dessus, et prenez soin d’activer la collecte de ressources lorsque vous y êtes invité.

Si vous avez déjà configuré l’intégration AWS pour d’autres produits Datadog, mais que vous n’avez pas encore activé la collecte de ressources, suivez l’une des procédures suivantes :

  1. Méthode automatique - Mise à jour de votre modèle CloudFormation
    1. Dans la console CloudFormation, repérez la pile principale que vous avez utilisée pour installer l’intégration Datadog, puis sélectionnez Update.
    2. Sélectionnez Replace current template.
    3. Sélectionnez Amazon S3 URL, saisissez https://datadog-cloudformation-template.s3.amazonaws.com/aws/main.yaml, puis cliquez sur next.
    4. Définissez l’option CloudSecurityPostureManagementPermissions sur true, puis cliquez sur next sans modifier d’autres paramètres jusqu’à atteindre la page Review, qui vous permet de vérifier l’ensemble des changements prévus.
    5. Cochez les deux cases d’acceptation en bas de la page et cliquez sur Update stack.
  2. Méthode manuelle
    1. Associez la stratégie SecurityAudit gérée d’AWS à votre rôle AWS IAM Datadog. Cette stratégie est disponible dans la console AWS.
  3. Accédez au carré d’intégration AWS dans Datadog, puis effectuez les opérations suivantes :
    1. Cliquez sur le compte AWS pour lequel vous souhaitez activer la collecte de ressources.
    2. Accédez à la section Resource collection de ce compte, puis cochez la case Route resource data to the Cloud Security Posture Management product.
    3. En bas à gauche du carré, cliquez sur Update Configuration.

Collecte d’alarmes

Vous pouvez envoyer des alarmes AWS CloudWatch au flux d’événements Datadog de deux façons différentes :

  • Récupération d’alarmes : cette fonctionnalité est fournie par défaut avec l’intégration AWS et permet de récupérer les alarmes liées aux métriques par l’intermédiaire de l’API DescribeAlarmHistory. Si vous utilisez cette méthode, vos alarmes sont classées sous la source d’événements Amazon Web Services. Remarque : le crawler ne récupère pas les alarmes composites.
  • Rubrique SNS : pour visualiser toutes vos alarmes AWS CloudWatch dans votre flux d’événements, abonnez les alarmes à une rubrique SNS, puis transférez les messages SNS à Datadog. Pour découvrir comment vous pouvez recevoir des messages SNS en tant qu’événements dans Datadog, consultez la rubrique Recevoir les messages de SNS. Si vous utilisez cette méthode, vos alarmes sont classées sous la source d’événements Amazon SNS.

Données collectées

Métriques

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

Événements

La collecte d’événements AWS se configure au niveau de chaque service AWS. Consultez la documentation du service AWS pertinent pour obtenir plus d’informations sur la collecte d’événements.

Tags

Les tags suivants sont recueillis à l’aide de l’intégration AWS. Remarque : certains tags s’affichent uniquement pour des métriques spécifiques.

IntégrationClés de tag Datadog
Toutesregion
API Gatewayapiid, apiname, method, resource, stage
App Runnerinstance, serviceid, servicename
Auto Scalingautoscalinggroupname, autoscaling_group
Billingaccount_id, budget_name, budget_type, currency, servicename, time_unit
CloudFrontdistributionid
CodeBuildproject_name
CodeDeployapplication, creator, deployment_config, deployment_group, deployment_option, deployment_type, status
Direct Connectconnectionid
DynamoDBglobalsecondaryindexname, operation, streamlabel, tablename
EBSvolumeid, volume-name, volume-type
EC2autoscaling_group, availability-zone, image, instance-id, instance-type, kernel, name, security_group_name
ECSclustername, servicename, instance_id
EFSfilesystemid
ElastiCachecachenodeid, cache_node_type, cacheclusterid, cluster_name, engine, engine_version, preferred_availability-zone, replication_group
Elastic Beanstalkenvironmentname, enviromentid
ELBavailability-zone, hostname, loadbalancername, name, targetgroup
EMRcluster_name, jobflowid
ESdedicated_master_enabled, ebs_enabled, elasticsearch_version, instance_type, zone_awareness_enabled
Firehosedeliverystreamname
FSxfilesystemid, filesystemtype
Healthevent_category, status, service
IoTactiontype, protocol, rulename
Kinesisstreamname, name, state
KMSkeyid
Lambdafunctionname, resource, executedversion, memorysize, runtime
Machine Learningmlmodelid, requestmode
MQbroker, queue, topic
OpsWorksstackid, layerid, instanceid
Pollyoperation
RDSauto_minor_version_upgrade, dbinstanceclass, dbclusteridentifier, dbinstanceidentifier, dbname, engine, engineversion, hostname, name, publicly_accessible, secondary_availability-zone
RDS Proxyproxyname, target, targetgroup, targetrole
Redshiftclusteridentifier, latency, nodeid, service_class, stage, wlmid
Route 53healthcheckid
S3bucketname, filterid, storagetype
SESLes clés de tag sont personnalisées dans AWS.
SNStopicname
SQSqueuename
VPCnategatewayid, vpnid, tunnelipaddress
WorkSpacesdirectoryid, workspaceid

Checks de service

aws.status
Renvoie CRITICAL si une ou plusieurs régions AWS rencontrent des problèmes. Si ce n’est pas le cas, renvoie OK.
Statuses: ok, critical

Dépannage

Consultez la section Dépannage de l’intégration AWS pour résoudre les problèmes liés à l’intégration AWS.

Pour aller plus loin