『クラウドネイティブセキュリティ入門』2021/6/22
澤橋 松王 (著), 岩上 隆志 (著), 小林 弘典 (著), 小幡 学 (著), & 1 その他

 クラウドネイティブで開発する際に押さえておきたいセキュリティについて詳しく解説、コンテナ技術、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、宣言型APIに関わるセキュリティ脅威と対策を取り上げ、組織における開発・運用セキュリティにおける新たなアプローチを提示してくれる本です。
「クラウドネイティブシステムは従来型のセキュリティでは十分に保護できない」そうです。というのも、クラウドネイティブシステムは、従来型のシステムとは大きく異なった性質を持っているから……と言うことで、以下に従来型との比較とともに、「クラウドネイティブのセキュリティ対策の特徴」を紹介します。
・リリース間隔:数週間~数カ月(従来型は数カ月~1年)
・アプリケーション形態:マイクロサービス(従来型はモノリシック)
・主要なセキュリティ対策:ゼロトラスト(従来型は境界防御)
・開発手法:アジャイル開発(従来型はウォーターフォール)
・セキュリティ検査タイミング:シフトレフト=全工程で実施(従来型はリリース直前)
・システム稼働環境:パブリッククラウド、コンテナ(従来型はオンプレミス、サーバー型仮想化)
 なお「マイクロサービス」というのは、「1つのアプリケーションをビジネスドメインに基づき独立してデプロイ可能なサービスに分割して、それぞれのサービス同士の通信はネットワークを経由することで、密結合のリスクを回避する手法のこと」だそうです。
 このように、クラウドネイティブシステムは、従来型のシステムとは大きく違っています。
 例えば、システムに変更の必要性が生じた場合、従来型のシステムは稼働中のリソースに変更を組み込みますが、クラウドネイティブシステムの場合は、「稼働中のリソースに対して変更を行うのではなく、稼働中のリソースを廃棄し、変更済みの新しいリソースに入れ替えながら運用していく。」という方法を採ります。そのため、クラウドネイティブシステムは、異常時検出時に論理的に隔離することや、新しいサービスを速やかに復旧させることも可能になるのです。
 また「宣言型API」という新しい技術も利用されています。
「宣言型APIとは、サービスに実行すべき命令を伝えるのではなく、サービスのあるべき状態を指示できるAPIです。(中略)この方式は、目的としている結果を記述するため、実際に実行しなくても実行された場合の結果がわかり、システムが宣言した状態を維持するように自律的に動作するので、システムの状態を常に監視したり、状態変化に応じて命令を沢山実行したりしなくてもよいことになります。」
 ……従来型システムとは、いろいろな面でかなり違ったシステムなんですね。
「クラウドネイティブな大規模分散システムでは、マイクロサービスのような大量のコンポーネントが相互に通信しており、サービス構成も複雑化しているため、障害の発生個所や原因を特定するのが非常に難しくなっています。そして、コンポーネントが増え、構成が複雑化しているため、発生しうる障害を想定することも難しくなっており、従来型の監視システムではシステムの健全性を把握するのは困難になってきています。
 そこで、クラウドネイティブな大規模分散システムにおけるシステム管理セキュリティ対策においても重要性を増しているのが、オボザーバビリティ(可観測性)です。」
 ここでは、「イミュータブルインフラストラクチャ(不変なインフラ)におけるレジリエンスを高める活動」として紹介されていた「カオスエンジニアリング」がとても効果的なように感じました。カオスエンジニアリングとは、「リソースの過負荷やネットワークの断絶などのテストイベントを稼働中のシステムで実際に発生させることで、ソフトウェアやサービスの信頼性が担保されているかシステムを観測し、SRE(Site Reliability Engineering)チームは対応プロセスを適切に実行できるか、訓練を行う」ものだとか。
 また、クラウドネイティブなシステムは、開発方法や組織をどうすべきかに関しても教えてくれます。
「クラウドネイティブなシステムにおいては、常にインターネット上の脅威にさらされていることやアプリケーション開発のスピードが重視されるため、短いサイクルでの継続的な対策が必要となります。そのためにも、ワークロード負荷の軽減やスピードを実現するツールの導入だけでなく、システム開発・運用のライフサイクル全体においてセキュリティを考慮したプロセスにすることが必須となります。」
「(前略)セキュリティインシデント発生時にはログ解析や脆弱性情報に知見や経験のある人材が必要です。そして、このような複雑なセキュリティ対策を包括的に行う組織がSOCです。発報されたアラート内容を確認し、必要に応じて専門家による分析が必要となり、緊急度が高い内容に関しては、企業への影響判断するためのチーム(CSIRT)も必要です。
 開発チーム・運用チームは、SOC/CSIRTの専門組織との協業を推進することで、安全で信頼性の高いシステムを目指します。」
「システム信頼性とセキュリティ機能を長期的に維持するために、組織はそれらを改善するための努力が継続的に行われるようにし、十分な要員および時間を確保する必要があります。」
 ……クラウドネイティブセキュリティについて総合的に解説してくれる入門書でした(入門書とはいっても専門用語がとても多いので、従来型システムなどIT技術に関わる仕事をすでに行っている人向けの本だと感じましたが……)。とても参考になるので、ITシステム開発を行っている方はもちろん、クラウドやセキュリティに興味のある方もぜひ読んでみてください。
   *    *    *
 なお社会や科学、IT関連の本は変化のスピードが速いので、購入する場合は、対象の本が最新版であることを確認してください。
<Amazon商品リンク>