こんにちは、クラスメソッドのキム・ジェウク(Kim Jaewook)です。
今回は、マネージドプレフィックスリストでIPアドレスを設定して、セキュリティグループのルールを管理してみました。
マネージドプレフィックスリスト?
マネージドプレフィックスリストは、1 つ以上の CIDR ブロックのセットです。プレフィクスリストを使用すると、セキュリティグループとルートテーブルの設定と管理が容易になります。
AWS公式ドキュメントでは上記のように説明しています。
つまり、マネージドプレフィックスリストを使用して、より簡単に多くのIPアドレスを管理できます。
例えば、SSH通信を許可するIPアドレスが4つの場合、セキュリティグループのインバウンドルールで4つのIPアドレスを許可する必要があります。
でも、SSH通信を許可するIPアドレスが6つ、8つ以上に増えると、管理が難しくなります。
このような状況を解決するため、マネージドプレフィックスリストを使用すると、より簡単に多くのIPアドレスを管理できます。
コンソールでマネージドプレフィックスリストを作成
VPCコンソール画面に入ります。
- マネージドプレフィックスリストをクリックします。
- 「マネージドプレフィックスリストを作成」をクリックします。
- プレフィックスリスト名を入れます。
- 最大エントリも入れます。
最大エントリの場合、管理するIPアドレスの最大数を意味します。
最低「1」から最大「1000」までサイズ変更できます。
「新しいエントリを追加」をクリックし「CIDRブリック」にIPアドレスを入れます。
そして「プレフィックスリストを作成」をクリックします。
プレフィックスリストのサイズを変更した場合、「プレフィックスリストを選択」→「アクション」→「プレフィックスリストのサイズを変更」をクリックします。
- 現在、設定された最大エントリサイズです。
- 現在、設定されたIPアドレス数です。
- 変更したい最大エントリサイズを入れます。
- 「サイズを変更」をクリックします。
最大エントリが「15」に変更されたことを確認できます。
セキュリティグループのインバウンドルールに設定
- 設定したいセキュリティグループを選択します。
- インバウンドルールをクリックします。
- 「インバウンドルールを編集」をクリックします。
- SSH、RDPなどのタイプを選択します。
- 先程、作成したマネージドプレフィックスリストを選択します。
最後に「ルールを保存」をクリックすると設定完了です。
実際、確認してみると、4つだったインバウンドルールが1つに減ったことが確認できます。
CloudFormationで作成
AWSTemplateFormatVersion: '2010-09-09'
Description: Create PrefixList for SecurityGroup
Resources:
# PrefixList
PrefixList:
Type: AWS::EC2::PrefixList
Properties:
AddressFamily: IPv4
Entries:
- Cidr: x.x.x.x/x
- Cidr: x.x.x.x/x
- Cidr: x.x.x.x/x
- Cidr: x.x.x.x/x
MaxEntries: 4
PrefixListName: test-prefix
# Outputs
Outputs:
PrefixList:
Value: !Ref PrefixList
Export:
Name: !Sub test-prefix
CloudFormationでマネージドプレフィックスリストを作成します。
AWSTemplateFormatVersion: "2010-09-09"
Description: Create SecurityGroup
Parameters:
# Input Parameters
VPCID:
Description: "VPC ID"
Type: AWS::EC2::VPC::Id
Resources:
# Security Group
SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: test-sg
GroupDescription: Prefix test Security Group
SecurityGroupIngress:
- IpProtocol: "tcp"
FromPort: 22
ToPort: 22
SourcePrefixListId: !ImportValue test-prefix
SecurityGroupEgress:
- CidrIp: "0.0.0.0/0"
IpProtocol: "-1"
VpcId: !Ref VPCID
Tags:
- Key: Name
Value: test-sg
# OutPut
Outputs:
SecurityGroup:
Value: !Ref SecurityGroup
Description: Prefix test Security Group
Export:
Name: test-sg
そして、セキュリティグループを作成します。
インバウンドルールはマネージドプレフィックスリストを取得して設定します。
スタックを作成して確認すると「test-prefix」というマネージドプレフィックスリストが作成されたことが確認できます。
最後にセキュリティグループのインバウンドルールに「test-prefix」というマネージドプレフィックスリストが設定されたことが確認できます。