Skip to main content

flow_logs

Creates, updates, deletes or gets a flow_log resource or lists flow_logs in a region

Overview

Nameflow_logs
TypeResource
DescriptionSpecifies a VPC flow log, which enables you to capture IP traffic for a specific network interface, subnet, or VPC.
Idaws.ec2.flow_logs

Fields

NameDatatypeDescription
idstringThe Flow Log ID
deliver_cross_account_rolestringThe ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.
deliver_logs_permission_arnstringThe ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. If you specify LogDestinationType as s3 or kinesis-data-firehose, do not specify DeliverLogsPermissionArn or LogGroupName.
log_destinationstringSpecifies the destination to which the flow log data is to be published. Flow log data can be published to a CloudWatch Logs log group, an Amazon S3 bucket, or a Kinesis Firehose stream. The value specified for this parameter depends on the value specified for LogDestinationType.
log_destination_typestringSpecifies the type of destination to which the flow log data is to be published. Flow log data can be published to CloudWatch Logs or Amazon S3.
log_formatstringThe fields to include in the flow log record, in the order in which they should appear.
log_group_namestringThe name of a new or existing CloudWatch Logs log group where Amazon EC2 publishes your flow logs. If you specify LogDestinationType as s3 or kinesis-data-firehose, do not specify DeliverLogsPermissionArn or LogGroupName.
max_aggregation_intervalintegerThe maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. You can specify 60 seconds (1 minute) or 600 seconds (10 minutes).
resource_idstringThe ID of the subnet, network interface, or VPC for which you want to create a flow log.
resource_typestringThe type of resource for which to create the flow log. For example, if you specified a VPC ID for the ResourceId property, specify VPC for this property.
tagsarrayThe tags to apply to the flow logs.
traffic_typestringThe type of traffic to log. You can log traffic that the resource accepts or rejects, or all traffic.
destination_optionsobject
regionstringAWS region.

Methods

NameAccessible byRequired Params
create_resourceINSERTResourceType, ResourceId, region
delete_resourceDELETEdata__Identifier, region
update_resourceUPDATEdata__Identifier, data__PatchDocument, region
list_resourcesSELECTregion
get_resourceSELECTdata__Identifier, region

SELECT examples

Gets all flow_logs in a region.

SELECT
region,
id,
deliver_cross_account_role,
deliver_logs_permission_arn,
log_destination,
log_destination_type,
log_format,
log_group_name,
max_aggregation_interval,
resource_id,
resource_type,
tags,
traffic_type,
destination_options
FROM aws.ec2.flow_logs
WHERE region = 'us-east-1';

Gets all properties from an individual flow_log.

SELECT
region,
id,
deliver_cross_account_role,
deliver_logs_permission_arn,
log_destination,
log_destination_type,
log_format,
log_group_name,
max_aggregation_interval,
resource_id,
resource_type,
tags,
traffic_type,
destination_options
FROM aws.ec2.flow_logs
WHERE region = 'us-east-1' AND data__Identifier = '<Id>';

INSERT example

Use the following StackQL query and manifest file to create a new flow_log resource, using stack-deploy.

/*+ create */
INSERT INTO aws.ec2.flow_logs (
ResourceId,
ResourceType,
region
)
SELECT
'{{ ResourceId }}',
'{{ ResourceType }}',
'{{ region }}';

DELETE example

/*+ delete */
DELETE FROM aws.ec2.flow_logs
WHERE data__Identifier = '<Id>'
AND region = 'us-east-1';

Permissions

To operate on the flow_logs resource, the following permissions are required:

Create

ec2:CreateFlowLogs,
ec2:DescribeFlowLogs,
ec2:CreateTags,
iam:PassRole,
logs:CreateLogDelivery,
s3:GetBucketPolicy,
s3:PutBucketPolicy

Read

ec2:DescribeFlowLogs

Update

ec2:CreateTags,
ec2:DeleteTags,
ec2:DescribeFlowLogs

Delete

ec2:DeleteFlowLogs,
ec2:DescribeFlowLogs,
logs:DeleteLogDelivery

List

ec2:DescribeFlowLogs