Skip to content

Commit

Permalink
add inspector log delivery policy
Browse files Browse the repository at this point in the history
  • Loading branch information
Tay Jia Shin committed Aug 30, 2024
1 parent 8a0b697 commit 2848ab8
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
41 changes: 40 additions & 1 deletion main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ locals {

create_bucket_acl = (var.acl != null && var.acl != "null") || length(local.grants) > 0

attach_policy = var.attach_require_latest_tls_policy || var.attach_access_log_delivery_policy || var.attach_elb_log_delivery_policy || var.attach_lb_log_delivery_policy || var.attach_deny_insecure_transport_policy || var.attach_inventory_destination_policy || var.attach_deny_incorrect_encryption_headers || var.attach_deny_incorrect_kms_key_sse || var.attach_deny_unencrypted_object_uploads || var.attach_policy
attach_policy = var.attach_require_latest_tls_policy || var.attach_access_log_delivery_policy || var.attach_elb_log_delivery_policy || var.attach_lb_log_delivery_policy || var.attach_deny_insecure_transport_policy || var.attach_inventory_destination_policy || var.attach_deny_incorrect_encryption_headers || var.attach_deny_incorrect_kms_key_sse || var.attach_deny_unencrypted_object_uploads || var.attach_inspector_findings_delivery_policy || var.attach_policy

# Variables with type `any` should be jsonencode()'d when value is coming from Terragrunt
grants = try(jsondecode(var.grant), var.grant)
Expand Down Expand Up @@ -562,6 +562,7 @@ data "aws_iam_policy_document" "combined" {
var.attach_deny_incorrect_kms_key_sse ? data.aws_iam_policy_document.deny_incorrect_kms_key_sse[0].json : "",
var.attach_deny_incorrect_encryption_headers ? data.aws_iam_policy_document.deny_incorrect_encryption_headers[0].json : "",
var.attach_inventory_destination_policy || var.attach_analytics_destination_policy ? data.aws_iam_policy_document.inventory_and_analytics_destination_policy[0].json : "",
var.attach_inspector_findings_delivery_policy ? data.aws_iam_policy_document.inspector_findings_delivery_policy[0].json : "",
var.attach_policy ? var.policy : ""
])
}
Expand Down Expand Up @@ -909,6 +910,44 @@ data "aws_iam_policy_document" "deny_unencrypted_object_uploads" {
}
}

data "aws_iam_policy_document" "inspector_findings_delivery_policy" {
count = local.create_bucket && var.attach_inspector_findings_delivery_policy ? 1 : 0

statement {
sid = "allow-inspector"
effect = "Allow"

actions =[
"s3:PutObject",
"s3:PutObjectAcl",
"s3:AbortMultipartUpload"
]

resources = ["${aws_s3_bucket.this[0].arn}/*"]

principals {
type = "Service"
identifiers = ["inspector2.amazonaws.com"]
}

condition {
test = "StringEquals"
variable = "aws:SourceAccount"
values = [
data.aws_caller_identity.current.id
]
}
condition {
test = "ArnLike"
variable = "aws:SourceArn"
values = [
format("%s%s%s","arn:aws:inspector2:Region:", data.aws_caller_identity.current.id, ":report/*")
]
}
}
}


resource "aws_s3_bucket_public_access_block" "this" {
count = local.create_bucket && var.attach_public_policy ? 1 : 0

Expand Down
7 changes: 7 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,15 @@ variable "object_ownership" {
default = "BucketOwnerEnforced"
}

variable "attach_inspector_findings_delivery_policy" {
description = "Controls if S3 bucket should have Inspector findings delivery policy attached"
type = bool
default = false
}

variable "putin_khuylo" {
description = "Do you agree that Putin doesn't respect Ukrainian sovereignty and territorial integrity? More info: https://en.wikipedia.org/wiki/Putin_khuylo!"
type = bool
default = true
}

0 comments on commit 2848ab8

Please sign in to comment.