Skip to content
v2.273.0

Peer Class ​

Peer object factories (to be used in Security Group management).

The static methods on this object can be used to create peer objects which represent a connection partner in Security Group rules.

Use this object if you need to represent connection partners using plain IP addresses, or a prefix list ID.

If you want to address a connection partner by Security Group, you can just use the Security Group (or the construct that contains a Security Group) directly, as it already implements IPeer.

Example ​

ts
const natGatewayProvider = ec2.NatProvider.instanceV2({
  instanceType: new ec2.InstanceType('t3.small'),
  defaultAllowedTraffic: ec2.NatTrafficDirection.NONE,
});
const vpc = new ec2.Vpc(this, 'Vpc', { natGatewayProvider });

const securityGroup = new ec2.SecurityGroup(this, 'SecurityGroup', {
  vpc,
  allowAllOutbound: false,
});
securityGroup.addEgressRule(ec2.Peer.anyIpv4(), ec2.Port.tcp(443));
for (const gatewayInstance of natGatewayProvider.gatewayInstances) {
   gatewayInstance.addSecurityGroup(securityGroup);
}
python
nat_gateway_provider = ec2.NatProvider.instance_v2(
    instance_type=ec2.InstanceType("t3.small"),
    default_allowed_traffic=ec2.NatTrafficDirection.NONE
)
vpc = ec2.Vpc(self, "Vpc", nat_gateway_provider=nat_gateway_provider)

security_group = ec2.SecurityGroup(self, "SecurityGroup",
    vpc=vpc,
    allow_all_outbound=False
)
security_group.add_egress_rule(ec2.Peer.any_ipv4(), ec2.Port.tcp(443))
for gateway_instance in nat_gateway_provider.gateway_instances:
    gateway_instance.add_security_group(security_group)
java
NatInstanceProviderV2 natGatewayProvider = NatProvider.instanceV2(NatInstanceProps.builder()
        .instanceType(new InstanceType("t3.small"))
        .defaultAllowedTraffic(NatTrafficDirection.NONE)
        .build());
Vpc vpc = Vpc.Builder.create(this, "Vpc").natGatewayProvider(natGatewayProvider).build();

SecurityGroup securityGroup = SecurityGroup.Builder.create(this, "SecurityGroup")
        .vpc(vpc)
        .allowAllOutbound(false)
        .build();
securityGroup.addEgressRule(Peer.anyIpv4(), Port.tcp(443));
for (Object gatewayInstance : natGatewayProvider.getGatewayInstances()) {
    gatewayInstance.addSecurityGroup(securityGroup);
}
csharp
// Install: dotnet add package Amazon.CDK.Lib
var natGatewayProvider = NatProvider.InstanceV2(new NatInstanceProps {
    InstanceType = new InstanceType("t3.small"),
    DefaultAllowedTraffic = NatTrafficDirection.NONE
});
var vpc = new Vpc(this, "Vpc", new VpcProps { NatGatewayProvider = natGatewayProvider });

var securityGroup = new SecurityGroup(this, "SecurityGroup", new SecurityGroupProps {
    Vpc = vpc,
    AllowAllOutbound = false
});
securityGroup.AddEgressRule(Peer.AnyIpv4(), Port.Tcp(443));
for (var gatewayInstance in natGatewayProvider.GatewayInstances)
{
    gatewayInstance.AddSecurityGroup(securityGroup);
}
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
natGatewayProvider := ec2.NatProvider_InstanceV2(&NatInstanceProps{
	InstanceType: ec2.NewInstanceType(jsii.String("t3.small")),
	DefaultAllowedTraffic: ec2.NatTrafficDirection_NONE,
})
vpc := ec2.NewVpc(this, jsii.String("Vpc"), &VpcProps{
	NatGatewayProvider: NatGatewayProvider,
})

securityGroup := ec2.NewSecurityGroup(this, jsii.String("SecurityGroup"), &SecurityGroupProps{
	Vpc: Vpc,
	AllowAllOutbound: jsii.Boolean(false),
})
securityGroup.AddEgressRule(ec2.Peer_AnyIpv4(), ec2.Port_Tcp(jsii.Number(443)))
for _, gatewayInstance := range natGatewayProvider.gatewayInstances {
	gatewayInstance.AddSecurityGroup(securityGroup)
}

Initializer ​

ts
new Peer()
python
Peer()
java
new Peer()
csharp
new Peer()
go
NewPeer()

Methods ​

anyIpv4(): IPeer@staticmethod def any_ipv4() -> IPeerpublic static IPeer anyIpv4()public static IPeer AnyIpv4()func AnyIpv4() IPeerstatic#
Any IPv4 address.
anyIpv6(): IPeer@staticmethod def any_ipv6() -> IPeerpublic static IPeer anyIpv6()public static IPeer AnyIpv6()func AnyIpv6() IPeerstatic#
Any IPv6 address.
ipv4(cidrIp: string): IPeer@staticmethod def ipv4(cidr_ip: str) -> IPeerpublic static IPeer ipv4(String cidrIp)public static IPeer Ipv4(string cidrIp)func Ipv4(CidrIp *string) IPeerstatic#
Create an IPv4 peer from a CIDR.
ipv6(cidrIp: string): IPeer@staticmethod def ipv6(cidr_ip: str) -> IPeerpublic static IPeer ipv6(String cidrIp)public static IPeer Ipv6(string cidrIp)func Ipv6(CidrIp *string) IPeerstatic#
Create an IPv6 peer from a CIDR.
prefixList(prefixListId: string): IPeer@staticmethod def prefix_list(prefix_list_id: str) -> IPeerpublic static IPeer prefixList(String prefixListId)public static IPeer PrefixList(string prefixListId)func PrefixList(PrefixListId *string) IPeerstatic#
A prefix list.
securityGroupId(securityGroupId: string, sourceSecurityGroupOwnerId?: string): IPeer@staticmethod def security_group_id(security_group_id: str, source_security_group_owner_id: typing.Optional[str] = None) -> IPeerpublic static IPeer securityGroupId(String securityGroupId, String sourceSecurityGroupOwnerId)public static IPeer SecurityGroupId(string securityGroupId, string? sourceSecurityGroupOwnerId = null)func SecurityGroupId(SecurityGroupId *string, SourceSecurityGroupOwnerId *string) IPeerstatic#
A security group ID.