Identify to which AWS service network interface is associated
pip install aws-eni-identifier
aws-eni-identifier does not connect to AWS by itself, so you will need to load data with aws-cli
Login to aws:
aws sso login --profile my-profile
Use pipe:
aws ec2 describe-network-interfaces | aws-eni-identifier
Or save to file with aws-cli and read it:
aws ec2 describe-network-interfaces > ni.json
aws-eni-identifier -i ni.json
aws ec2 describe-network-interfaces |
aws-eni-identifier \
--add-column Attachment.Status \
--add-column AvailabilityZone
Find unused network interfaces:
aws ec2 describe-network-interfaces \
--filters "Name=status,Values=available" |
aws-eni-identifier
Find AWS resource by IP address (you can use public or private IP address)
export IP='51.21.223.193';
aws ec2 describe-network-interfaces \
--query "NetworkInterfaces[?PrivateIpAddresses[?PrivateIpAddress=='${IP}' || Association.PublicIp=='${IP}']]" |
aws-eni-identifier
Determine what is using specific AWS network interface
aws ec2 describe-network-interfaces \
--network-interface-ids eni-0068ac3f8786de59a |
aws-eni-identifier
You can find more information about filters and queries in AWS documentation
Install the package:
poetry install
Run tests:
poetry run pytest