Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
cea6503
[TON-388] feat(aws_quickstart): port InstrumentationResourceTypes to …
raymondeah May 19, 2026
445939d
[TON-388] chore(aws_quickstart): bump to v4.11.0 with changelog entry
raymondeah May 19, 2026
caf18eb
[TON-388] docs(aws_quickstart): simplify 4.11.0 changelog entry
raymondeah May 20, 2026
678c7af
[TON-388] fix(aws_quickstart): shift InstrumentationResourceTypes por…
raymondeah May 20, 2026
015f548
[TON-466] feat(aws_quickstart): forward CloudTrail events to Datadog …
raymondeah May 19, 2026
6144df9
[TON-466] feat(aws_quickstart): gate forwarding rules per Instrumenta…
raymondeah May 19, 2026
fad780b
[TON-466] feat(aws_quickstart): filter tag events to target resource …
raymondeah May 19, 2026
8657ccd
[TON-466] feat(aws_quickstart): rename forwarding template, bump to v…
raymondeah May 19, 2026
3c39a7c
[TON-466] chore(aws_quickstart): scrub prose references and drop auth…
raymondeah May 19, 2026
a0a0276
[TON-466] docs(aws_quickstart): rewrite changelog entry at product level
raymondeah May 19, 2026
5ba9c4a
[TON-466] docs(aws_quickstart): trim changelog entry
raymondeah May 19, 2026
385eb10
[TON-466] docs(aws_quickstart): rename "Agent install" to "Agent mana…
raymondeah May 19, 2026
925d1a9
[TON-466] feat(aws_quickstart): wire forwarding stack into main_exten…
raymondeah May 19, 2026
c464a1b
[TON-466] fix(aws_quickstart): shift forwarding stack to main_workflo…
raymondeah May 20, 2026
5a88ea2
[TON-466][TON-473] feat(aws_quickstart): forward EC2/EKS non-tag upda…
raymondeah May 27, 2026
dab97df
Merge remote-tracking branch 'origin/master' into ray.eah/ton-388-por…
raymondeah May 27, 2026
d2a6213
Merge remote-tracking branch 'origin/ray.eah/ton-388-port-instrumenta…
raymondeah May 27, 2026
864284b
[TON-466] chore(aws_quickstart): drop main_v2 wiring, collapse change…
raymondeah May 27, 2026
52369c8
[TON-466] fix(aws_quickstart): drop fixed RoleName so stack deploys i…
raymondeah May 27, 2026
653c015
Merge remote-tracking branch 'origin/master' into ray.eah/ton-466-age…
raymondeah May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions aws_quickstart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# 4.12.0 (May 28, 2026)

- Add an EventBridge pipeline that forwards EC2 and EKS resource lifecycle and configuration update events to Datadog, enabling the Datadog Agent management feature to react to changes in real time. Customers enable forwarding per resource type when configuring Agent management.

# 4.11.1 (May 27, 2026)

