Skip to content

Configuration Manual for "AWS-VPC-NAT-Gateway" Collector

Before reading this article, please read the following first:

Before using this collector, you must install the 'Integration Core Package' and its associated third-party dependency packages

1. Configuration Structure

The configuration structure of this collector is as follows:

Field Type Required Description
regions list Required List of regions to collect data from
regions[#] str Required Region ID. For example: 'cn-north-1'
See the full table in the appendix

2. Configuration Example

Collecting instance data from the Beijing region

Python
1
2
3
collector_configs = {
    'regions': ['cn-north-1' ]
}

Configuration Filter (Optional)

This collector script supports user-defined filters that allow users to filter target resources based on object properties. The filter function returns True or False.

  • True: The target resource needs to be collected.
  • False: The target resource does not need to be collected.

Supported object properties for filtering:

Property Description
VpcId VPC ID
SubnetId ID of the subnet where the NAT gateway resides
State Status of the NAT gateway
NatGatewayId ID of the NAT gateway
ConnectivityType Indicates whether the NAT gateway supports public or private connectivity
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Example: Enable the filter by filtering based on the NatGatewayId and ConnectivityType properties of the object; configuration format is as follows:
def filter_instance(instance):
    '''
    return True|False
    '''
    instance_id = instance['NatGatewayId']
    conn_type = instance['ConnectivityType']
    if instance_id in ['xxx'] and conn_type in ['xxx']:
        return True
    return False

###### Do not modify the following contents #####
from guance_integration__runner import Runner
import guance_aws_vpc_nat_gateway__main as main


@DFF.API('AWS-VPC Nat Gateway Collection', timeout=3600, fixed_crontab='* * * * *')
def run():
    collectors = [
        main.DataCollector(account, collector_configs, filters=[filter_instance]),
    ]
    Runner(collectors).run()

3. Data Reporting Format

After the data synchronizes successfully, it can be viewed under the "Infrastructure - Resource Catalog" section of {{( brand_name }}}.

An example of the reported data is as follows:

JSON
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
  "measurement": "aws_vpc_nat_gateway",
  "tags": {
    "ConnectivityType": "public",
    "RegionId"        : "cn-north-1",
    "NatGatewayId"    : "nat-xxx",
    "State"           : "available",
    "SubnetId"        : "subnet-xxx",
    "VpcId"           : "vpc-xxx",
    "name"            : "nat-xxx"
  },
  "fields": {
    "CreateTime"         : "2023-11-22T05:44:44Z",
    "NatGatewayAddresses": "[Information about the IP addresses and network interfaces associated with the NAT gateway]",
    "Tags"               : "[Tags for the NAT gateway]",
    "message"            : "{JSON data for the instance}"
  }
}

Fields in tags and fields may change with subsequent updates

4. IAM Policy Permissions

If users are collecting resources using an IAM role, certain operational permissions need to be enabled

This collector requires the following permissions:

ec2:DescribeNatGateways

X. Appendix

Please refer to the official AWS documentation: