Skip to content

Commit d65809e

Browse files
committed
bus dlq and connection kms encryption
1 parent 0fa7879 commit d65809e

File tree

25 files changed

+105
-32
lines changed

25 files changed

+105
-32
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,13 +382,13 @@ module "eventbridge" {
382382
| Name | Version |
383383
|------|---------|
384384
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
385-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.85 |
385+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.98 |
386386

387387
## Providers
388388

389389
| Name | Version |
390390
|------|---------|
391-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.85 |
391+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.98 |
392392

393393
## Modules
394394

@@ -505,6 +505,7 @@ No modules.
505505
| <a name="input_create_schedules"></a> [create\_schedules](#input\_create\_schedules) | Controls whether EventBridge Schedule resources should be created | `bool` | `true` | no |
506506
| <a name="input_create_schemas_discoverer"></a> [create\_schemas\_discoverer](#input\_create\_schemas\_discoverer) | Controls whether default schemas discoverer should be created | `bool` | `false` | no |
507507
| <a name="input_create_targets"></a> [create\_targets](#input\_create\_targets) | Controls whether EventBridge Target resources should be created | `bool` | `true` | no |
508+
| <a name="input_dead_letter_config"></a> [dead\_letter\_config](#input\_dead\_letter\_config) | Configuration details of the Amazon SQS queue for EventBridge to use as a dead-letter queue (DLQ) | `any` | `{}` | no |
508509
| <a name="input_ecs_pass_role_resources"></a> [ecs\_pass\_role\_resources](#input\_ecs\_pass\_role\_resources) | List of approved roles to be passed | `list(string)` | `[]` | no |
509510
| <a name="input_ecs_target_arns"></a> [ecs\_target\_arns](#input\_ecs\_target\_arns) | The Amazon Resource Name (ARN) of the AWS ECS Tasks you want to use as EventBridge targets | `list(string)` | `[]` | no |
510511
| <a name="input_event_source_name"></a> [event\_source\_name](#input\_event\_source\_name) | The partner event source that the new event bus will be matched with. Must match name. | `string` | `null` | no |

examples/api-gateway-event-source/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
2020
| Name | Version |
2121
|------|---------|
2222
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
23-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.85 |
23+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.98 |
2424
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.0 |
2525

2626
## Providers
2727

2828
| Name | Version |
2929
|------|---------|
30-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.85 |
30+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.98 |
3131
| <a name="provider_random"></a> [random](#provider\_random) | >= 3.0 |
3232

3333
## Modules

examples/api-gateway-event-source/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.85"
7+
version = ">= 5.98"
88
}
99
random = {
1010
source = "hashicorp/random"

examples/complete/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ Note that this example may create resources which cost money. Run `terraform des
2020
| Name | Version |
2121
|------|---------|
2222
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
23-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.85 |
23+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.98 |
2424
| <a name="requirement_null"></a> [null](#requirement\_null) | >= 2.0 |
2525
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.0 |
2626

2727
## Providers
2828

2929
| Name | Version |
3030
|------|---------|
31-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.85 |
31+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.98 |
3232
| <a name="provider_null"></a> [null](#provider\_null) | >= 2.0 |
3333
| <a name="provider_random"></a> [random](#provider\_random) | >= 3.0 |
3434

examples/complete/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.85"
7+
version = ">= 5.98"
88
}
99
random = {
1010
source = "hashicorp/random"

examples/default-bus/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ Note that this example may create resources which cost money. Run `terraform des
2020
| Name | Version |
2121
|------|---------|
2222
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
23-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.85 |
23+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.98 |
2424
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.0 |
2525

2626
## Providers
2727

2828
| Name | Version |
2929
|------|---------|
30-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.85 |
30+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.98 |
3131
| <a name="provider_random"></a> [random](#provider\_random) | >= 3.0 |
3232

3333
## Modules

examples/default-bus/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.85"
7+
version = ">= 5.98"
88
}
99
random = {
1010
source = "hashicorp/random"

examples/with-api-destination/README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,31 @@ Note that this example may create resources which cost money. Run `terraform des
2020
| Name | Version |
2121
|------|---------|
2222
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
23-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.85 |
23+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 5.98 |
2424
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 3.0 |
2525

2626
## Providers
2727

2828
| Name | Version |
2929
|------|---------|
30-
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.85 |
30+
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 5.98 |
3131
| <a name="provider_random"></a> [random](#provider\_random) | >= 3.0 |
3232

3333
## Modules
3434

3535
| Name | Source | Version |
3636
|------|--------|---------|
3737
| <a name="module_eventbridge"></a> [eventbridge](#module\_eventbridge) | ../../ | n/a |
38+
| <a name="module_kms"></a> [kms](#module\_kms) | terraform-aws-modules/kms/aws | ~> 2.0 |
3839

3940
## Resources
4041

4142
| Name | Type |
4243
|------|------|
4344
| [aws_iam_role.eventbridge](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
45+
| [aws_sqs_queue.dlq](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sqs_queue) | resource |
4446
| [random_pet.this](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) | resource |
47+
| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
4548
| [aws_iam_policy_document.assume_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |
4649

4750
## Inputs

examples/with-api-destination/main.tf

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ provider "aws" {
77
skip_credentials_validation = true
88
}
99

10+
data "aws_caller_identity" "current" {}
11+
1012
module "eventbridge" {
1113
source = "../../"
1214

@@ -16,6 +18,9 @@ module "eventbridge" {
1618

1719
bus_name = "${random_pet.this.id}-bus"
1820
bus_description = "Event bus with API destination"
21+
dead_letter_config = {
22+
arn = aws_sqs_queue.dlq.arn
23+
}
1924

2025
attach_api_destination_policy = true
2126

@@ -143,6 +148,7 @@ module "eventbridge" {
143148
value = random_pet.this.id
144149
}
145150
}
151+
kms_key_identifier = module.kms.key_arn
146152
}
147153
}
148154

@@ -200,3 +206,52 @@ data "aws_iam_policy_document" "assume_role" {
200206
}
201207
}
202208
}
209+
210+
module "kms" {
211+
source = "terraform-aws-modules/kms/aws"
212+
version = "~> 2.0"
213+
description = "KMS key for EventBridge"
214+
215+
# Aliases
216+
aliases = ["test"]
217+
aliases_use_name_prefix = true
218+
key_statements = [
219+
{
220+
sid = "Allow use of the key"
221+
principals = [
222+
{
223+
type = "AWS"
224+
identifiers = ["arn:aws:iam::${data.aws_caller_identity.current.account_id}:root"]
225+
}
226+
]
227+
actions = [
228+
"kms:DescribeKey",
229+
"kms:GenerateDataKey",
230+
"kms:Decrypt"
231+
]
232+
resources = ["*"]
233+
conditions = [
234+
{
235+
test = "StringLike"
236+
values = ["secretsmanager.*.amazonaws.com"]
237+
variable = "kms:ViaService"
238+
},
239+
{
240+
test = "StringLike"
241+
values = ["arn:aws:secretsmanager:*:*:secret:events!connection/*"]
242+
variable = "kms:EncryptionContext:SecretARN"
243+
}
244+
]
245+
}
246+
]
247+
248+
tags = {
249+
EventBridgeApiDestinations = "true"
250+
}
251+
252+
key_owners = [data.aws_caller_identity.current.arn]
253+
}
254+
255+
resource "aws_sqs_queue" "dlq" {
256+
name = "${random_pet.this.id}-dlq"
257+
}

examples/with-api-destination/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = ">= 5.85"
7+
version = ">= 5.98"
88
}
99
random = {
1010
source = "hashicorp/random"

0 commit comments

Comments
 (0)