Skip to content

Commit 145a62f

Browse files
authored
Restrict access for Lambda role account. (#7)
* make permissions more granular * reduce sqs permissions * formatting
1 parent ac7aa36 commit 145a62f

File tree

3 files changed

+36
-15
lines changed

3 files changed

+36
-15
lines changed

data.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ data "aws_s3_bucket" "cloudtrail_bucket" {
3030
bucket = var.cloudtrail_bucket_name
3131
}
3232

33+
data "aws_caller_identity" "current" {}

iam.tf

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,42 +26,61 @@ resource "aws_iam_role_policy" "lambda_permissions" {
2626
policy = data.aws_iam_policy_document.lambda_permissions.json
2727
}
2828

29-
3029
data "aws_iam_policy_document" "lambda_permissions" {
3130
statement {
32-
sid = "Logging"
31+
sid = "LoggingCreateGroup"
32+
33+
actions = [
34+
"logs:CreateLogGroup"
35+
]
36+
37+
resources = [
38+
"arn:aws:logs:${var.region}:${data.aws_caller_identity.current.account_id}:log-group:${aws_cloudwatch_log_group.func.name}"
39+
]
40+
}
41+
42+
statement {
43+
sid = "LoggingStreamPutEvents"
3344

3445
actions = [
35-
"logs:CreateLogGroup",
3646
"logs:CreateLogStream",
3747
"logs:PutLogEvents"
3848
]
3949

4050
resources = [
41-
"arn:aws:logs:*:*:*"
51+
"arn:aws:logs:${var.region}:${data.aws_caller_identity.current.account_id}:log-group:${aws_cloudwatch_log_group.func.name}:log-stream:*"
4252
]
4353
}
4454

4555
statement {
46-
sid = "S3Access"
56+
sid = "S3AccessBucket"
4757

4858
actions = [
49-
"s3:Get*",
50-
"s3:List*",
51-
"s3:Describe*",
59+
"s3:ListBucket"
5260
]
5361

5462
resources = [
55-
"${data.aws_s3_bucket.cloudtrail_bucket.arn}/",
56-
"${data.aws_s3_bucket.cloudtrail_bucket.arn}/*",
63+
"${data.aws_s3_bucket.cloudtrail_bucket.arn}"
64+
]
65+
}
66+
67+
statement {
68+
sid = "S3AccessBucketObject"
69+
70+
actions = [
71+
"s3:GetObject"
72+
]
73+
74+
resources = [
75+
"${data.aws_s3_bucket.cloudtrail_bucket.arn}/*"
5776
]
5877
}
5978

6079
statement {
6180
sid = "SSMAccess"
6281

6382
actions = [
64-
"ssm:Get*",
83+
"ssm:GetParameter"
6584
]
6685

6786
resources = [
@@ -73,12 +92,13 @@ data "aws_iam_policy_document" "lambda_permissions" {
7392
sid = "SQSAccess"
7493

7594
actions = [
76-
"sqs:*",
95+
"sqs:DeleteMessage",
96+
"sqs:GetQueueAttributes",
97+
"sqs:ReceiveMessage"
7798
]
7899

79100
resources = [
80101
aws_sqs_queue.bucket_notifications.arn
81102
]
82103
}
83-
84-
}
104+
}

lambda.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ resource "aws_lambda_function" "func" {
2525

2626
MESSAGE_FORMAT = var.message_format
2727

28-
LOG_LEVEL = "INFO"
28+
LOG_LEVEL = "INFO"
2929
}
3030
}
3131

0 commit comments

Comments
 (0)