Bluemix
SoftLayer
ibmcloud

IBM Cloud Internet Services (CIS)を使ってみた(オーダー・初期設定)

はじめに

Cloudflare社とのパートナーシップにより、IBM CloudからCloudflareのインターネット関連サービス(DNS/DDoS防御/WAF/グローバルロードバランシング等)をオーダーし、利用できるようになりました。IBM Cloud Internet Services (CIS)というサービス名での提供となります。

https://www.ibm.com/blogs/cloud-computing/2018/03/security-performance-ibm-cloudflare/

https://console.bluemix.net/catalog/services/internet-services

https://console.bluemix.net/docs/infrastructure/cis/about.html#about-ibm-cloud-internet-services

Free Early Accessとして、2018年5月末までCISの機能を無料で利用可能でしたので、試してみました。
2018/8追記 Free Early Access期間は終了しましたが、30日間無料トライアルが機能制限なしで利用可能です。

オーダー

下記のStep 1の手順となります。
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

IBM Cloudカタログのネットワークカテゴリに、Internet Servicesがあるので、ここからオーダーします。

image.png

image.png

2018年5月末まで、Early AccessとしてCISの機能を無料で利用可能です!
2018/8追記 Free Early Access期間は終了しましたが、30日間無料トライアルが機能制限なしで利用可能です。

image.png

作成を押下すると、数分のうちに、ダッシュボード上でInternet Servicesが利用可能になります。(無料のEarly Accessでは、1アカウントにつき、1つのみオーダーできます)

image.png

ドメイン追加

まず、CISに自身が保有するドメインを追加します。追加するドメインは事前にレジストラに登録して、保有しておく必要があります。IBM Cloud経由でもドメインを登録可能です。

ドメイン追加の手順は下記のStep 2の内容となります。(無料のEarly Accessでは、1つのドメインのみ追加できます)
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

image.png

Step 4が終わるまで、ドメインはpendingの状態となります。

image.png

CISのDNSに自ドメインを設定

CISのDNSに、自身のドメインのレコードを登録します。下記のStep 3(Optional)の内容となります。
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

このステップは必須ではありませんが、次のStep 4でNSレコードを書き換え、ドメインの名前解決を行うDNSがCISのDNSになった際に、スムーズに引き継げるようにあらかじめCIS側のDNSにレコードを書いておく、という目的があります。

今回、オリジンは、別の記事で作成したIBM Cloud Load Balancer(と、その配下の実際のウェブサーバー)としたので、CNAMEとして、ロードバランサーのFQDNを設定しました。もちろんIBM Cloud Load Balancerを使わない構成も可能で、その場合は、普通にウェブサーバーのグローバルIPをAレコードとして登録します。
CISのセキュリティ機能を使うためには、DNSレコードのPROXY設定を有効にしてください。

image.png

レジストラのNSレコードをCISのものに変更

ドメインを登録すると、CISで使うためのNSレコードが提供されますので、自身のドメインのNSレコードとして登録します。下記のStep 4の内容となります。
https://console.bluemix.net/docs/infrastructure/cis/getting-started.html

image.png

この作業は、自身のドメインを登録しているレジストラ(またはDNSプロバイダ)の管理画面での作業となります。
今回は、IBM Cloud IaaSを通して取得したドメインのため、管理ポータル画面でNSレコードを変更します。(もし外部レジストラでドメイン取得している場合は、そちらの管理画面での作業となります。)

image.png

image.png

image.png

NSレコードの変更が反映されると、CIS側のドメインのステータスがPendingからActiveに変わります。
最大で24時間程度かかると書いてありましたが、今回は1時間程度で反映されました。

image.png

この時点で、自ドメインの名前解決先はCISのIPアドレスになります。

$ nslookup www.tama0921.com
Server:     x.x.x.x
Address:    x.x.x.x#53

Non-authoritative answer:
Name:   www.tama0921.com
Address: 104.20.30.221
Name:   www.tama0921.com
Address: 104.20.29.221

$ 

上記IPアドレスのwhois情報を見ると、CloudflareのIPアドレスとして登録されています。
image.png

ブラウザからアクセスしてみる

ブラウザからアクセスすると、特にこれまでと変わらず表示されます。

image.png

ウェブサーバーのログでX-Forwarded-Forを記録するよう設定することで、下記の様に、エンドユーザーから、Cloudflare、IBM Cloud Load Balancerを経由してアクセスが来ていることが確認できます。

219.xx.xx.147, 103.xx.xx.239 10.xx.xx.86 - - [14/Apr/2018:13:13:44 -0500] "GET / HTTP/1.1" 304 - "http://www.tama0921.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Firefox/52.0"

ちなみに、オリジンサーバー側の設定をミスってエラーになった時は、下記のような画面となりました。CIS(Cloudflare)までは問題なく、オリジンに問題があることが分かります。
image.png

以上で、自身のドメインにCIS経由でアクセスできるようになりました。

これまで、DDoS防御やWAFの機能を自前で用意しようとすると、技術的な難易度も高く、機器のコストや設定のための工数も、高額になっていたと思います。このように非常に簡単に、自身のウェブサーバーのセキュリティを高められるのはクラウドサービスの魅力の1つと思います。

下記に、CISのTLSオプションについて書きました。
https://qiita.com/y_tama/items/f6bddda9630052902e25