Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

La configuration de la protection App and API pour AWS Lambda implique :

  1. L’identification des fonctions vulnérables ou attaquées, qui bénéficieraient le plus de la protection App and API. Trouvez-les sur l’onglet Security de votre catalogue.
  2. La configuration de l’instrumentation de la protection App and API en utilisant soit la CLI Datadog, AWS CDK, le plugin Datadog Serverless Framework, ou manuellement en utilisant les couches de tracing Datadog.
  3. Le déclenchement de signaux de sécurité dans votre application et l’observation de la manière dont Datadog affiche les informations résultantes.

Types de déclencheurs pris en charge

La détection des menaces prend en charge les requêtes HTTP en tant qu’entrée de fonction uniquement, car ce canal présente la plus forte probabilité que des attaquants exploitent une application serverless. Les requêtes HTTP proviennent généralement de services AWS tels que :

  • Application Load Balancer (ALB)
  • API Gateway v1 (API REST)
  • API Gateway v2 (API HTTP)
  • URL de fonction
Si vous souhaitez que la prise en charge soit ajoutée pour l'une des fonctionnalités non prises en charge, remplissez ce formulaire pour envoyer vos commentaires.

Démarrez

Le plugin Datadog Serverless Framework peut être utilisé pour configurer et déployer automatiquement votre fonction Lambda avec la protection App and API.

Pour installer et configurer le plug-in Serverless Framework Datadog, procédez comme suit :

  1. Installez le plugin Datadog Serverless Framework :

    serverless plugin install --name serverless-plugin-datadog
    
  2. Activez la protection App and API en mettant à jour votre serverless.yml avec le paramètre de configuration enableASM :

    custom:
      datadog:
        appSecMode: on
    

    Dans l’ensemble, votre nouveau fichier serverless.yml devrait contenir au moins :

    custom:
      datadog:
        apiKeySecretArn: "{Datadog_API_Key_Secret_ARN}" # or apiKey
        appSecMode: on
    

    Consultez également la liste complète des paramètres du plugin pour configurer davantage les paramètres de votre fonction Lambda.

  3. Redéployez la fonction et invoquez-la. Après quelques minutes, elle apparaît dans les vues App and API Protection.

L’interface de ligne de commande Datadog modifie les configurations des fonctions Lambda existantes pour activer l’instrumentation sans nécessiter de nouveau déploiement. C’est le moyen le plus rapide de commencer avec Datadog Serverless Monitoring.

Si vous configurez le traçage initial pour vos fonctions, effectuez les étapes suivantes :

  1. Installez le client de l’interface de ligne de commande Datadog :

    npm install -g @datadog/datadog-ci
    
  2. Si vous débutez avec la surveillance serverless de Datadog, lancez l’interface de ligne de commande Datadog en mode interactif pour vous guider lors de votre première installation pour un démarrage rapide, et vous pouvez ignorer les étapes restantes. Pour installer Datadog de manière permanente pour vos applications de production, ignorez cette étape et suivez les étapes restantes pour exécuter la commande de l’interface de ligne de commande Datadog dans vos pipelines CI/CD après votre déploiement normal.

    datadog-ci lambda instrument -i --appsec
    
  3. Configurez les identifiants AWS :

    La CLI Datadog nécessite un accès au service AWS Lambda et dépend du SDK JavaScript AWS pour [résoudre les identifiants][1]. Assurez-vous que vos identifiants AWS sont configurés en utilisant la même méthode que celle que vous utiliseriez lors de l’appel de l’interface de ligne de commande AWS.

  4. Configurez le site Datadog :

    export DATADOG_SITE="<DATADOG_SITE>"
    

    Replace <DATADOG_SITE> with (assurez-vous que le site Datadog correct est sélectionné sur le côté droit de cette page).

  5. Configurez la clé d’API Datadog :

    Datadog recommande d’enregistrer la clé d’API Datadog dans AWS Secrets Manager pour des raisons de sécurité. La clé doit être stockée sous forme de chaîne en texte brut (pas un blob JSON). Assurez-vous que vos fonctions Lambda disposent de l’autorisation secretsmanager:GetSecretValue IAM requise.

    export DATADOG_API_KEY_SECRET_ARN="<DATADOG_API_KEY_SECRET_ARN>"
    

    For testing purposes, you can also set the Datadog API key in plaintext:

    export DATADOG_API_KEY="<DATADOG_API_KEY>"
    
  6. Instrumentez vos fonctions Lambda :

    Pour instrumenter vos fonctions Lambda, lancez la commande suivante.

    datadog-ci lambda instrument --appsec -f <functionname> -f <another_functionname> -r <aws_region> -e 99
    

    To fill in the placeholders:
    - Replace `<functionname>` and `<another_functionname>` with your Lambda function names.
    - Alternatively, you can use `--functions-regex` to automatically instrument multiple functions whose names match the given regular expression.
    - Replace `<aws_region>` with the AWS region name.

   **Remarque** : instrumentez d'abord vos fonctions Lambda dans un environnement de développement ou de pré-production. Si le résultat de l'instrumentation n'est pas satisfaisant, exécutez `uninstrument` avec les mêmes arguments pour annuler les modifications. Une fois l'exécution de l'interface de ligne de commande terminée, mettez à jour votre code source pour qu'il dépende de la dernière version du module `datadog-lambda-go` afin d'activer App and API Protection.

    Additional parameters can be found in the [CLI documentation][2].

