
Security News
Critical Security Vulnerability in React Server Components
React disclosed a CVSS 10.0 RCE in React Server Components and is advising users to upgrade affected packages and frameworks to patched versions now.
@aws-solutions-constructs/aws-eventbridge-sns
Advanced tools
CDK Constructs for deploying AWS Events Rule that invokes AWS SNS
| Reference Documentation: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
|---|
| Language | Package |
|---|---|
Python | aws_solutions_constructs.aws_eventbridge_sns |
Typescript | @aws-solutions-constructs/aws-eventbridge-sns |
Java | software.amazon.awsconstructs.services.eventbridgesns |
This AWS Solutions Construct implements an AWS Events rule and an AWS SNS Topic.
Here is a minimal deployable pattern definition:
Typescript
import { Construct } from 'constructs';
import { Stack, StackProps, Duration } from 'aws-cdk-lib';
import * as events from 'aws-cdk-lib/aws-events';
import * as iam from 'aws-cdk-lib/aws-iam';
import { EventbridgeToSnsProps, EventbridgeToSns } from "@aws-solutions-constructs/aws-eventbridge-sns";
const constructProps: EventbridgeToSnsProps = {
eventRuleProps: {
schedule: events.Schedule.rate(Duration.minutes(5))
}
};
const constructStack = new EventbridgeToSns(this, 'test-construct', constructProps);
// Grant yourself permissions to use the Customer Managed KMS Key
const policyStatement = new iam.PolicyStatement({
actions: ["kms:Encrypt", "kms:Decrypt"],
effect: iam.Effect.ALLOW,
principals: [new iam.AccountRootPrincipal()],
resources: ["*"]
});
constructStack.encryptionKey?.addToResourcePolicy(policyStatement);
Python
from aws_solutions_constructs.aws_eventbridge_sns import EventbridgeToSns, EventbridgeToSnsProps
from aws_cdk import (
aws_events as events,
aws_iam as iam,
Duration,
Stack
)
from constructs import Construct
construct_stack = EventbridgeToSns(self, 'test-construct',
event_rule_props=events.RuleProps(
schedule=events.Schedule.rate(
Duration.minutes(5))
))
# Grant yourself permissions to use the Customer Managed KMS Key
policy_statement = iam.PolicyStatement(
actions=["kms:Encrypt", "kms:Decrypt"],
effect=iam.Effect.ALLOW,
principals=[iam.AccountRootPrincipal()],
resources=["*"]
)
construct_stack.encryption_key.add_to_resource_policy(policy_statement)
Java
import software.constructs.Construct;
import java.util.List;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.Duration;
import software.amazon.awscdk.services.events.*;
import software.amazon.awscdk.services.iam.*;
import software.amazon.awsconstructs.services.eventbridgesns.*;
final EventbridgeToSns constructStack = new EventbridgeToSns(this, "test-construct",
new EventbridgeToSnsProps.Builder()
.eventRuleProps(new RuleProps.Builder()
.schedule(Schedule.rate(Duration.minutes(5)))
.build())
.build());
// Grant yourself permissions to use the Customer Managed KMS Key
final PolicyStatement policyStatement = PolicyStatement.Builder.create()
.actions(List.of("kms:Encrypt", "kms:Decrypt"))
.effect(Effect.ALLOW)
.principals(List.of(new AccountRootPrincipal()))
.resources(List.of("*"))
.build();
constructStack.getEncryptionKey().addToResourcePolicy(policyStatement);
| Name | Type | Description |
|---|---|---|
| eventRuleProps | events.RuleProps | User provided eventRuleProps to override the defaults. |
| existingTopicObj? | sns.Topic | Existing instance of SNS Topic object, providing both this and topicProps will cause an error. |
| topicProps? | sns.TopicProps | User provided props to override the default props for the SNS Topic. |
| existingEventBusInterface? | events.IEventBus | Optional user-provided custom EventBus for construct to use. Providing both this and eventBusProps results an error. |
| eventBusProps? | events.EventBusProps | Optional user-provided properties to override the default properties when creating a custom EventBus. Setting this value to {} will create a custom EventBus using all default properties. If neither this nor existingEventBusInterface is provided the construct will use the default EventBus. Providing both this and existingEventBusInterface results an error. |
| enableEncryptionWithCustomerManagedKey? | boolean | If no key is provided, this flag determines whether the SNS Topic is encrypted with a new CMK or an AWS managed key. This flag is ignored if any of the following are defined: topicProps.masterKey, encryptionKey or encryptionKeyProps. |
| encryptionKey? | kms.Key | An optional, imported encryption key to encrypt the SNS Topic with. |
| encryptionKeyProps? | kms.KeyProps | Optional user provided properties to override the default properties for the KMS encryption key used to encrypt the SNS Topic with. |
| Name | Type | Description |
|---|---|---|
| eventBus? | events.IEventBus | Returns the instance of events.IEventBus used by the construct |
| eventsRule | events.Rule | Returns an instance of events.Rule created by the construct |
| snsTopic | sns.Topic | Returns an instance of sns.Topic created by the construct |
| encryptionKey? | kms.Key | Returns an instance of kms Key used for the SNS Topic. |
Out of the box implementation of the Construct without any override will set the following defaults:

© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
FAQs
CDK Constructs for deploying AWS Events Rule that invokes AWS SNS
The npm package @aws-solutions-constructs/aws-eventbridge-sns receives a total of 658 weekly downloads. As such, @aws-solutions-constructs/aws-eventbridge-sns popularity was classified as not popular.
We found that @aws-solutions-constructs/aws-eventbridge-sns demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
React disclosed a CVSS 10.0 RCE in React Server Components and is advising users to upgrade affected packages and frameworks to patched versions now.

Research
/Security News
We spotted a wave of auto-generated “elf-*” npm packages published every two minutes from new accounts, with simple malware variants and early takedowns underway.

Security News
TypeScript 6.0 will be the last JavaScript-based major release, as the project shifts to the TypeScript 7 native toolchain with major build speedups.