Skip to content

Commit 8f8e605

Browse files
committed
feat(logging,ecs): add S3 logging policy and update ECS health check grace period
- Add IAM policy document and S3 bucket policy for logging. - Update local naming for S3 logging bucket to include "-logging" suffix. - Increase ECS service health check grace period to 120 seconds. - Remove redundant README copy and adjust README markdown links.
1 parent 534b258 commit 8f8e605

8 files changed

Lines changed: 56 additions & 122 deletions

File tree

README copy.md

Lines changed: 0 additions & 118 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Table of Contents
2-
[1. Overview](#1-overview)\
2+
[1. Overview](#1-overview)
33
[2. Notices](#2-notices)
44
- [Table of Contents](#table-of-contents)
55
- [1. Overview](#1-overview)

_data.tf

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,51 @@ data "aws_iam_policy_document" "ecr_viewer_s3" {
2727
}
2828
}
2929

30+
data "aws_iam_policy_document" "logging" {
31+
statement {
32+
sid = "AllowELBRootAccount"
33+
effect = "Allow"
34+
principals {
35+
type = "AWS"
36+
identifiers = ["arn:aws:iam::${data.aws_caller_identity.current.account_id}:root"]
37+
}
38+
actions = [
39+
"s3:PutObject"
40+
]
41+
resources = [
42+
"${aws_s3_bucket.logging.arn}/*"
43+
]
44+
}
45+
statement {
46+
sid = "AWSLogDeliveryWrite"
47+
effect = "Allow"
48+
principals {
49+
type = "Service"
50+
identifiers = ["delivery.logs.amazonaws.com"]
51+
}
52+
actions = [
53+
"s3:PutObject"
54+
]
55+
resources = [
56+
"${aws_s3_bucket.logging.arn}/*"
57+
]
58+
}
59+
statement {
60+
sid = "AWSLogDeliveryAclCheck"
61+
effect = "Allow"
62+
principals {
63+
type = "Service"
64+
identifiers = ["delivery.logs.amazonaws.com"]
65+
}
66+
actions = [
67+
"s3:GetBucketAcl"
68+
]
69+
resources = [
70+
"${aws_s3_bucket.logging.arn}"
71+
]
72+
}
73+
}
74+
3075
data "aws_iam_policy" "ecs_task_execution" {
3176
name = "AmazonECSTaskExecutionRolePolicy"
3277
}

_local.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ locals {
266266
ecs_cloudwatch_group = var.ecs_cloudwatch_group == "" ? "/${local.local_name}" : var.ecs_cloudwatch_group
267267
ecs_cluster_name = var.ecs_cluster_name == "" ? local.local_name : var.ecs_cluster_name
268268
s3_viewer_bucket_name = var.s3_viewer_bucket_name == "" ? "${local.local_name}-${random_string.s3_viewer.result}" : var.s3_viewer_bucket_name
269-
s3_logging_bucket_name = var.s3_logging_bucket_name == "" ? "${local.local_name}-${random_string.s3_viewer.result}" : var.s3_logging_bucket_name
269+
s3_logging_bucket_name = var.s3_logging_bucket_name == "" ? "${local.local_name}-${random_string.s3_viewer.result}-logging" : var.s3_logging_bucket_name
270270
s3_viewer_bucket_role_name = var.s3_viewer_bucket_role_name == "" ? "${local.local_name}-ecrv" : var.s3_viewer_bucket_role_name
271271
tags = var.tags
272272
vpc_endpoints = [

alb.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,4 +287,4 @@ resource "aws_security_group_rule" "alb_egress" {
287287
description = "Allow outbound traffic from alb"
288288
security_group_id = aws_security_group.alb.id
289289
cidr_blocks = ["0.0.0.0/0"]
290-
}
290+
}

ecs.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ resource "aws_ecs_service" "this" {
5757
deployment_minimum_healthy_percent = 50
5858
deployment_maximum_percent = 200
5959

60+
health_check_grace_period_seconds = 120
61+
6062
deployment_circuit_breaker {
6163
enable = true
6264
rollback = true

iam.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ resource "aws_iam_role" "s3_role_for_ecr_viewer" {
2828
assume_role_policy = data.aws_iam_policy_document.assume_role.json
2929
tags = local.tags
3030
}
31-
# s3
31+
3232
resource "aws_iam_policy" "s3_bucket_ecr_viewer" {
3333
name = "${local.s3_viewer_bucket_role_name}-policy"
3434
description = "Policy for ECR-Viewer and S3 for DIBBS-AWS"

s3.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ resource "aws_s3_bucket_public_access_block" "logging" {
4444
restrict_public_buckets = true
4545
}
4646

47+
resource "aws_s3_bucket_policy" "logging" {
48+
bucket = aws_s3_bucket.logging.id
49+
policy = data.aws_iam_policy_document.logging.json
50+
}
51+
4752
# https://avd.aquasec.com/misconfig/aws/s3/avd-aws-0132/
4853
# trivy:ignore:AVD-AWS-0132
4954
resource "aws_s3_bucket_server_side_encryption_configuration" "logging" {

0 commit comments

Comments
 (0)