[1]: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html
[2]: https://docs.datadoghq.com/fr/serverless/serverless_integrations/cli

La bibliothèque CDK Construct Datadog installe automatiquement Datadog sur vos fonctions à l’aide des couches Lambda, et configure vos fonctions de sorte à ce qu’elles envoient les métriques, les traces et les logs à Datadog via la Datadog Lambda Extension.

  1. Installez la bibliothèque CDK Construct Datadog :

    npm install datadog-cdk-constructs-v2 --save-dev
    
  2. Instrumentez vos fonctions Lambda

    import { Datadog, DatadogAppSecMode } from "datadog-cdk-constructs-v2";
    
    const datadog = new Datadog(this, "Datadog", {
        extension_layer_version: 99,
        site : \"<DATADOG_SITE>\",
        api_key_secret_arn : \"<DATADOG_API_KEY_SECRET_ARN>\", // ou api_key
        enable_asm : true,
        datadog_app_sec_mode: DatadogAppSecMode.ON,
      });
    datadog.add_lambda_functions([<LAMBDA_FUNCTIONS>]);
    

    To fill in the placeholders:

    • Replace <DATADOG_SITE> with (assurez-vous que le SITE correct est sélectionné sur la droite).
    • Remplacez <DATADOG_API_KEY_SECRET_ARN> par l’ARN du secret AWS où votre clé d’API Datadog est stockée en toute sécurité. La clé doit être stockée sous forme de chaîne en texte brut (pas un blob JSON). L’autorisation secretsmanager:GetSecretValue est requise. Pour des tests rapides, vous pouvez utiliser apiKey à la place et définir la clé d’API Datadog en texte brut.

    More information and additional parameters can be found on the Datadog CDK documentation.

  1. Mettez à jour le code de votre fonction pour utiliser le dernier traceur Go :

    go get -u github.com/DataDog/datadog-lambda-go
    
  2. Installez la Datadog Lambda Extension en configurant les couches pour votre fonction Lambda à l’aide de l’ARN dans l’un des formats suivants. Remplacez <AWS_REGION> par une région AWS valide telle que us-east-1 :

    # x86-based Lambda in AWS commercial regions
    arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension:99
    # Lambda basée sur arm64 dans les régions commerciales AWS
    arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension-ARM:99
    # Lambda basée sur x86 dans les régions AWS GovCloud
    arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:99
    # Lambda basée sur arm64 dans les régions AWS GovCloud
    arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:99
    
  3. Enable App and API Protection by adding the following environment variables on your function deployment:

    environment:
      AWS_LAMBDA_EXEC_WRAPPER: /opt/datadog_wrapper
      DD_SERVERLESS_APPSEC_ENABLED: true
    
  4. Redéployez la fonction et invoquez-la. Après quelques minutes, elle apparaît dans les [vues App and API protection][1]. [1]: https://app.datadoghq.com/security/appsec?column=time&order=desc

Pour aller plus loin