Skip to content

Commit 489ff36

Browse files
committed
fix(ec2): Security Groups support all protocols (aws#13593)
Satisfies aws#13497 to close aws#13403 ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
1 parent 522c188 commit 489ff36

File tree

4 files changed

+290
-25
lines changed

4 files changed

+290
-25
lines changed

packages/@aws-cdk/aws-ec2/lib/port.ts

+146-5
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,158 @@ import { Token } from '@aws-cdk/core';
22

33
/**
44
* Protocol for use in Connection Rules
5+
*
6+
* https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
57
*/
68
export enum Protocol {
79
ALL = '-1',
10+
HOPOPT = '0',
11+
ICMP = 'icmp',
12+
IGMP = '2',
13+
GGP = '3',
14+
IPV4 = '4',
15+
ST = '5',
816
TCP = 'tcp',
17+
CBT = '7',
18+
EGP = '8',
19+
IGP = '9',
20+
BBN_RCC_MON = '10',
21+
NVP_II = '11',
22+
PUP = '12',
23+
EMCON = '14',
24+
XNET = '15',
25+
CHAOS = '16',
926
UDP = 'udp',
10-
ICMP = 'icmp',
11-
ICMPV6 = '58',
12-
ESP = 'esp',
13-
AH = 'ah',
27+
MUX = '18',
28+
DCN_MEAS = '19',
29+
HMP = '20',
30+
PRM = '21',
31+
XNS_IDP = '22',
32+
TRUNK_1 = '23',
33+
TRUNK_2 = '24',
34+
LEAF_1 = '25',
35+
LEAF_2 = '26',
36+
RDP = '27',
37+
IRTP = '28',
38+
ISO_TP4 = '29',
39+
NETBLT = '30',
40+
MFE_NSP = '31',
41+
MERIT_INP = '32',
42+
DCCP = '33',
43+
THREEPC = '34',
44+
IDPR = '35',
45+
XTP = '36',
46+
DDP = '37',
47+
IDPR_CMTP = '38',
48+
TPPLUSPLUS = '39',
49+
IL = '40',
50+
IPV6 = '41',
51+
SDRP = '42',
52+
IPV6_ROUTE = '43',
53+
IPV6_FRAG = '44',
54+
IDRP = '45',
55+
RSVP = '46',
56+
GRE = '47',
57+
DSR = '48',
58+
BNA = '49',
59+
ESP = '50',
60+
AH = '51',
61+
I_NLSP = '52',
62+
SWIPE = '53',
63+
NARP = '54',
64+
MOBILE = '55',
65+
TLSP = '56',
66+
SKIP = '57',
67+
ICMPV6 = 'icmpv6',
68+
IPV6_NONXT = '59',
69+
IPV6_OPTS = '60',
70+
CFTP = '62',
71+
ANY_LOCAL = '63',
72+
SAT_EXPAK = '64',
73+
KRYPTOLAN = '65',
74+
RVD = '66',
75+
IPPC = '67',
76+
ANY_DFS = '68',
77+
SAT_MON = '69',
78+
VISA = '70',
79+
IPCV = '71',
80+
CPNX = '72',
81+
CPHB = '73',
82+
WSN = '74',
83+
PVP = '75',
84+
BR_SAT_MON = '76',
85+
SUN_ND = '77',
86+
WB_MON = '78',
87+
WB_EXPAK = '79',
88+
ISO_IP = '80',
89+
VMTP = '81',
90+
SECURE_VMTP = '82',
91+
VINES = '83',
92+
TTP = '84',
93+
IPTM = '84',
94+
NSFNET_IGP = '85',
95+
DGP = '86',
96+
TCF = '87',
97+
EIGRP = '88',
98+
OSPFIGP = '89',
99+
SPRITE_RPC = '90',
100+
LARP = '91',
101+
MTP = '92',
102+
AX_25 = '93',
103+
IPIP = '94',
104+
MICP = '95',
105+
SCC_SP = '96',
106+
ETHERIP = '97',
107+
ENCAP = '98',
108+
ANY_ENC = '99',
109+
GMTP = '100',
110+
IFMP = '101',
111+
PNNI = '102',
112+
PIM = '103',
113+
ARIS = '104',
114+
SCPS = '105',
115+
QNX = '106',
116+
A_N = '107',
117+
IPCOMP = '108',
118+
SNP = '109',
119+
COMPAQ_PEER = '110',
120+
IPX_IN_IP = '111',
121+
VRRP = '112',
122+
PGM = '113',
123+
ANY_0_HOP = '114',
124+
L2_T_P = '115',
125+
DDX = '116',
126+
IATP = '117',
127+
STP = '118',
128+
SRP = '119',
129+
UTI = '120',
130+
SMP = '121',
131+
SM = '122',
132+
PTP = '123',
133+
ISIS_IPV4 = '124',
134+
FIRE = '125',
135+
CRTP = '126',
136+
CRUDP = '127',
137+
SSCOPMCE = '128',
138+
IPLT = '129',
139+
SPS = '130',
140+
PIPE = '131',
141+
SCTP = '132',
142+
FC = '133',
143+
RSVP_E2E_IGNORE = '134',
144+
MOBILITY_HEADER = '135',
145+
UDPLITE = '136',
146+
MPLS_IN_IP = '137',
147+
MANET = '138',
148+
HIP = '139',
149+
SHIM6 = '140',
150+
WESP = '141',
151+
ROHC = '142',
152+
ETHERNET = '143',
153+
EXPERIMENT_1 = '253',
154+
EXPERIMENT_2 = '254',
155+
RESERVED = '255',
14156
}
15-
16157
/**
17158
* Properties to create a port range
18159
*/

packages/@aws-cdk/aws-ec2/package.json

+144-4
Original file line numberDiff line numberDiff line change
@@ -314,13 +314,153 @@
314314
"docs-public-apis:@aws-cdk/aws-ec2.AmazonLinuxStorage",
315315
"docs-public-apis:@aws-cdk/aws-ec2.OperatingSystemType.LINUX",
316316
"docs-public-apis:@aws-cdk/aws-ec2.OperatingSystemType.WINDOWS",
317+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.AH",
317318
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ALL",
318-
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TCP",
319-
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.UDP",
319+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ANY_0_HOP",
320+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ANY_DFS",
321+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ANY_ENC",
322+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ANY_LOCAL",
323+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ARIS",
324+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.AX_25",
325+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.A_N",
326+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.BBN_RCC_MON",
327+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.BNA",
328+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.BR_SAT_MON",
329+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CBT",
330+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CFTP",
331+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CHAOS",
332+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.COMPAQ_PEER",
333+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CPHB",
334+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CPNX",
335+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CRTP",
336+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.CRUDP",
337+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.DCCP",
338+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.DCN_MEAS",
339+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.DDP",
340+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.DDX",
341+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.DGP",
342+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.DSR",
343+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.EGP",
344+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.EIGRP",
345+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.EMCON",
346+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ENCAP",
347+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ESP",
348+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ETHERIP",
349+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ETHERNET",
350+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.EXPERIMENT_1",
351+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.EXPERIMENT_2",
352+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.FC",
353+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.FIRE",
354+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.GGP",
355+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.GMTP",
356+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.GRE",
357+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.HIP",
358+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.HMP",
359+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.HOPOPT",
360+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IATP",
320361
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ICMP",
321362
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ICMPV6",
322-
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ESP",
323-
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.AH",
363+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IDPR",
364+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IDPR_CMTP",
365+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IDRP",
366+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IFMP",
367+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IGMP",
368+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IGP",
369+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IL",
370+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPCOMP",
371+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPCV",
372+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPIP",
373+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPLT",
374+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPPC",
375+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPTM",
376+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPV4",
377+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPV6",
378+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPV6_FRAG",
379+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPV6_NONXT",
380+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPV6_OPTS",
381+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPV6_ROUTE",
382+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IPX_IN_IP",
383+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.IRTP",
384+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ISIS_IPV4",
385+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ISO_IP",
386+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ISO_TP4",
387+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.I_NLSP",
388+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.KRYPTOLAN",
389+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.L2_T_P",
390+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.LARP",
391+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.LEAF_1",
392+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.LEAF_2",
393+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MANET",
394+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MERIT_INP",
395+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MFE_NSP",
396+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MICP",
397+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MOBILE",
398+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MOBILITY_HEADER",
399+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MPLS_IN_IP",
400+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MTP",
401+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.MUX",
402+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.NARP",
403+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.NETBLT",
404+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.NSFNET_IGP",
405+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.NVP_II",
406+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.OSPFIGP",
407+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PGM",
408+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PIM",
409+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PIPE",
410+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PNNI",
411+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PRM",
412+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PTP",
413+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PUP",
414+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.PVP",
415+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.QNX",
416+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.RDP",
417+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.RESERVED",
418+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ROHC",
419+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.RSVP",
420+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.RSVP_E2E_IGNORE",
421+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.RVD",
422+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SAT_EXPAK",
423+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SAT_MON",
424+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SCC_SP",
425+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SCPS",
426+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SCTP",
427+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SDRP",
428+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SECURE_VMTP",
429+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SHIM6",
430+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SKIP",
431+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SM",
432+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SMP",
433+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SNP",
434+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SPRITE_RPC",
435+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SPS",
436+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SRP",
437+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SSCOPMCE",
438+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.ST",
439+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.STP",
440+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SUN_ND",
441+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.SWIPE",
442+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TCF",
443+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TCP",
444+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.THREEPC",
445+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TLSP",
446+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TPPLUSPLUS",
447+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TRUNK_1",
448+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TRUNK_2",
449+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.TTP",
450+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.UDP",
451+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.UDPLITE",
452+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.UTI",
453+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.VINES",
454+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.VISA",
455+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.VMTP",
456+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.VRRP",
457+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.WB_EXPAK",
458+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.WB_MON",
459+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.WESP",
460+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.WSN",
461+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.XNET",
462+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.XNS_IDP",
463+
"docs-public-apis:@aws-cdk/aws-ec2.Protocol.XTP",
324464
"docs-public-apis:@aws-cdk/aws-ec2.WindowsVersion.WINDOWS_SERVER_2008_SP2_ENGLISH_64BIT_SQL_2008_SP4_EXPRESS",
325465
"docs-public-apis:@aws-cdk/aws-ec2.WindowsVersion.WINDOWS_SERVER_2012_R2_RTM_CHINESE_SIMPLIFIED_64BIT_BASE",
326466
"docs-public-apis:@aws-cdk/aws-ec2.WindowsVersion.WINDOWS_SERVER_2012_R2_RTM_CHINESE_TRADITIONAL_64BIT_BASE",

packages/@aws-cdk/aws-ec2/test/integ.vpc.expected.json

-14
Original file line numberDiff line numberDiff line change
@@ -567,20 +567,6 @@
567567
"FromPort": 800,
568568
"IpProtocol": "udp",
569569
"ToPort": 801
570-
},
571-
{
572-
"CidrIp": "0.0.0.0/0",
573-
"Description": "from 0.0.0.0/0:ESP 50",
574-
"FromPort": 50,
575-
"IpProtocol": "esp",
576-
"ToPort": 50
577-
},
578-
{
579-
"CidrIp": "0.0.0.0/0",
580-
"Description": "from 0.0.0.0/0:AH 51",
581-
"FromPort": 51,
582-
"IpProtocol": "ah",
583-
"ToPort": 51
584570
}
585571
],
586572
"VpcId": {

packages/@aws-cdk/aws-ec2/test/integ.vpc.ts

-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ const rules = [
1616
ec2.Port.allUdp(),
1717
ec2.Port.udp(123),
1818
ec2.Port.udpRange(800, 801),
19-
ec2.Port.esp(),
20-
ec2.Port.ah(),
2119
];
2220

2321
for (const rule of rules) {

0 commit comments

Comments
 (0)