セキュリティとコンプライアンス ~ クラウドカバー Episode 78
今回のクラウドカバー「Episode 78 - Security and Compliance」では、Nathan と Cory をホストに、2人のゲストを迎えつつ、Windows Azure のセキュリティとコンプライアンスについてお送りいたします。
いつものように、ニュースから。
Windows Azure を利用する際に発生する通信料に関して Internet2 との間で、Internet2 に所属する大学における研究利用の場合に、無償化する、という取り組みが発表されています。
このような取り組みにより、大量のデータ(Big Data)を利用する研究などでのクラウド利用が促進されるかと。
◆ Patterns & Practices Symposium Online 2012
4月に開催された Patterns & Practices Symposium のセッションビデオが公開されています。
Visual Studio 開発チームのトップである Microsoft 本社副社長の Somasegar のあいさつに始まり、Windows Azure や Windows Phone あるいは .NET Micro Framework によるガジェット開発など、多岐にわたっています。
そして、最後のクロージングでは、Kent Beck によるセッション Big transition in small steps ということで、Patterns & Practices グループらしいコンテンツになっています。
◆ Announcing Windows Azure Achievements for Visual Studio
本日一人目のゲスト、Karsten Januszewski による Blog エントリー。
Visual Studio で特定の操作を行うとバッジがもらえる、Visual Studio Achievements に Windows Azure のバッジが追加されました。
Visual Studio Achievements は、いわゆるゲーミフィケーション的な遊びの要素を Visual Studio に付け加える Extension(拡張)で、Windows Azure 関連ではアプリケーションをデプロイしたり、Blob や Service Bus を使用することでバッジの獲得できたりします。クラウドカバー中のデモで実践しているのは、”Worker Role を使う” ことでゲットできる “Union Jack” のバッジ。
獲得したバッジは、Visual Studio の「ツール」メニューの「Achievements」で確認できるほか、Channel 9 のページで公開したり(こちらは筆者のバッジ一覧 on Channel 9 )、またリーダーズボードで順位を確認することが可能です。
より多くのバッジを獲得するために、Visual Studio / Windows Azure のいろいろな使い方を学んでください!
そしてここで、本日2人目のゲスト、Krishna Anumalasetty が登場。
Krishna は Windows Azure 開発チームにおけるセキュリティとコンプライアンス関係の責任者で、先日クラウドカバーでも紹介した Windows Azure の Trust Center に関しても彼のチームで担当しています。
彼らのチームの第一のゴールは、様々な顧客が、様々な使い方をする「Windows Azure プラットフォームをセキュアにすること」、です。そのため、顧客のアプリケーションがセキュリティ、コンプライアンスに対する要件を満たせるように、プラットフォームとしての機能提供を行えるように取り組んでいます。
Cory からは、Windows Azure によってセキュアなプラットフォームが提供されたとしても、アプリケーションをセキュアにするのは開発者だよね。そこでいいガイダンスとかある?、と質問が。
そこで Krishna からは、セキュアなアプリケーションを作る際に参考になるホワイトペーパーや情報を Trust Center に掲載しており、また、Windows Azure へのデプロイを行う前に SQL インジェクションやクロスサイトスクリプティング(XSS)に対するテストなど十分に行ってほしい、という回答が。
※ Trust Center の話は後程また出てきます。
さらに、Widnows Azure の Storage にアクセスする際に必要なキーは、しっかり管理してください、という話が。
ここで Cory からは、どのくらいの頻度で Storage のキーを再生成すべき?と追加の質問。
これに対しては、データの保護の必要性(Sensitivity)によって頻度は変わってくるが、キーを扱っていた従業員が退社した場合などはキーの再生成を行うべきタイミングだといえるし、また、より高い保護が必要になるデータであればあるほど、キーの再生成の頻度を高める必要がある、と Krishna が回答。
次に Nathan から、HIPPA や ISO などいろんなセキュリティ基準があるけれど、例えば、開発者が HIPPA に対応するアプリケーションを開発しなければいけない場合、HIPPA に Windows Azure が対応していたとして、そのうえでアプリケーションを作ればOK、ではなく、それ以外にも HIPPA に対応するために作業は必要なんだよね?、と質問が。
Krishna の回答は「その通り(Correct)」。
例えば、ISO27001 と呼ばれる情報セキュリティの国際基準では、アプリケーションをセキュアにする、アクセスコントロールを行う、Disaster Recovery の対策を考える、パッチを行う、などのセキュリティ対策が必要になります。
Windows Azure ではこれらのセキュリティ対策を支援するため、例えばパッチに関しては、Windows Azure では、ゲストOSに対して自動的に適用するようにしています。もちろん、これは手動でアップデートを行うようにすることも可能です。
ただ、これは Windows Azure の PaaS としてのサービスであって、アプリケーションがセキュアでコンプライアンスを守っている状態にするのは、オーナー(開発者)の責任になります。
また、Nathan からの、Windows Azure が対応しているセキュリティ/コンプライアンス基準は、との質問で出てきたのが下記のスライド。
この中の、ISO27001 は国際標準として Windows Azure が認定を受けている基準です。
その他のもの、例えば、SSAE16 は AICPA(米国公認会計士協会)により定められた監査基準で、公開企業に求められる要件ですが、Windows Azure ではコアサービスに関して、この基準への認定取得を進めています。
EU Model Clauses(EU モデル条項) に関しては、既にサインをしています(EU モデル条項は EU における個人情報の処理に関する国際規定)。
また、Safe Harbor に関しては準拠している状態になっています。具体的には、データ複製などによって欧州や米国といった地域をまたがないようにしています(そのようなアプリケーション構築ができないようにしているわけではなく、日々の Windows Azure データセンター運営の中で、そのようなデータ複製などが発生しないようにしている)。
たとえば、(Windows Azure Storage の Disaster Recovery のための機能である)Geo-Replication という機能がありますが、この機能においては複数のデータセンター間でのデータ複製が自動で行われるが、米国や、欧州といった地域をまたいでの複製は発生しないような設計になっています。
(繰り返しになりますが、アプリケーション開発者が意図してそのような設計(米国と欧州をまたぐデータコピーを行うような設計)を行い、そのように動作させることは可能です。Windows Azure でそのようなアプリケーションの動作を禁止しているわけではありません)
※ なお、Windows Azure の情報ではなく、Office 365 の情報となりますが、日本語でセキュリティ/コンプライアンス基準について理解を深めるために「セキュリティ、監査、および認証」および「Office 365 セキュリティ センター」の情報等も参照いただけると良いかと思います。
なお、各セキュリティ基準に関しては、現時点では Core Service に対する認定ですが、将来的にはプラットフォーム全体で認定を取得できるように推進しているとのことです。
ここで Nathan から、例えば HIPPA (健康に関する情報を米国内に保存する、とした規制)に準拠したいサービスがあったとして、データはオンプレミスの SQL Server に保存しておき、Azure の Connect 等を使い Azure と連携、Azure のコンピューティング パワーだけを利用して何らかの処理を行い、結果はオンプレミスへ、といった場合、規制には合致するの?との質問。
これに対し、まず Windows Azure は HIPPAの認定は受けていない、という回答。
さららに、個別シナリオに関してはマイクロソフトとしてのアドバイスを行うことはできず、各事業者でコンプライアンス、あるいは法的な確認を行う必要がある、と返答が。
※ Nathan は今回のクラウドカバーの中で、HIPPA と ISO の2つによく言及していますが、Windows Azure が認定を受けているのは ISO27001 で、HIPPA に関しての認定は受けていません。ご留意ください。
法的アドバイス(Legal Advice) はできません、との Disclaimer(免責)の表示が。
次は Disaster Recovery の観点でのお話し。
自然災害による甚大な被害が発生した場合、アプリケーションを特定のデータセンターのみに配置していると、そのデータセンター内で複数のインスタンスを利用していたとしても、データセンター自体が止まってしまうとアプリケーションも止まってしまいます。
したがって、Highly Available を要求する場合、複数のデータセンターにアプリケーションをデプロイしておくことをお勧めしています。
また、そのようなシナリオをサポートする機能として、”Traffic Manager” を利用していただくことが可能です。
※ Traffic Manager により、複数のデータセンターにデプロイしたアプリケーションを、共通の URL でひとまとめにすることができます。共通の URL でアクセスしてきたユーザーは、あらかじめ定義したルール(ストラテジー)に基づき、各データセンターのアプリケーションへルーティングされ、処理結果を受け取ります。また、Traficc Manager では、ルーティング先のアプリケーション稼働状況をモニタすることができ、(データセンターが自然災害により被害を受けた場合などで)アプリケーションの稼働が止まっている場合、ユーザーリクエストをそれ以外のデータセンターのアプリケーションにルーティングすることができます。
次に Nathan から、可用性に関しては Windows Azure の SLA にある 99.95% で十分と割り切り、コストとのバランスの観点で、自然災害等でサービスが停止するのはやむ得ない、と判断したサービスがあったとして、でもその一方でデータは守りたい、といった場合はどうなる?と質問。
これに関しては Windows Azure Storage では、Table および Blob のデータを Geo-Replication によってデータセンターをまたがったバックアップの仕組みがあるので、そこでコピーがとられている、という回答が。また、ハードウェア障害でディスクが壊れた際には、複数ディスクの情報によって一貫性を守るようにしている、とのこと。
最後にアプリケーションのバグや、人的な操作ミスの場合は、Windows Azure の仕組みでは復旧仕様がないので、3rd Party のサービスや独自の仕組みでバックアップを行う必要がある、とのことでした。
さて、最後は先日公開が始まったばかりの、Windows Azure Trust Center の紹介です。
Windows Azure の Trust Center は4つのセクション、セキュリティ、プライバシー、コンプライアンス、FAQ から構成されています。
セキュリティにおいては、Windows Azure のデータセンターにおけるセキュリティ確保への取り組みや、アプリケーションをセキュアにするためのプラクティスの紹介等が含まれます。
また、近い将来において、Windows Azure 上のアプリケーションに対して Penetration Test (侵入テスト)を行うための申請書を用意する予定です。これによって事前に Windows Azure チームがアプリケーションの開発者がアプリケーションに対してテストを実施することを認識することが可能になります。
また、Trust Center のコンプライアンスの項目では、各種セキュリティ規則への対応状況を解説しており(現在は ISO27001 の認定情報が掲載されています)、他の認定等に関しても適宜情報を更新していく予定です。
ということで、Windows Azure のセキュリティとコンプライアンス関係の責任者 Krishna を交えたお話でした。
最後は恒例の Tip of the Week!
今回の Tip は、Windows Azure のコストを下げる5つの方法のブログエントリから。
具体的には以下の5つの項目が挙げられています。
- サスペンド状態のデプロイメントは削除する(Windows Azure では、サスペンド状態のインスタンスにも課金が発生するため)
- 適切な VM サイズを判断する
- なるべく同じデータセンターを使う
- 負荷に合わせてスケールを変える
- SQL Azure のサイズを適切にする
詳しくはブログを参照ください。
ということで、クラウドカバー Episode 78、セキュリティとコンプライアンス、の簡単解説でした!
それでは、Enjoy!