@@ -512,34 +512,60 @@ resource "aws_cloudwatch_log_group" "aws_for_fluentbit" {
512512}
513513
514514data "aws_iam_policy_document" "aws_for_fluentbit" {
515- count = try (var. aws_for_fluentbit_cw_log_group . create , true ) && var. enable_aws_for_fluentbit ? 1 : 0
515+ count = ( try (var. aws_for_fluentbit_cw_log_group . create , true ) || length ( lookup (var . aws_for_fluentbit , " s3_bucket_arns " , [])) > 0 ) && var. enable_aws_for_fluentbit ? 1 : 0
516516
517- statement {
518- sid = " PutLogEvents"
519- effect = " Allow"
520- resources = [
521- " arn:${ local . partition } :logs:${ local . region } :${ local . account_id } :log-group:${ try (var. aws_for_fluentbit_cw_log_group . name , " *" )} :log-stream:*" ,
522- ]
517+ dynamic "statement" {
518+ for_each = try (var. aws_for_fluentbit_cw_log_group . create , true ) ? [1 ] : []
523519
524- actions = [
525- " logs:PutLogEvents"
526- ]
520+ content {
521+ sid = " PutLogEvents"
522+ effect = " Allow"
523+ resources = [
524+ " arn:${ local . partition } :logs:${ local . region } :${ local . account_id } :log-group:${ try (var. aws_for_fluentbit_cw_log_group . name , " *" )} :log-stream:*" ,
525+ ]
526+
527+ actions = [
528+ " logs:PutLogEvents"
529+ ]
530+ }
527531 }
528532
529- statement {
530- sid = " CreateCWLogs"
531- effect = " Allow"
532- resources = [
533- " arn:${ local . partition } :logs:${ local . region } :${ local . account_id } :log-group:${ try (var. aws_for_fluentbit_cw_log_group . name , " *" )} " ,
534- ]
533+ dynamic "statement" {
534+ for_each = try (var. aws_for_fluentbit_cw_log_group . create , true ) ? [1 ] : []
535535
536- actions = [
537- " logs:CreateLogGroup" ,
538- " logs:CreateLogStream" ,
539- " logs:DescribeLogGroups" ,
540- " logs:DescribeLogStreams" ,
541- " logs:PutRetentionPolicy" ,
542- ]
536+ content {
537+ sid = " CreateCWLogs"
538+ effect = " Allow"
539+ resources = [
540+ " arn:${ local . partition } :logs:${ local . region } :${ local . account_id } :log-group:${ try (var. aws_for_fluentbit_cw_log_group . name , " *" )} " ,
541+ ]
542+
543+ actions = [
544+ " logs:CreateLogGroup" ,
545+ " logs:CreateLogStream" ,
546+ " logs:DescribeLogGroups" ,
547+ " logs:DescribeLogStreams" ,
548+ " logs:PutRetentionPolicy" ,
549+ ]
550+ }
551+ }
552+
553+ dynamic "statement" {
554+ for_each = length (lookup (var. aws_for_fluentbit , " s3_bucket_arns" , [])) > 0 ? [1 ] : []
555+
556+ content {
557+ sid = " S3Write"
558+ actions = [
559+ " s3:ListBucket" ,
560+ " s3:PutObject" ,
561+ " s3:PutObjectAcl" ,
562+ " s3:GetObject" ,
563+ " s3:GetObjectAcl" ,
564+ " s3:DeleteObject" ,
565+ " s3:DeleteObjectVersion" ,
566+ ]
567+ resources = var. aws_for_fluentbit . s3_bucket_arns
568+ }
543569 }
544570}
545571
@@ -2113,21 +2139,42 @@ resource "aws_iam_policy" "fargate_fluentbit" {
21132139}
21142140
21152141data "aws_iam_policy_document" "fargate_fluentbit" {
2116- count = try (var. fargate_fluentbit_cw_log_group . create , true ) && var. enable_fargate_fluentbit ? 1 : 0
2142+ count = ( try (var. fargate_fluentbit_cw_log_group . create , true ) || length ( lookup (var . fargate_fluentbit , " s3_bucket_arns " , [])) > 0 ) && var. enable_fargate_fluentbit ? 1 : 0
21172143
2118- statement {
2119- sid = " PutLogEvents"
2120- effect = " Allow"
2121- actions = [
2122- " logs:CreateLogStream" ,
2123- " logs:CreateLogGroup" ,
2124- " logs:DescribeLogStreams" ,
2125- " logs:PutLogEvents"
2126- ]
2127- resources = [
2128- try (" ${ var . fargate_fluentbit . cwlog_arn } :*" , " ${ aws_cloudwatch_log_group . fargate_fluentbit [0 ]. arn } :*" ),
2129- try (" ${ var . fargate_fluentbit . cwlog_arn } :logstream:*" , " ${ aws_cloudwatch_log_group . fargate_fluentbit [0 ]. arn } :logstream:*" )
2130- ]
2144+ dynamic "statement" {
2145+ for_each = try (var. fargate_fluentbit_cw_log_group . create , true ) ? [1 ] : []
2146+
2147+ content {
2148+ sid = " PutLogEvents"
2149+ actions = [
2150+ " logs:CreateLogStream" ,
2151+ " logs:CreateLogGroup" ,
2152+ " logs:DescribeLogStreams" ,
2153+ " logs:PutLogEvents"
2154+ ]
2155+ resources = [
2156+ try (" ${ var . fargate_fluentbit . cwlog_arn } :*" , " ${ aws_cloudwatch_log_group . fargate_fluentbit [0 ]. arn } :*" ),
2157+ try (" ${ var . fargate_fluentbit . cwlog_arn } :logstream:*" , " ${ aws_cloudwatch_log_group . fargate_fluentbit [0 ]. arn } :logstream:*" )
2158+ ]
2159+ }
2160+ }
2161+
2162+ dynamic "statement" {
2163+ for_each = length (lookup (var. fargate_fluentbit , " s3_bucket_arns" , [])) > 0 ? [1 ] : []
2164+
2165+ content {
2166+ sid = " S3Write"
2167+ actions = [
2168+ " s3:ListBucket" ,
2169+ " s3:PutObject" ,
2170+ " s3:PutObjectAcl" ,
2171+ " s3:GetObject" ,
2172+ " s3:GetObjectAcl" ,
2173+ " s3:DeleteObject" ,
2174+ " s3:DeleteObjectVersion" ,
2175+ ]
2176+ resources = var. fargate_fluentbit . s3_bucket_arns
2177+ }
21312178 }
21322179}
21332180
0 commit comments