
Obtenha todos os endereços IP públicos vinculados à sua conta AWS. Funciona com IPv4/IPv6, rede Classic/VPC e em todos os serviços da AWS.
aws_public_ips é uma ferramenta para obter todos os endereços IP públicos (IPv4/IPv6) associados a uma conta AWS.
Pode ser usada como biblioteca e como CLI, e suporta os seguintes serviços AWS (todos com variantes Classic e VPC):
Se um serviço não está listado (S3, ElastiCache, etc), provavelmente é porque não há nada para suportar (ou seja, pode não ser implantável publicamente, pode ter todos os endereços IP resolvendo para a infraestrutura global da AWS, etc).
Instale a gem e execute-a:
$ 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
A gem também pode ser executada a partir do 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
Para autenticação, o aws_public_ips usa a configuração padrão do aws-sdk-ruby, o que significa que o seguinte é verificado em ordem:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGIONAWS_PROFILE~/.aws/credentials~/.aws/configPara mais informações, veja a documentação de configuração do AWS SDK.
Para encontrar os IPs públicos de todos os serviços AWS, a política mínima necessária para seu usuário 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": "*"
}
]
}
Consulte o arquivo CHANGELOG.md. Este projeto segue o versionamento semântico.
Consulte o arquivo CONTRIBUTING.md.
Sinta-se à vontade para tuitar ou me enviar uma mensagem direta: @arkadiyt