- Forward `InstrumentationResourceTypes` and `DatadogSite` from workflow and extended templates to the nested integration role stack, so launches can attach the Agent instrumentation IAM permissions selected during onboarding. Affects `main_workflow.yaml`, `main_extended_workflow.yaml`, and `main_extended.yaml`
Expand Down
145 changes: 145 additions & 0 deletions aws_quickstart/datadog_agent_resource_update_forwarding.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# version: <VERSION_PLACEHOLDER>
AWSTemplateFormatVersion: 2010-09-09
Description: Datadog AWS Integration - EventBridge forwarding of resource update events
Parameters:
APIKey:
Description: >-
API key for the Datadog account (find at https://app.datadoghq.com/organization-settings/api-keys).
Type: String
AllowedPattern: "([0-9a-f]{32})?"
NoEcho: true
APPKey:
Description: >-
APP key for the Datadog account (find at https://app.datadoghq.com/organization-settings/application-keys).
Type: String
AllowedPattern: "(([0-9a-f]{40})|(ddapp_[a-zA-Z0-9]{34}))?"
NoEcho: true
DatadogSite:
Type: String
Default: datadoghq.com
Description: >-
Datadog site events are forwarded to.
InstrumentationResourceTypes:
Type: String
Default: ""
Description: >-
Comma-separated list of AWS resource types (UDM form, e.g. aws:ec2:instance,
aws:eks:cluster) to forward CloudTrail events for. Only rules for the listed
types are deployed.
Conditions:
IncludeEC2:
Fn::Not:
- Fn::Equals:
- !Join ["", !Split [",aws:ec2:instance,", !Sub ",${InstrumentationResourceTypes},"]]
- !Sub ",${InstrumentationResourceTypes},"
IncludeEKS:
Fn::Not:
- Fn::Equals:
- !Join ["", !Split [",aws:eks:cluster,", !Sub ",${InstrumentationResourceTypes},"]]
- !Sub ",${InstrumentationResourceTypes},"
Resources:
DDIntakeConnection:
Type: AWS::Events::Connection
Properties:
Name: datadog-agent-resource-update-intake-connection
Description: Credentials for the Datadog resource update intake
AuthorizationType: API_KEY
AuthParameters:
ApiKeyAuthParameters:
ApiKeyName: DD-API-KEY
ApiKeyValue: !Ref APIKey
InvocationHttpParameters:
HeaderParameters:
- Key: DD-APPLICATION-KEY
Value: !Ref APPKey
IsValueSecret: true
DDIntakeApiDestination:
Type: AWS::Events::ApiDestination
Properties:
Name: datadog-agent-resource-update-intake-destination
ConnectionArn: !GetAtt DDIntakeConnection.Arn
InvocationEndpoint: !Sub "https://api.${DatadogSite}/api/unstable/instrumenter/events"
HttpMethod: POST
InvocationRateLimitPerSecond: 10
DDEventBridgeInvocationRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: events.amazonaws.com
Action: sts:AssumeRole
Condition:
StringEquals:
aws:SourceAccount: !Ref AWS::AccountId
Policies:
- PolicyName: datadog-eventbridge-invoke
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action: events:InvokeApiDestination
Resource: !Sub "arn:${AWS::Partition}:events:*:${AWS::AccountId}:api-destination/*"
DDEventForwardingRuleEC2:
Type: AWS::Events::Rule
Condition: IncludeEC2
Properties:
Name: datadog-agent-resource-update-rule-ec2
Description: Forward EC2 CloudTrail events to the Datadog resource update intake
State: ENABLED
EventPattern:
source:
- aws.ec2
detail-type:
- "AWS API Call via CloudTrail"
detail:
errorCode:
- exists: false
$or:
- eventName:
- RunInstances
- ModifyInstanceAttribute
- eventName:
- CreateTags
- DeleteTags
requestParameters:
resourcesSet:
items:
resourceId:
- prefix: "i-"
Targets:
- Id: datadog-intake
Arn: !GetAtt DDIntakeApiDestination.Arn
RoleArn: !GetAtt DDEventBridgeInvocationRole.Arn
DDEventForwardingRuleEKS:
Type: AWS::Events::Rule
Condition: IncludeEKS
Properties:
Name: datadog-agent-resource-update-rule-eks
Description: Forward EKS CloudTrail events to the Datadog resource update intake
State: ENABLED
EventPattern:
source:
- aws.eks
detail-type:
- "AWS API Call via CloudTrail"
detail:
errorCode:
- exists: false
$or:
- eventName:
- CreateCluster
- UpdateClusterConfig
- UpdateClusterVersion
- eventName:
- TagResource
- UntagResource
requestParameters:
resourceArn:
- wildcard: "*:cluster/*"
Targets:
- Id: datadog-intake
Arn: !GetAtt DDIntakeApiDestination.Arn
RoleArn: !GetAtt DDEventBridgeInvocationRole.Arn
19 changes: 19 additions & 0 deletions aws_quickstart/main_extended_workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,11 @@ Conditions:
Fn::Equals:
- !Ref DisableResourceCollection
- false
ShouldForwardEvents:
Fn::Not:
- Fn::Equals:
- !Join ["", !Ref InstrumentationResourceTypes]
- ""
EnableAgentlessScanning:
Fn::And:
- Fn::Not:
Expand Down Expand Up @@ -556,6 +561,20 @@ Resources:
stack_id: !Ref AWS::StackId
forwarder_arn: !GetAtt ForwarderStack.Outputs.DatadogForwarderArn

# EventBridge pipeline forwarding CloudTrail events to the Datadog resource update
# intake. Deployed only when at least one InstrumentationResourceTypes value is set;
# single-region (covers the region this stack is deployed in).
DatadogAgentResourceUpdateForwardingStack:
Type: AWS::CloudFormation::Stack
Condition: ShouldForwardEvents
Properties:
TemplateURL: "https://<BUCKET_PLACEHOLDER>.s3.amazonaws.com/aws/<VERSION_PLACEHOLDER>/datadog_agent_resource_update_forwarding.yaml"
Parameters:
APIKey: !Ref APIKey
APPKey: !Ref APPKey
DatadogSite: !Ref DatadogSite
InstrumentationResourceTypes: !Join [",", !Ref InstrumentationResourceTypes]

# Step 6: Notify starting agentless scanning setup (if enabling)
NotifyAgentlessScanningStarted:
Type: Custom::WorkflowStatus
Expand Down
19 changes: 19 additions & 0 deletions aws_quickstart/main_workflow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,11 @@ Conditions:
Fn::Equals:
- !Ref DisableResourceCollection
- false
ShouldForwardEvents:
Fn::Not:
- Fn::Equals:
- !Join ["", !Ref InstrumentationResourceTypes]
- ""
IsGov:
Fn::Or:
- Fn::Equals:
Expand Down Expand Up @@ -412,6 +417,20 @@ Resources:
stack_id: !Ref AWS::StackId
forwarder_arn: !GetAtt ForwarderStack.Outputs.DatadogForwarderArn

# EventBridge pipeline forwarding CloudTrail events to the Datadog resource update
# intake. Deployed only when at least one InstrumentationResourceTypes value is set;
# single-region (covers the region this stack is deployed in).
DatadogAgentResourceUpdateForwardingStack:
Type: AWS::CloudFormation::Stack
Condition: ShouldForwardEvents
Properties:
TemplateURL: "https://<BUCKET_PLACEHOLDER>.s3.amazonaws.com/aws/<VERSION_PLACEHOLDER>/datadog_agent_resource_update_forwarding.yaml"
Parameters:
APIKey: !Ref APIKey
APPKey: !Ref APPKey
DatadogSite: !Ref DatadogSite
InstrumentationResourceTypes: !Join [",", !Ref InstrumentationResourceTypes]

# Step 6: Final notification - stack complete (with forwarder)
NotifyStackCompleteWithForwarder:
Type: Custom::WorkflowStatus
Expand Down
2 changes: 1 addition & 1 deletion aws_quickstart/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v4.11.1
v4.12.0
Loading