マネージドプレフィックスリストでIPアドレスを設定し、セキュリティグループのルールを管理してみよう

マネージドプレフィックスリストでIPアドレスを設定して、セキュリティグループのルールを管理してみました。
2022.11.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、クラスメソッドのキム・ジェウク(Kim Jaewook)です。

今回は、マネージドプレフィックスリストでIPアドレスを設定して、セキュリティグループのルールを管理してみました。

マネージドプレフィックスリスト?

マネージドプレフィックスリストは、1 つ以上の CIDR ブロックのセットです。プレフィクスリストを使用すると、セキュリティグループとルートテーブルの設定と管理が容易になります。

AWS公式ドキュメントでは上記のように説明しています。

つまり、マネージドプレフィックスリストを使用して、より簡単に多くのIPアドレスを管理できます。

例えば、SSH通信を許可するIPアドレスが4つの場合、セキュリティグループのインバウンドルールで4つのIPアドレスを許可する必要があります。

でも、SSH通信を許可するIPアドレスが6つ、8つ以上に増えると、管理が難しくなります。

このような状況を解決するため、マネージドプレフィックスリストを使用すると、より簡単に多くのIPアドレスを管理できます。

コンソールでマネージドプレフィックスリストを作成

VPCコンソール画面に入ります。

  1. マネージドプレフィックスリストをクリックします。
  2. 「マネージドプレフィックスリストを作成」をクリックします。

  1. プレフィックスリスト名を入れます。
  2. 最大エントリも入れます。

最大エントリの場合、管理するIPアドレスの最大数を意味します。

最低「1」から最大「1000」までサイズ変更できます。

「新しいエントリを追加」をクリックし「CIDRブリック」にIPアドレスを入れます。

そして「プレフィックスリストを作成」をクリックします。

プレフィックスリストのサイズを変更した場合、「プレフィックスリストを選択」→「アクション」→「プレフィックスリストのサイズを変更」をクリックします。

  1. 現在、設定された最大エントリサイズです。
  2. 現在、設定されたIPアドレス数です。
  3. 変更したい最大エントリサイズを入れます。
  4. 「サイズを変更」をクリックします。

最大エントリが「15」に変更されたことを確認できます。

セキュリティグループのインバウンドルールに設定

  1. 設定したいセキュリティグループを選択します。
  2. インバウンドルールをクリックします。
  3. 「インバウンドルールを編集」をクリックします。

  1. SSH、RDPなどのタイプを選択します。
  2. 先程、作成したマネージドプレフィックスリストを選択します。

最後に「ルールを保存」をクリックすると設定完了です。

実際、確認してみると、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」というマネージドプレフィックスリストが設定されたことが確認できます。

参考