get Ip Ranges
Use this data source to get the IP ranges of various AWS products and services. For more information about the contents of this data source and required JSON syntax if referencing a custom URL, see the AWS IP Address Ranges documentation.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const europeanEc2 = aws.getIpRanges({
regions: [
"eu-west-1",
"eu-central-1",
],
services: ["ec2"],
});
const fromEurope = new aws.ec2.SecurityGroup("from_europe", {
name: "from_europe",
ingress: [{
fromPort: 443,
toPort: 443,
protocol: "tcp",
cidrBlocks: europeanEc2.then(europeanEc2 => europeanEc2.cidrBlocks),
ipv6CidrBlocks: europeanEc2.then(europeanEc2 => europeanEc2.ipv6CidrBlocks),
}],
tags: {
CreateDate: europeanEc2.then(europeanEc2 => europeanEc2.createDate),
SyncToken: europeanEc2.then(europeanEc2 => europeanEc2.syncToken),
},
});
import pulumi
import pulumi_aws as aws
european_ec2 = aws.get_ip_ranges(regions=[
"eu-west-1",
"eu-central-1",
],
services=["ec2"])
from_europe = aws.ec2.SecurityGroup("from_europe",
name="from_europe",
ingress=[{
"from_port": 443,
"to_port": 443,
"protocol": "tcp",
"cidr_blocks": european_ec2.cidr_blocks,
"ipv6_cidr_blocks": european_ec2.ipv6_cidr_blocks,
}],
tags={
"CreateDate": european_ec2.create_date,
"SyncToken": european_ec2.sync_token,
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var europeanEc2 = Aws.GetIpRanges.Invoke(new()
{
Regions = new[]
{
"eu-west-1",
"eu-central-1",
},
Services = new[]
{
"ec2",
},
});
var fromEurope = new Aws.Ec2.SecurityGroup("from_europe", new()
{
Name = "from_europe",
Ingress = new[]
{
new Aws.Ec2.Inputs.SecurityGroupIngressArgs
{
FromPort = 443,
ToPort = 443,
Protocol = "tcp",
CidrBlocks = europeanEc2.Apply(getIpRangesResult => getIpRangesResult.CidrBlocks),
Ipv6CidrBlocks = europeanEc2.Apply(getIpRangesResult => getIpRangesResult.Ipv6CidrBlocks),
},
},
Tags =
{
{ "CreateDate", europeanEc2.Apply(getIpRangesResult => getIpRangesResult.CreateDate) },
{ "SyncToken", europeanEc2.Apply(getIpRangesResult => getIpRangesResult.SyncToken) },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
europeanEc2, err := aws.GetIpRanges(ctx, &aws.GetIpRangesArgs{
Regions: []string{
"eu-west-1",
"eu-central-1",
},
Services: []string{
"ec2",
},
}, nil)
if err != nil {
return err
}
_, err = ec2.NewSecurityGroup(ctx, "from_europe", &ec2.SecurityGroupArgs{
Name: pulumi.String("from_europe"),
Ingress: ec2.SecurityGroupIngressArray{
&ec2.SecurityGroupIngressArgs{
FromPort: pulumi.Int(443),
ToPort: pulumi.Int(443),
Protocol: pulumi.String("tcp"),
CidrBlocks: interface{}(europeanEc2.CidrBlocks),
Ipv6CidrBlocks: interface{}(europeanEc2.Ipv6CidrBlocks),
},
},
Tags: pulumi.StringMap{
"CreateDate": pulumi.String(europeanEc2.CreateDate),
"SyncToken": pulumi.Int(europeanEc2.SyncToken),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.AwsFunctions;
import com.pulumi.aws.inputs.GetIpRangesArgs;
import com.pulumi.aws.ec2.SecurityGroup;
import com.pulumi.aws.ec2.SecurityGroupArgs;
import com.pulumi.aws.ec2.inputs.SecurityGroupIngressArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var europeanEc2 = AwsFunctions.getIpRanges(GetIpRangesArgs.builder()
.regions(
"eu-west-1",
"eu-central-1")
.services("ec2")
.build());
var fromEurope = new SecurityGroup("fromEurope", SecurityGroupArgs.builder()
.name("from_europe")
.ingress(SecurityGroupIngressArgs.builder()
.fromPort("443")
.toPort("443")
.protocol("tcp")
.cidrBlocks(europeanEc2.applyValue(getIpRangesResult -> getIpRangesResult.cidrBlocks()))
.ipv6CidrBlocks(europeanEc2.applyValue(getIpRangesResult -> getIpRangesResult.ipv6CidrBlocks()))
.build())
.tags(Map.ofEntries(
Map.entry("CreateDate", europeanEc2.applyValue(getIpRangesResult -> getIpRangesResult.createDate())),
Map.entry("SyncToken", europeanEc2.applyValue(getIpRangesResult -> getIpRangesResult.syncToken()))
))
.build());
}
}
resources:
fromEurope:
type: aws:ec2:SecurityGroup
name: from_europe
properties:
name: from_europe
ingress:
- fromPort: '443'
toPort: '443'
protocol: tcp
cidrBlocks: ${europeanEc2.cidrBlocks}
ipv6CidrBlocks: ${europeanEc2.ipv6CidrBlocks}
tags:
CreateDate: ${europeanEc2.createDate}
SyncToken: ${europeanEc2.syncToken}
variables:
europeanEc2:
fn::invoke:
function: aws:getIpRanges
arguments:
regions:
- eu-west-1
- eu-central-1
services:
- ec2
Return
A collection of values returned by getIpRanges.
Parameters
A collection of arguments for invoking getIpRanges.
Return
A collection of values returned by getIpRanges.
Parameters
Filter IP ranges by regions (or include all regions, if omitted). Valid items are global
(for cloudfront
) as well as all AWS regions (e.g., eu-central-1
)
Filter IP ranges by services. Valid items are amazon
(for amazon.com), amazon_connect
, api_gateway
, cloud9
, cloudfront
, codebuild
, dynamodb
, ec2
, ec2_instance_connect
, globalaccelerator
, route53
, route53_healthchecks
, s3
and workspaces_gateways
. See the 2 documentation for other possible values.
NOTE: If the specified combination of regions and services does not yield any CIDR blocks, this call will fail.
Custom URL for source JSON file. Syntax must match AWS IP Address Ranges documentation. Defaults to https://ip-ranges.amazonaws.com/ip-ranges.json
.
See also
Return
A collection of values returned by getIpRanges.
Parameters
Builder for com.pulumi.aws.kotlin.inputs.GetIpRangesPlainArgs.