2.1 KiB
2.1 KiB
layout | page_title | sidebar_current | description |
---|---|---|---|
aws | AWS: aws_flow_log | docs-aws-resource-flow-log | Provides a VPC/Subnet/ENI Flow Log |
aws_flow_log
Provides a VPC/Subnet/ENI Flow Log to capture IP traffic for a specific network interface, subnet, or VPC. Logs are sent to a CloudWatch Log Group.
resource "aws_flow_log" "test_flow_log" {
# log_group_name needs to exist before hand
# until we have a CloudWatch Log Group Resource
log_group_name = "tf-test-log-group"
iam_role_arn = "${aws_iam_role.test_role.arn}"
vpc_id = "${aws_vpc.default.id}"
traffic_type = "ALL"
}
resource "aws_iam_role" "test_role" {
name = "test_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "vpc-flow-logs.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
EOF
}
resource "aws_iam_role_policy" "test_policy" {
name = "test_policy"
role = "${aws_iam_role.test_role.id}"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EOF
}
Argument Reference
The following arguments are supported:
log_group_name
- (Required) The name of the CloudWatch log groupiam_role_arn
- (Required) The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log groupvpc_id
- (Optional) VPC ID to attach tosubnet_id
- (Optional) Subnet ID to attach toeni_id
- (Optional) Elastic Network Interface ID to attach totraffic_type
- (Required) The type of traffic to capture. Valid values:ACCEPT
,REJECT
,ALL
Attributes Reference
The following attributes are exported:
id
- The Flow Log ID
Import
Flow Logs can be imported using the id
, e.g.
$ terraform import aws_flow_log.test_flow_log fl-1a2b3c4d