diff --git a/README.md b/README.md index ac08bbbe..97d95977 100644 --- a/README.md +++ b/README.md @@ -452,6 +452,7 @@ No modules. | [external\_nat\_ip\_ids](#input\_external\_nat\_ip\_ids) | List of EIP IDs to be assigned to the NAT Gateways (used in combination with reuse\_nat\_ips) | `list(string)` | `[]` | no | | [external\_nat\_ips](#input\_external\_nat\_ips) | List of EIPs to be used for `nat_public_ips` output (used in combination with reuse\_nat\_ips and external\_nat\_ip\_ids) | `list(string)` | `[]` | no | | [flow\_log\_cloudwatch\_iam\_role\_arn](#input\_flow\_log\_cloudwatch\_iam\_role\_arn) | The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group. When flow\_log\_destination\_arn is set to ARN of Cloudwatch Logs, this argument needs to be provided | `string` | `""` | no | +| [flow\_log\_cloudwatch\_iam\_role\_conditions](#input\_flow\_log\_cloudwatch\_iam\_role\_conditions) | Additional conditions of the CloudWatch role assumption policy |
list(object({| `[]` | no | | [flow\_log\_cloudwatch\_log\_group\_class](#input\_flow\_log\_cloudwatch\_log\_group\_class) | Specified the log class of the log group. Possible values are: STANDARD or INFREQUENT\_ACCESS | `string` | `null` | no | | [flow\_log\_cloudwatch\_log\_group\_kms\_key\_id](#input\_flow\_log\_cloudwatch\_log\_group\_kms\_key\_id) | The ARN of the KMS Key to use when encrypting log data for VPC flow logs | `string` | `null` | no | | [flow\_log\_cloudwatch\_log\_group\_name\_prefix](#input\_flow\_log\_cloudwatch\_log\_group\_name\_prefix) | Specifies the name prefix of CloudWatch Log Group for VPC flow logs | `string` | `"/aws/vpc-flow-log/"` | no | diff --git a/variables.tf b/variables.tf index 39521ae1..095cc8bd 100644 --- a/variables.tf +++ b/variables.tf @@ -1597,6 +1597,16 @@ variable "create_flow_log_cloudwatch_iam_role" { default = false } +variable "flow_log_cloudwatch_iam_role_conditions" { + description = "Additional conditions of the CloudWatch role assumption policy" + type = list(object({ + test = string + variable = string + values = list(string) + })) + default = [] +} + variable "flow_log_cloudwatch_iam_role_arn" { description = "The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group. When flow_log_destination_arn is set to ARN of Cloudwatch Logs, this argument needs to be provided" type = string diff --git a/vpc-flow-logs.tf b/vpc-flow-logs.tf index d44cd4d7..4c291054 100644 --- a/vpc-flow-logs.tf +++ b/vpc-flow-logs.tf @@ -100,6 +100,15 @@ data "aws_iam_policy_document" "flow_log_cloudwatch_assume_role" { effect = "Allow" actions = ["sts:AssumeRole"] + + dynamic "condition" { + for_each = var.flow_log_cloudwatch_iam_role_conditions + content { + test = condition.value.test + variable = condition.value.variable + values = condition.value.values + } + } } }
test = string
variable = string
values = list(string)
}))