|
1 | 1 | { |
2 | 2 | "Provider": "aws", |
3 | 3 | "CheckID": "eventbridge_global_endpoint_event_replication_enabled", |
4 | | - "CheckTitle": "Check if EventBridge global endpoints have event replication enabled.", |
| 4 | + "CheckTitle": "EventBridge global endpoint has event replication enabled", |
5 | 5 | "CheckType": [ |
6 | | - "Software and Configuration Checks/Vulnerabilities" |
| 6 | + "Software and Configuration Checks/AWS Security Best Practices", |
| 7 | + "Software and Configuration Checks/Industry and Regulatory Standards/AWS Foundational Security Best Practices" |
7 | 8 | ], |
8 | 9 | "ServiceName": "eventbridge", |
9 | 10 | "SubServiceName": "", |
10 | | - "ResourceIdTemplate": "arn:aws:events:{region}:{account-id}:endpoint/{endpoint-id}", |
| 11 | + "ResourceIdTemplate": "", |
11 | 12 | "Severity": "medium", |
12 | 13 | "ResourceType": "AwsEventsEndpoint", |
13 | | - "Description": "Check if event replication is enabled for an Amazon EventBridge global endpoint. The control fails if event replication isn't enabled.", |
14 | | - "Risk": "Without event replication, automatic failover in case of Regional failure may not work as expected, increasing the risk of service disruption.", |
15 | | - "RelatedUrl": "https://docs.aws.amazon.com/config/latest/developerguide/global-endpoint-event-replication-enabled.html", |
| 14 | + "Description": "**EventBridge global endpoints** are configured with **event replication** `ENABLED` (not `DISABLED`) so custom events are replicated to both the primary and secondary Regions.", |
| 15 | + "Risk": "**No event replication** degrades **availability** and increases **RPO** during Regional outages.\n- Events can be lost or delayed if the primary Region fails\n- Automatic recovery to the primary may not occur, prolonging failover\n- Cross-Region inconsistency can affect data integrity", |
| 16 | + "RelatedUrl": "", |
| 17 | + "AdditionalURLs": [ |
| 18 | + "https://docs.aws.amazon.com/securityhub/latest/userguide/eventbridge-controls.html#eventbridge-4", |
| 19 | + "https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-global-endpoints.html", |
| 20 | + "https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_Endpoint.html", |
| 21 | + "https://docs.aws.amazon.com/config/latest/developerguide/global-endpoint-event-replication-enabled.html", |
| 22 | + "https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-ge-create-endpoint.html", |
| 23 | + "https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-ge-best-practices.html", |
| 24 | + "https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_CreateEndpoint.html", |
| 25 | + "https://aws.amazon.com/blogs/compute/introducing-global-endpoints-for-amazon-eventbridge/" |
| 26 | + ], |
16 | 27 | "Remediation": { |
17 | 28 | "Code": { |
18 | | - "CLI": "aws events update-endpoint --name <endpoint-name> --event-replication-enabled", |
19 | | - "NativeIaC": "", |
20 | | - "Other": "https://docs.aws.amazon.com/securityhub/latest/userguide/eventbridge-controls.html#eventbridge-4", |
21 | | - "Terraform": "" |
| 29 | + "CLI": "aws events update-endpoint --name <endpoint-name> --replication-config State=ENABLED --role-arn <role-arn>", |
| 30 | + "NativeIaC": "```yaml\n# CloudFormation: Enable event replication on an EventBridge global endpoint\nResources:\n Endpoint:\n Type: AWS::Events::Endpoint\n Properties:\n Name: <example_resource_name>\n EventBuses:\n - EventBusArn: arn:aws:events:us-east-1:<example_resource_id>:event-bus/<example_resource_name>\n - EventBusArn: arn:aws:events:us-west-2:<example_resource_id>:event-bus/<example_resource_name>\n RoutingConfig:\n FailoverConfig:\n Primary:\n HealthCheck: arn:aws:route53:::healthcheck/<example_resource_id>\n Secondary:\n Route: us-west-2\n ReplicationConfig:\n State: ENABLED # Critical: enables event replication\n RoleArn: arn:aws:iam::<example_resource_id>:role/<example_resource_name> # Critical: role used by replication\n```", |
| 31 | + "Other": "1. In the AWS Console, open Amazon EventBridge and go to Global endpoints\n2. Select the endpoint and choose Edit\n3. Under Event replication, check Event replication enabled\n4. For Execution role, select an existing role or create a new one\n5. Save changes", |
| 32 | + "Terraform": "```hcl\n# Terraform (awscc): Enable event replication on an EventBridge global endpoint\nresource \"awscc_events_endpoint\" \"example\" {\n name = \"<example_resource_name>\"\n\n event_buses = [\n { event_bus_arn = \"arn:aws:events:us-east-1:<example_resource_id>:event-bus/<example_resource_name>\" },\n { event_bus_arn = \"arn:aws:events:us-west-2:<example_resource_id>:event-bus/<example_resource_name>\" }\n ]\n\n routing_config = {\n failover_config = {\n primary = { health_check = \"arn:aws:route53:::healthcheck/<example_resource_id>\" }\n secondary = { route = \"us-west-2\" }\n }\n }\n\n replication_config = { state = \"ENABLED\" } # Critical: enables event replication\n role_arn = \"arn:aws:iam::<example_resource_id>:role/<example_resource_name>\" # Critical: role used by replication\n}\n```" |
22 | 33 | }, |
23 | 34 | "Recommendation": { |
24 | | - "Text": "Enable event replication for your EventBridge global endpoints to ensure failover and regional fault tolerance.", |
25 | | - "Url": "https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-global-endpoints.html" |
| 35 | + "Text": "Turn on **event replication** for global endpoints to ensure Regional resilience. Keep event buses, rules, and targets aligned across Regions. Use a dedicated IAM role with **least privilege** for replication. Design consumers for **idempotency** with unique IDs. Regularly test failover and monitor health as part of **defense in depth**.", |
| 36 | + "Url": "https://hub.prowler.com/check/eventbridge_global_endpoint_event_replication_enabled" |
26 | 37 | } |
27 | 38 | }, |
28 | 39 | "Categories": [ |
29 | | - "redundancy" |
| 40 | + "resilience" |
30 | 41 | ], |
31 | 42 | "DependsOn": [], |
32 | 43 | "RelatedTo": [], |
|
0 commit comments