こんにちは、萩田です。
今回は大規模クラウドサービスを安全に運営するために必要な、セキュリティ留意事項を紹介したいと思います。
エンジニアの皆様やクラウドサービス運営に取り組む事業者様の参考になればと思います。
目次
大規模クラウドサービス運営におけるセキュリティについて
大規模クラウドサービス運営におけるセキュリティについて、今回は以下をご説明したいと思います。
- ・マインドセット:ワーストケース思考
- ・ドメイン階層のセキュリティ
- ・インフラの多重セキュリティ
- ・システムの多重セキュリティ
マインドセット:ワーストケース思考
クラウドサービスのセキュリティに取り組む上で、「ワーストケース(Worst case)」を想定することを大事にしています。
ワーストケースとは、「最悪の事態」ということです。
例えばテーブルの上にガラスのコップが載っていた場合、普通ならば「テーブルから落ちないように気を付けよう」と考えます。
しかしセキュリティの考え方では、「注意してもコップに手が当たって床に落ちて粉々になり、それを踏んで怪我をする」と考えます。これがワーストケース思考です。
こうなると、以下のような対策を考えると思います。
・予防:コップを棚に入れる。目立つ色のコップにする。注意喚起する。プラスチックのコップにする。
・低減:病院の場所を調べておく。救急セットを用意しておく。保険に加入しておく。
このように「ワーストケースを想定し、それに対策する」ということがセキュリティに取り組む上での基本的なマインドセットとなります。
ドメイン階層のセキュリティ
クラウドサービスの運営において、テクニカルな要素の最上流にはドメインがあります。
「example.com」などのドメインですね。
また、クラウドサービスでは複数の加入者が同一ドメインに対してテナント的に増やす場合が多いため、増加したテナントをどのように表現するかを考慮する必要があります。
それぞれ以下のように定義することができます。
方式 |
例 |
メリット |
デメリット |
a サブドメイン方式 |
a.example.com
b.example.com |
・テナント毎のサーバ分離がしやすい
・被アタック時の影響範囲を限定しやすい(※1) |
・テナント毎のドメイン管理が発生 |
b ディレクトリ方式 |
example.com/a/
example.com/b/ |
・テナント毎のドメイン管理が不要 |
・テナント毎のサーバ分離がしにくい
・被アタック時の影響範囲が広がりやすい(※1) |
c 分離なし |
example.com
※ログイン情報で分岐 |
・構成がシンプル |
・公開サービスの場合は対応できない
・被アタック時の影響範囲が広がりやすい(※1) |
大規模なサービスの場合はaがよいのではと思いますが、メリットとデメリットを勘案してサービスごとに決定する必要があります。
※1:DDoSアタックなどを受けた際に、サブドメインで分離しておくと、テナントをまたいだ攻撃波及が発生しにくいと考えられます
インフラの多重セキュリティ
インフラの階層では、設定ミスなども加味して、多重のアクセス制御や権限制御を行うことを推奨します。
これも、「設定ミスがあった前提で対策する」というワーストケース思考の応用でもあります。
サーバ管理におけるアクセス制御については、鍵認証とIPアクセス元認証、さらに二段階認証などを併用すると堅牢です。
・鍵認証:特定の鍵を登録した端末でのみ接続できる(拠点内侵入対策)
・IP認証:特定の接続元IPからのみ接続できる(鍵の漏洩対策)
・二段階認証:Google Authenticatorやメール認証を組み合わせる(認証情報漏洩や端末乗っ取り対策)
特にIP認証については、インフラ側のファイアウォールとサーバ内のファイアウォールなど、複数階層で冗長的に制限しておくことで、設定漏れのリスクを低減できます。
また、ログの適切な管理をすることも重要です。ログの中に認証情報や機密情報が残っていると、サーバ侵入時にそこから情報漏洩する場合があります。ログに関しても厳重に管理し、適宜削除を行うとともに、プログラム階層でも、ログの中に機密情報が書き込まれないようにマスクするなどの対策を行います。
そのほか、改ざん検知(tripwire等)や侵入検知(IDS各プロダクト等)で改ざんや侵入を検知することもできます。
システムの多重セキュリティ
システム・アプリケーションの階層でも以下のような手法で多重のセキュリティ対策を実施します。
・IPA(独立行政法人 情報処理推進機構)が提唱する「安全なWEBサイトの作り方」に対応する
・管理用コントロールパネルへのクライアント証明書認証の実装
・IP認証:特定の接続元IPからのみ接続できる(鍵の漏洩対策)
・二段階認証:Google Authenticatorやメール認証を組み合わせる(認証情報漏洩や端末乗っ取り対策)
・WAFの導入
・DDoS対策の導入
・データベースの暗号化
・ログ書き込み内容のマスク
このような方法でシステム・アプリケーション面のセキュリティ対策が可能となります。
今回ご紹介したセキュリティ対策は、安全な大規模クラウドサービスの運営の一助になると思います。
参考になれば幸いです。