IBM Watson Developer Cloudのセキュリティー概要

#1. はじめに
Watson Developer Cloudは多くのCognitiveサービスを提供しています。これらの機能について魅力を感じ、「Watsonにxxxをやらせられないのか？」と日々考えている人も多いことでしょう。
ただ、こういうサービスを利用する際に、常に気になるのはセキュリティーです。Watson Developer Cloudのセキュリティー概要については、[ここ](https://www.ibm.com/watson/assets/pdfs/Watson_Developer_Cloud_Security_Overview_July-2016_1.pdf )や[ここ](https://www.ibm.com/watson/watson-security.html)にもまとめられています。本記事ではこうした資料を参考にしながら、Watson Developer Cloudのセキュリティーについて概要をまとめたいと思います。

#2. Deployment model
以下の3つから選択が可能です。どのdeploymentモデルであったとしても、管理ポリシーやセキュリティーアーキテクチャーは一貫して同じであり、どこまでテナント分離をしたいかということが異なります。どのモデルにおいても、IBM Cloud データセンター（SoftLayer）上で提供されています。

![deploymentmodel.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/e5216d37-8325-a971-7d6d-f94479ee0acb.jpeg)

- Shared:
    - 資格情報(ID/Credential Key)などは利用者ごとに用意されており、他利用者とはアクセス権は分離されているが、サービスや使用しているデータベースが他利用者と共有されているモデル
    - もっとも安価であり、規制情報やPII(Personally identifiable information)を含まないサービスに最適
    - 2017年6月現在、日本国内DCではまだ提供されていません。US、UK、ドイツ、オーストラリアでサービス提供されています。
- Premium:
    - サービスやデータベースは利用者ごとに分離されているが、サーバーやハードウェアは他の利用者と共有しているモデル
    - 2017年6月現在、日本国内DCではまだ提供されていません。
- Dedicated
    - サーバーやハードウェアのレベルで他の利用者と分離しているモデル
    - 一番安全ですが、最も高価です。

#3. 全体構成のベースセキュリティー

以下では下図をベースに説明していきましょう。

![WatsonDiagram.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/66c706c2-9898-7c70-bb5f-d701890d8b42.jpeg)

##3.1 全体構成

IBM Watson Developer Cloudは、SoftLayer上のデータセンターに構築されています。とはいっても、責任共有モデルに従いSoftLayerとしてはOSより上の構成に関しては関与していません（このあたりが、まだまだOne Platformになっていないという壁を感じますね）。BluemixおよびWatsonのチームが、サーバーを自分で払い出し、独自にツールや製品や管理の仕組みを作りこんで、マネージドサービスとしてサービス提供しています。

- よくある間違いが、「WatsonはSoftLayerで動いてるので、セキュリティーはSoftLayerの人に聞いてみよう」というミスリードです。SoftLayerはサーバー資源を提供しているだけなので、そのサーバーをどのように設定しているかやどのようにネットワーク構成を組んでいるかについては関与していません。そういう内容はWatsonというサービスの実装に依存します。もちろん、データセンターの物理セキュリティーやグローバルネットワークでの動きはSoftLayerの仕様に従うでしょうから、そのあたりはSoftLayerの人に聞いてみると良いでしょう。
- SoftLayerと直接契約してIaaSとして利用するのであれば、例えば上図のようにVyattaを使ってゾーニングするなど**利用者が独自に設計することで**自由に構成可能です。この例では、SoftLayer上でWebサービスを提供した際に、DMZなどのゾーニングを行っている構成例を示しています。Watsonサービスを呼び出す際には、Proxyサーバー経由でURLフィルタリングを行うことで出口対策を行うことが可能です。

IBM Watsonのセキュリティーとしては、どのDeployment modelにおいても独自に以下の実装が行われています。

- ネットワーク暗号化(HTTPS over TLS1.2)およびストレージ暗号化(AES256)
- ネットワークレベルのFirewallおよびゾーニング（Vyattaが使われていると思われます）
- アプリケーションレベルでのファイアーウォールおよび認証・認可（IBM DataPower)
- セキュリティー情報とイベントの管理および侵入検知(Q-RadarによるSIEM管理やIBM X-Force技術)
- アプリケーションソースコードのスキャニング
- 3rd Party Toolによるペネトレーションテストおよび定期的な脆弱性スキャン
- HIPPAやFFIECなどのコンプライアンス遵守および、IBMが定めるガバナンス・リスク・コンプライアンスポリシー
- SoftLayer自身が提供する物理セキュリティーおよびDDOS対策


##3.2 アクセス経路

- SoftLayer外からはインターネット経由で通信可能です。
- HTTPSが利用可能であり、TLS1.2をサポートしています。
- BluemixやWatsonはSoftLayer上に構成されているため、SoftLayer上に作られているサーバー間の通信は、同一のAS（AS36351）内におけるインターネットを経由しない通信になります。※AS（Autonomous System:自律システム）とは同一の管理組織によって管理されているネットワーク群のことです。インターネットはASの集合体です。
- Public型もしくはPremium型は資源をマルチテナントで提供しているため、直接専用線を引き込むことはできません。専用線を東京DCに引き込み、東京DCからPublic NW経由で海外DCにあるWatsonにアクセスすることが可能です。繰り返しですが、東京DCと海外DCはPublic NWで接続するとしっても、その経路は同一のAS（AS36351）内でのインターネットを経由しない通信になります。セキュリティーは多層で保護するのが一般的なので、このAS内経路とhttpsによる暗号化を組み合わせることで、堅牢なネットワーク保護が可能になります。
- Firewallおよびゾーニングを行うことで、Watsonサービスを外部ネットワークから保護しています。外部からの経路はペネトレーションテストや脆弱性スキャンなどで定期的に入念にチェックされており、通常時もSIEMで監視されています。

##3.3 認証・認可

- Watson Developer CloudはBluemixサービス内で提供されているため、認証・認可の仕組みはBluemixの方式に従い、Bluemix経由で資格情報(ID/Credential key)は発行されます。
- 認証後に一時トークンが生成されますが、その有効期間は60分のようです。

##3.4 データ保管

- Watsonのサービスの多くはステートレスであり、データは処理されるだけであって保管はされません。
- データを処理する上で、利用者特有のコンテキスト情報を付け加えてカスタマイズできるものもありますが、そういう構成情報は別途分離された環境上で暗号化されています。暗号化はAES256を利用しています。
- 各サービスのトランザクションに関するログは保管されて、Watsonのサービス向上のために利用されていますが、利用者が望めばオプトアウトすることが可能です。

##3.5 バックアップ・冗長化

- レプリケーションやスナップショットを取得していますが、サービスによって実装は異なるようです。
- 一般的には、日々スナップショットが取得され、暗号化されたストレージを使って複数のインスタンスやロケーションにセキュアにレプリケーションが取られます。

#4. ガバナンス・コンプライアンスや人的セキュリティー

- Bluemix PublicおよびWatson Developer CloudはSoftLayer上で動いているため、物理セキュリティーに関してはSoftLayerが保持するISO27001やSOC2に従っています。SoftLayerの物理セキュリティーおよび認証に関しては、[こういう資料](https://www.slideshare.net/ussovh/softlayer20151016)が参考になると思います。
- WatsonはHIPPAやFFIECなどのコンプライアンスに従っています。また、IBM独自で定めるガバナンス・リスク・コンプライアンスポリシーに従っています。