
Получить все публичные IP-адреса, связанные с вашим аккаунтом AWS. Работает с IPv4/IPv6, классической/VPC сетью и во всех сервисах AWS.
aws_public_ips — это инструмент для получения всех публичных IP-адресов (как IPv4, так и IPv6), связанных с учётной записью AWS.
Его можно использовать как библиотеку и как CLI, и он поддерживает следующие сервисы AWS (все варианты Classic и VPC):
Если сервис не указан (S3, ElastiCache и т.д.), скорее всего, потому что ему нечего поддерживать (то есть он может быть не развёртываем публично, все IP-адреса могут разрешаться в глобальную инфраструктуру AWS и т.д.).
Установите gem и запустите его:
$ gem install aws_public_ips
# Uses default ~/.aws/credentials
$ aws_public_ips
52.84.11.13
52.84.11.83
2600:9000:2039:ba00:1a:cd27:1440:93a1
2600:9000:2039:6e00:1a:cd27:1440:93a1
# With a custom profile
$ AWS_PROFILE=production aws_public_ips
52.84.11.159
Gem также можно запустить из Docker:
$ docker pull arkadiyt/aws_public_ips
# For credentials, ensure the appropriate environment variables are defined in the host environment:
$ docker run -e AWS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN arkadiyt/aws_public_ips
$ aws_public_ips --help
Usage: aws_public_ips [options]
-s, --services <s1>,<s2>,<s3> List of AWS services to check. Available services: apigateway,cloudfront,ec2,elasticsearch,elb,elbv2,lightsail,rds,redshift. Defaults to all.
-f, --format <format> Set output format. Available formats: json,prettyjson,text. Defaults to text.
-v, --[no-]verbose Enable debug/trace output
--version Print version
-h, --help Show this help message
Для аутентификации aws_public_ips использует стандартную конфигурацию aws-sdk-ruby, что означает, что проверяются следующие элементы в порядке:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGIONAWS_PROFILE~/.aws/credentials~/.aws/configДля получения дополнительной информации смотрите документацию AWS SDK по конфигурации.
Чтобы найти публичные IP-адреса из всех сервисов AWS, минимальная политика, необходимая вашему пользователю IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"apigateway:GET",
"cloudfront:ListDistributions",
"ec2:DescribeInstances",
"elasticloadbalancing:DescribeLoadBalancers",
"lightsail:GetInstances",
"lightsail:GetLoadBalancers",
"rds:DescribeDBInstances",
"redshift:DescribeClusters",
"es:ListDomainNames"
],
"Resource": "*"
}
]
}
Пожалуйста, смотрите CHANGELOG.md. Этот проект следует семантическому версионированию.
Пожалуйста, смотрите CONTRIBUTING.md.
Не стесняйтесь написать мне в твиттере или отправить личное сообщение: @arkadiyt