AWS CloudFormationのNACL定義で、TypeやPort RangeをALLにする書き方

 


今週はCloudFormationと戯れる毎日でございました。

普段、Network ACLはデフォルト値とし、セキュリティグループでアクセス制御をするのが

個人的な好みなのですが、顧客要件とあらば仕方ありませぬ。

 
特定のCIDRへのアクセスを全許可したり、TCPだけ全許可したり、

といった場合の記述をした際、一瞬「ん?」となりましたので、

忘れないようにメモを残しておこうと思いました。

 

TCPを全許可

tcp_all_20160318

特定のIPアドレスレンジへのALL TCPを全許可するには、

Port Rangeで全ポートを指定。

[text highlight=”10″]
“InboundAllTcpNaclEntry” : {
“Type” : “AWS::EC2::NetworkAclEntry”,
“Properties” : {
“NetworkAclId” : { “Ref” : “AllPermitNacl” },
“RuleNumber” : “95”,
“Protocol” : “6”,
“RuleAction” : “allow”,
“Egress” : “false”,
“CidrBlock” : “XXX.XXX.XXX.0/XX”,
“PortRange” : { “From” : “0”, “To” : “65535” }
}
},
[/text]

 

全ポートの通信を明示的に許可

type_all_20160318

特定のIPアドレスレンジに対して、明示的に、とにかく全部通したい場合。

[text highlight=”6,10″]
“InboundAllNaclEntry” : {
“Type” : “AWS::EC2::NetworkAclEntry”,
“Properties” : {
“NetworkAclId” : { “Ref” : “AllPermitNacl” },
“RuleNumber” : “990”,
“Protocol” : “-1”,
“RuleAction” : “allow”,
“Egress” : “false”,
“CidrBlock” : “XXX.XXX.XXX.0/XX”,
“PortRange” : { “From” : “-1”, “To” : “-1” }
}
},
[/text]

ProtocolとPortRangeを-1にするところがポイント。

 
CloudFormationは書くのはめんどくさいが、再利用性が高いのがいいですね。

 

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)
吉田 真吾 今井 智明 大瀧 隆太 松井 基勝 冨永 善視 藤原 吉規 大栗 宗
技術評論社
売り上げランキング: 2,224