- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
AWS Lambda で実行する関数を Datadog Application Security Management (ASM) で監視することができます。サーバーレス関数でサポートされる ASM の機能については、互換性を参照してください。
一般的に AWS Lambda に ASM を設定する場合、以下のような内容になります。
Datadog Serverless Framework プラグインは、Datadog Lambda 拡張機能 を介してメトリクス、トレース、ログを Datadog に送信するように関数を自動的に構成します。
Datadog Serverless Framework プラグインをインストールして構成するには
serverless plugin install --name serverless-plugin-datadog
serverless.yml
(または関数に環境変数を設定する方法) を更新して、ASM を有効にします。environment:
DD_SERVERLESS_APPSEC_ENABLED: true
environment:
DD_UNIVERSAL_INSTRUMENTATION: true
environment:
DD_EXPERIMENTAL_ENABLE_PROXY: true
AWS_LAMBDA_EXEC_WRAPPER: /opt/datadog_wrapper
Python
# Use this format for x86-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-<RUNTIME>:72
# Use this format for arm64-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-<RUNTIME>-ARM:72
# Use this format for x86-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-<RUNTIME>:72
# Use this format for arm64-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-<RUNTIME>-ARM:72
```
`<AWS_REGION>` を `us-east-1` などの有効な AWS リージョンに置き換えてください。`RUNTIME` オプションは、`Python37`、`Python38` または `Python39` が利用可能です。
Node
# Use this format for AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-<RUNTIME>:91
# Use this format for AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-<RUNTIME>:91
```
`<AWS_REGION>` を `us-east-1` などの有効な AWS リージョンに置き換えてください。RUNTIME オプションは、`Node12-x`、`Node14-x`、`Node16-x`、`Node18-x` が利用可能です。
Java: Lambda がデプロイされている場所に応じて、以下のいずれかの形式の ARN を使用して Lambda 関数のレイヤーを構成します。<AWS_REGION>
は us-east-1
などの有効な AWS リージョンに置き換えてください。
# In AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:dd-trace-java:8
# In AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-java:8
Go: Go トレーサーはレイヤーに依存せず、通常の Go モジュールとして使用できます。以下で最新バージョンにアップグレードできます。
go get -u github.com/DataDog/datadog-lambda-go
.NET: Lambda がデプロイされている場所に応じて、以下のいずれかの形式の ARN を使用して Lambda 関数のレイヤーを構成します。<AWS_REGION>
は us-east-1
などの有効な AWS リージョンに置き換えてください。
# x86-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:dd-trace-dotnet:6
# arm64-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:dd-trace-dotnet-ARM:6
# x86-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-dotnet:6
# arm64-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-dotnet-ARM:6
<AWS_REGION>
は、us-east-1
など有効な AWS リージョンに置き換えてください。# x86-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension:36
# arm64-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension-ARM:36
# x86-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:36
# arm64-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:36
# Use this format for x86-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-<RUNTIME>:72
# Use this format for arm64-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-<RUNTIME>-ARM:72
# Use this format for x86-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-<RUNTIME>:72
# Use this format for arm64-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-<RUNTIME>-ARM:72
```
<AWS_REGION>
を us-east-1
などの有効な AWS リージョンに置き換えます。RUNTIME
オプションは、Python37
、Python38
、Python39
、Python310
、Python311
が利用可能です。
Node
# Use this format for AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-<RUNTIME>:91
# Use this format for AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-<RUNTIME>:91
```
`<AWS_REGION>` を `us-east-1` などの有効な AWS リージョンに置き換えてください。RUNTIME オプションは、`Node12-x`、`Node14-x`、`Node16-x`、`Node18-x` が利用可能です。
Java: Lambda がデプロイされている場所に応じて、以下のいずれかの形式の ARN を使用して Lambda 関数のレイヤーを構成します。<AWS_REGION>
は us-east-1
などの有効な AWS リージョンに置き換えてください。
# In AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:dd-trace-java:8
# In AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-java:8
Go: Go トレーサーはレイヤーに依存せず、通常の Go モジュールとして使用できます。以下で最新バージョンにアップグレードできます。
go get -u github.com/DataDog/datadog-lambda-go
.NET: Lambda がデプロイされている場所に応じて、以下のいずれかの形式の ARN を使用して Lambda 関数のレイヤーを構成します。<AWS_REGION>
は us-east-1
などの有効な AWS リージョンに置き換えてください。
# x86-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:dd-trace-dotnet:6
# arm64-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:dd-trace-dotnet-ARM:6
# x86-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-dotnet:6
# arm64-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-dotnet-ARM:6
以下のいずれかの関数で ARN を使用して Lambda 関数のレイヤーを構成し、Datadog Lambda 拡張機能をインストールします。<AWS_REGION>
は、us-east-1
など有効な AWS リージョンに置き換えてください。
# x86-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:Datadog-Extension:36
# arm64-based Lambda in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:Datadog-Extension-ARM:36
# x86-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:36
# arm64-based Lambda in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:36
関数のデプロイ時に以下の環境変数を追加して、ASM を有効にします。
environment:
DD_SERVERLESS_APPSEC_ENABLED: true
Go 関数のみの場合は、さらに以下を追加します。
environment:
DD_UNIVERSAL_INSTRUMENTATION: true
NodeJS または Python の関数の場合は、さらに以下を追加します。
environment:
DD_EXPERIMENTAL_ENABLE_PROXY: true
AWS_LAMBDA_EXEC_WRAPPER: /opt/datadog_wrapper
DD_TRACE_ENABLED: true
Node 関数と Python 関数のみ、関数のハンドラーが正しく設定されていることを再確認してください。
/opt/nodejs/node_modules/datadog-lambda-js/handler.handler
に設定します。DD_LAMBDA_HANDLER
を設定します。例: myfunc.handler
。datadog_lambda.handler.handler
に設定します。DD_LAMBDA_HANDLER
を設定します。例: myfunc.handler
。関数を再デプロイして呼び出します。数分後、ASM ビューに表示されます。
アプリケーションセキュリティ管理の脅威検出のアクションを見るには、既知の攻撃パターンをアプリケーションに送信します。例えば、acunetix-product
という値を持つ HTTP ヘッダーを送信すると、セキュリティスキャナー攻撃の試行がトリガーされます。
curl -H 'My-ASM-Test-Header: acunetix-product' https://your-function-url/existing-route
アプリケーションを有効にして実行すると、数分後にアプリケーションシグナルエクスプローラーに脅威情報が表示されます。