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