Guide de configuration manuelle d'AWS

Présentation

Référez-vous à ce guide pour configurer manuellement l’intégration Datadog/AWS.

Pour configurer manuellement l’intégration AWS, créez une stratégie IAM et un rôle IAM dans votre compte AWS, puis configurez le rôle avec un ID externe AWS généré dans votre compte Datadog. Le compte AWS de Datadog pourra ainsi interroger les API AWS à votre place et récupérer les données dans votre compte Datadog. Les sections ci-dessous décrivent la marche à suivre pour créer chacun de ces composants puis terminer la configuration dans votre compte Datadog.

Configuration

Générer un ID externe

  1. Sur la page de configuration de l’intégration AWS, cliquez sur Add AWS Account puis sélectionnez Manually.
  2. Sélectionnez Role Delegation comme type d’accès et copiez le paramètre AWS External ID. Pour en savoir plus sur l’ID externe, consultez le guide de l’utilisateur d’IAM. Remarque : l’ID externe reste disponible et n’est pas renouvelé pendant 48 heures, sauf s’il est explicitement modifié par un utilisateur ou si un autre compte AWS est ajouté à Datadog pendant cette période. Vous pouvez revenir à la page Add New AWS Account pendant cette période pour terminer le processus d’ajout d’un compte sans que l’ID externe ne change.

Stratégie IAM AWS pour Datadog

Créez une stratégie IAM dédiée au rôle Datadog dans votre compte AWS en lui accordant les autorisations nécessaires pour profiter de chaque intégration AWS proposée par Datadog. Ces autorisations seront susceptibles de changer si d’autres composants sont ajoutés à une intégration.

  1. Créez une nouvelle stratégie dans la console IAM d’AWS.
  2. Sélectionnez l’onglet JSON. Collez les stratégies d’autorisation dans la zone de texte.
  3. Cliquez sur Next: Tags et Next: Review.
  4. Nommez la stratégie DatadogIntegrationPolicy ou utilisez le nom de votre choix, et saisissez une description pertinente.
  5. Cliquez sur Create policy.

Rôle IAM AWS pour Datadog

Créez un rôle IAM pour que Datadog puisse utiliser les autorisations définies dans la stratégie IAM.

  1. Créez un nouveau rôle dans la console IAM d’AWS.
  2. Sélectionnez AWS account comme type d’entité de confiance, puis Another AWS account.

  1. Saisissez 464622532012 dans le champ Account ID. Il s’agit de l’ID du compte de Datadog, ce qui permet à Datadog d’accéder à vos données AWS.

  1. Saisissez 417141415827 dans le champ Account ID. Il s’agit de l’ID du compte de Datadog, ce qui permet à Datadog d’accéder à vos données AWS.

  1. Sélectionnez Require external ID et saisissez l’ID externe copié dans la section Générer un ID externe. Assurez-vous de laisser l’option Require MFA désactivée. 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.
  2. Cliquez sur Next.
  3. Si vous avez déjà créé la stratégie, retrouvez-la sur cette page et sélectionnez-la. Sinon, cliquez sur Create Policy, qui s’ouvre dans une nouvelle fenêtre, et suivez les instructions de la section précédente.
  4. Si vous le souhaitez, associez la stratégie SecurityAudit AWS au rôle pour tirer profit de la solution Cloud Security Management Misconfigurations.
  5. Cliquez sur Next.
  6. Saisissez le nom DatadogIntegrationRole ou un nom similaire pour le rôle, ainsi qu’une description pertinente.
  7. Cliquez sur Create Role.

Terminer la configuration dans Datadog

  1. Retournez sur la page de configuration de l’intégration AWS pour ajouter manuellement un compte dans Datadog (que vous aviez ouvert dans un autre onglet). Cliquez sur la case à cocher pour confirmer que le rôle IAM Datadog a été ajouté au compte AWS.
  2. Saisissez l’ID de compte sans tiret, par exemple : 123456789012. Votre ID de compte est indiqué dans l’ARN du rôle créé pour Datadog.
  3. Saisissez le nom du rôle créé à la section précédente, puis cliquez sur Save. 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éé dans AWS.
  4. Si vous obtenez une erreur Datadog is not authorized to perform sts:AssumeRole, suivez les étapes de dépannage recommandées qui s’affichent dans l’interface ou consultez le guide de dépannage.
  5. Patientez 10 minutes le temps que les données commencent à être recueillies, puis accédez au dashboard AWS Overview prêt à l’emploi pour visualiser les métriques envoyées par vos services et votre infrastructure AWS.

Implémentation

AWS

  1. Dans votre console AWS, créez un utilisateur IAM destiné à être utilisé par l’intégration Datadog avec les autorisations nécessaires.
  2. Générez une clé d’accès et une clé de secret pour l’utilisateur IAM de l’intégration Datadog.

Datadog

  1. Sur le carré de l’intégration AWS, cliquez sur Add AWS Account puis sélectionnez Manually.
  2. Sélectionnez l’onglet Access Keys (GovCloud or China Only).
  3. Saisissez votre Account ID, votre AWS Access Key et votre AWS Secret Key. Seules les clés d’accès et de secret pour GovCloud et la Chine sont acceptées.
  4. Cliquez sur Save.
  5. Patientez 10 minutes le temps que les données commencent à être recueillies, puis accédez au dashboard AWS Overview prêt à l’emploi pour visualiser les métriques envoyées par vos services et votre infrastructure 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*",
                "ec2:GetTransitGatewayPrefixListReferences",
                "ec2:SearchTransitGatewayRoutes",
                "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.