はじめに
AWS CloudFormation を使用すると、インフラストラクチャをコードとして管理し、一貫した環境を構築することができます。
本記事では、CloudFormation テンプレートを用いて EC2 のセキュリティグループを作成する方法を解説します。
CloudFormation テンプレートの概要
以下の CloudFormation テンプレートでは、VPC に紐づくセキュリティグループを作成し、複数のプロトコルおよびポートに対するインバウンドルールを定義しています。
AWSTemplateFormatVersion: '2010-09-09'
Description: Create a Security Group
Parameters:
VpcId:
Type: AWS::EC2::VPC::Id
Default: vpc-xxx
Description: "VPC ID where the security group will be created"
Resources:
MySecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: "Custom Security Group"
VpcId: !Ref VpcId
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 445
ToPort: 445
CidrIp: 0.0.0.0/0
Description: "SMB"
- IpProtocol: tcp
FromPort: 3268
ToPort: 3268
CidrIp: 0.0.0.0/0
- IpProtocol: udp
FromPort: 88
ToPort: 88
CidrIp: 0.0.0.0/0
- IpProtocol: udp
FromPort: 53
ToPort: 53
CidrIp: 0.0.0.0/0
Description: "DNS"
- IpProtocol: tcp
FromPort: 3389
ToPort: 3389
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 3269
ToPort: 3269
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 88
ToPort: 88
CidrIp: 0.0.0.0/0
- IpProtocol: udp
FromPort: 135
ToPort: 135
CidrIp: 0.0.0.0/0
- IpProtocol: udp
FromPort: 389
ToPort: 389
CidrIp: 0.0.0.0/0
Description: "LDAP"
- IpProtocol: udp
FromPort: 137
ToPort: 137
CidrIp: 0.0.0.0/0
Description: "NetBIOS"
- IpProtocol: tcp
FromPort: 464
ToPort: 464
CidrIp: 0.0.0.0/0
- IpProtocol: udp
FromPort: 138
ToPort: 138
CidrIp: 0.0.0.0/0
Description: "NetBIOS"
- IpProtocol: tcp
FromPort: 636
ToPort: 636
CidrIp: 0.0.0.0/0
Description: "LDAPS"
- IpProtocol: tcp
FromPort: 389
ToPort: 389
CidrIp: 0.0.0.0/0
Description: "LDAP"
- IpProtocol: tcp
FromPort: 53
ToPort: 53
CidrIp: 0.0.0.0/0
Description: "DNS"
- IpProtocol: udp
FromPort: 464
ToPort: 464
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 139
ToPort: 139
CidrIp: 0.0.0.0/0
Description: "NetBIOS"
- IpProtocol: tcp
FromPort: 135
ToPort: 135
CidrIp: 0.0.0.0/0
テンプレートの説明
-
Parameters
セクション-
VpcId
はセキュリティグループを作成する対象の VPC ID を指定するパラメータ。
-
-
Resources
セクション-
MySecurityGroup
は EC2 のセキュリティグループを定義。 -
SecurityGroupIngress
で許可するインバウンドルールを設定。 - 各ルールで
IpProtocol
,FromPort
,ToPort
,CidrIp
,Description
を指定。
-
セキュリティの考慮点
-
CidrIp: 0.0.0.0/0
の利用に注意- すべての IP からのアクセスを許可するため、セキュリティリスクが高まる。
- 制限する IP アドレス範囲を特定し、適切な CIDR を設定することが推奨される。
-
RDP(ポート 3389)の公開は避ける
- リモートデスクトップ(RDP)のポート 3389 を全世界に公開すると、攻撃対象になりやすい。
- 必要に応じて、特定の IP アドレスに限定することが望ましい。
-
管理用のセキュリティグループを分離する
- LDAP, DNS, NetBIOS などの管理用プロトコルを使用する場合、それらを専用のセキュリティグループで管理すると安全性が向上する。
まとめ
AWS CloudFormation を用いることで、一貫性のあるセキュリティグループを簡単に作成できます。
しかし、セキュリティグループの設定には慎重な設計が求められます。
本記事で紹介したポイントを参考に、安全な AWS 環境の構築を目指しましょう。