Skip to main content
emnode
Compliance Medium severity

AWS Security Hub · EventBridge

EventBridge.4: Global endpoints should have event replication

Written and reviewed by Emnode · Last reviewed

What does AWS Security Hub EventBridge.4 check?

EventBridge.4 fails when an EventBridge global endpoint does not have event replication enabled. A global endpoint uses a Route 53 health check to fail traffic over to a secondary Region automatically.

Why does EventBridge.4 matter?

When a global endpoint fails over without replication, events published during the switch are stranded in the primary Region until it recovers, and recovery needs a manual health-check reset. With replication on, events are mirrored to the secondary bus, so failover is self-healing and no events are lost in the gap. It is the difference between a system that recovers on its own and one that needs an operator at 3am.

How do I fix EventBridge.4?

  1. List global endpoints and check the ReplicationConfig state with describe-endpoint.
  2. Enable replication with update-endpoint (ReplicationConfig State ENABLED) and the IAM role that allows cross-Region PutEvents.
  3. Ensure the custom event bus shares the same name in both Regions, which the global endpoint requires.
  4. Enforce replication on new endpoints via IaC, accepting the small per-event cross-Region cost.

Remediation script · bash

# Enable event replication on an existing global endpoint.
# (Re-supply the existing routing config so it isn't cleared on update.)
# State=ENABLED requires a --role-arn: EventBridge assumes this role to
# provision the managed rules that replicate events to both Regions.
aws events update-endpoint \
  --name orders-global \
  --replication-config State=ENABLED \
  --role-arn arn:aws:iam::111122223333:role/eventbridge-global-endpoint-replication \
  --routing-config '{"FailoverConfig":{"Primary":{"HealthCheck":"arn:aws:route53:::healthcheck/abc123"},"Secondary":{"Route":"us-west-2"}}}' \
  --event-buses '[{"EventBusArn":"arn:aws:events:us-east-1:111122223333:event-bus/orders-bus"},{"EventBusArn":"arn:aws:events:us-west-2:111122223333:event-bus/orders-bus"}]'

# Verify replication is now enabled.
aws events describe-endpoint --name orders-global \
  --query 'ReplicationConfig.State'

Full walkthrough (console steps, edge cases and verification) in the lesson Enable event replication on EventBridge global endpoints.

Is EventBridge.4 a false positive?

Replication mirrors every custom event to both Regions' buses, so each event is processed in both places (asynchronously), and that's exactly wrong for a pipeline whose consumers aren't idempotent, where double-processing means duplicate side effects, not just duplicate cost. A team may deliberately leave replication off and accept the documented trade-off: failover still routes traffic to the secondary Region, it just needs a manual Route 53 health-check reset to fail back. That's a conscious availability-versus-correctness decision, not a misconfiguration. If you've made it on purpose, record the rationale and suppress the finding rather than enabling replication and breaking your consumers' exactly-once assumptions.