セキュリティリスト
Nimbula Directorでは、セキュリティリストという機能が用意されています。
セキュリティリストは完全にNimbula Director上で実装されるファイアウォール機能であり、L3/L4レベルで通信を制御することが可能です。インスタンスの要件に応じて、特定インスタンスからのSQL接続だけを許可したり、インターネットからのHTTPアクセス全てを許可したりといった設定を行います。
まずNimbula Directorのセキュリティリストの構成要素を紹介します。セキュリティリストは以下の4つから構成されます。
- Security Application(図2-1):プロトコルとポート番号
- Security IP List(図2-2):IPアドレスのグループ
- Security List(図2-3):インスタンスに適用するデフォルトルール。[Policy]で外部からインスタンスへの通信、[Outbound CIDR Policy]でインスタンスから外部への通信のデフォルトルールを「Permit」もしくは「Deny」から指定
- Security Rule(図2-4):Security ListでDenyが定義されている場合の例外ルールを定義
下の図2で各コンポーネントの関連性を示します。
インスタンスをデプロイする際に、Security Listを割り当てることが出来ます(図2-5)。Security Listでは[Policy]、[Outbound CIDR Policy]でそれぞれ「Permit」か「Deny」のみを指定します。
Permitを選択した場合は、その方向への通信はすべて許可され、Denyを選択した場合は逆にすべて拒否されます。
上記のようにSecurity Listではすべて許可、すべて拒否の設定しかできません。そのため、Security Ruleで、Security ListがDenyしている通信のうち、例外ルールを作成し、特定の通信のみを許可するという仕組みになっています。
図2では、「public-internet」というIP Listに属するマシンから、「Security ListA」に属するインスタンスへの23番ポートでの通信を許可するという例外ルールを作成しています(図2-6)。
Security IP Listは、IPアドレスのグループで事前に登録しておく必要があります。作成時にはSecurity IP List名と、その登録するIPアドレスの範囲を指定します。ユーザーが新規作成することもできますが、今回はNimbula Directorがデフォルトで持つ「/nimbula/public/public-internet」を使用します。
このSecurity IP Listには「0.0.0.0/0」が登録されており、すべてのマシンを対象としています(図2-7)。Security Applicationはプロトコルとポート番号のリストで、事前に登録しておく必要があります。ユーザーが新規作成することも可能ですが、一般的に利用されるポートはNimbula Directorがすでに登録しています。
本稿では既存の「/nimbula/public/ssh」を使用します。
インスタンスは、デプロイ時にSecurity Listを指定していない場合、デフォルトで「カスタマ名/default/default」というSecurity Listが割り当てられます。このルールには[Policy]がDeny、[Outbound CIDR Policy]がPermitと定義されており、外部からの接続を一切許可しないようになっています。そのため、すでに作成したインスタンスにSSHなどを実行しても接続することが出来ません。
以降は、図2のように全てのマシンからの通信を拒否し、SSHでの通信だけを許可するように、Security List、Security Ruleを構成していきます。
各項目を以下のように設定します。
Name: /acme/administrator/security-rule-A Policy: DENY Outbound CIDR Policy: DENY
Security Listが作成されたことを確認します。
以上でSecurity Listの作成は完了です。作成したSecurity Listの動作を確認するために、インスタンスを作成します。