Skip to content

Commit a5da73e

Browse files
feat: Add cloudwatch logs policy to vpc-cni for networkpolicy logging (#13)
1 parent f1aeff2 commit a5da73e

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ No modules.
532532
| <a name="input_aws_node_termination_handler_sqs_queue_arns"></a> [aws\_node\_termination\_handler\_sqs\_queue\_arns](#input\_aws\_node\_termination\_handler\_sqs\_queue\_arns) | List of SQS ARNs that contain node termination events | `list(string)` | `[]` | no |
533533
| <a name="input_aws_privateca_issuer_acmca_arns"></a> [aws\_privateca\_issuer\_acmca\_arns](#input\_aws\_privateca\_issuer\_acmca\_arns) | List of ACM Private CA ARNs to issue certificates from | `list(string)` | `[]` | no |
534534
| <a name="input_aws_privateca_issuer_policy_name"></a> [aws\_privateca\_issuer\_policy\_name](#input\_aws\_privateca\_issuer\_policy\_name) | Custom name of the AWS Private CA Issuer IAM policy | `string` | `null` | no |
535+
| <a name="input_aws_vpc_cni_enable_cloudwatch_logs"></a> [aws\_vpc\_cni\_enable\_cloudwatch\_logs](#input\_aws\_vpc\_cni\_enable\_cloudwatch\_logs) | Determines whether to enable VPC CNI permission to create CloudWatch Log groups and publish network policy events | `bool` | `false` | no |
535536
| <a name="input_aws_vpc_cni_enable_ipv4"></a> [aws\_vpc\_cni\_enable\_ipv4](#input\_aws\_vpc\_cni\_enable\_ipv4) | Determines whether to enable IPv4 permissions for VPC CNI policy | `bool` | `false` | no |
536537
| <a name="input_aws_vpc_cni_enable_ipv6"></a> [aws\_vpc\_cni\_enable\_ipv6](#input\_aws\_vpc\_cni\_enable\_ipv6) | Determines whether to enable IPv6 permissions for VPC CNI policy | `bool` | `false` | no |
537538
| <a name="input_aws_vpc_cni_policy_name"></a> [aws\_vpc\_cni\_policy\_name](#input\_aws\_vpc\_cni\_policy\_name) | Custom name of the VPC CNI IAM policy | `string` | `null` | no |

aws_vpc_cni.tf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,21 @@ data "aws_iam_policy_document" "vpc_cni" {
99
source_policy_documents = [data.aws_iam_policy_document.base[0].json]
1010
override_policy_documents = var.override_policy_documents
1111

12+
# https://docs.aws.amazon.com/eks/latest/userguide/cni-network-policy.html#cni-network-policy-setup
13+
dynamic "statement" {
14+
for_each = var.aws_vpc_cni_enable_cloudwatch_logs ? [1] : []
15+
content {
16+
sid = "CloudWatchLogs"
17+
actions = [
18+
"logs:DescribeLogGroups",
19+
"logs:CreateLogGroup",
20+
"logs:CreateLogStream",
21+
"logs:PutLogEvents",
22+
]
23+
resources = ["*"]
24+
}
25+
}
26+
1227
statement {
1328
actions = ["ec2:CreateTags"]
1429
resources = ["arn:${local.partition}:ec2:*:*:network-interface/*"]

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,12 @@ variable "aws_vpc_cni_policy_name" {
328328
default = null
329329
}
330330

331+
variable "aws_vpc_cni_enable_cloudwatch_logs" {
332+
description = "Determines whether to enable VPC CNI permission to create CloudWatch Log groups and publish network policy events"
333+
type = bool
334+
default = false
335+
}
336+
331337
variable "aws_vpc_cni_enable_ipv4" {
332338
description = "Determines whether to enable IPv4 permissions for VPC CNI policy"
333339
type = bool

wrappers/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ module "wrapper" {
4343
aws_node_termination_handler_sqs_queue_arns = try(each.value.aws_node_termination_handler_sqs_queue_arns, var.defaults.aws_node_termination_handler_sqs_queue_arns, [])
4444
aws_privateca_issuer_acmca_arns = try(each.value.aws_privateca_issuer_acmca_arns, var.defaults.aws_privateca_issuer_acmca_arns, [])
4545
aws_privateca_issuer_policy_name = try(each.value.aws_privateca_issuer_policy_name, var.defaults.aws_privateca_issuer_policy_name, null)
46+
aws_vpc_cni_enable_cloudwatch_logs = try(each.value.aws_vpc_cni_enable_cloudwatch_logs, var.defaults.aws_vpc_cni_enable_cloudwatch_logs, false)
4647
aws_vpc_cni_enable_ipv4 = try(each.value.aws_vpc_cni_enable_ipv4, var.defaults.aws_vpc_cni_enable_ipv4, false)
4748
aws_vpc_cni_enable_ipv6 = try(each.value.aws_vpc_cni_enable_ipv6, var.defaults.aws_vpc_cni_enable_ipv6, false)
4849
aws_vpc_cni_policy_name = try(each.value.aws_vpc_cni_policy_name, var.defaults.aws_vpc_cni_policy_name, null)

0 commit comments

Comments
 (0)