In this article
クラウドセキュリティにおける共有責任モデル
共有責任モデルとは
クラウドセキュリティは、クラウドプロバイダーと顧客が共同で担う責任です。共有責任モデルの内容は、利用するプロバイダーやサービスによって異なります。一般的に、顧客はデータ、オペレーティングシステム、クライアント側のネットワークの保護を担い、クラウドプロバイダーはクラウドサービスの実行に使用するインフラストラクチャの保護を担います。
クラウドセキュリティにおける共有責任モデルの目的とは
クラウドを利用すると、組織がデータセンター全体を保護する必要がなくなるため、大きなセキュリティ上のメリットが得られます。クラウドコンピューティングでは、セキュリティ上の責任の一部がクラウドプロバイダーに移りますが、すべてではありません。共有責任モデルの目的は、クラウドプロバイダーと顧客の双方が環境内のどの部分を担当するのかを把握し、セキュリティ上の抜け漏れや脆弱性を最小限に抑えることです。
共有責任モデルにおいて顧客が担う責任とは
顧客の責任範囲は、クラウドプロバイダーとクラウド導入の種類によって異なります。たとえば、サービスとしてのソフトウェア(SaaS)では、顧客が担うのはデータとアプリケーションのアクセス制御のみです。一方、サービスとしてのインフラストラクチャ(IaaS)では、アプリケーションセキュリティ、ネットワークセキュリティ、オペレーティングシステムについても、顧客がより大きな責任を負います。
クラウドの共有責任モデルの例
主要なパブリッククラウドプロバイダーはいずれも、共有責任モデルに基づいて運用されています。それぞれのモデルへの取り組み方を見てみましょう。
AWS
AWSは次のように述べています。「AWSは、AWSクラウドで提供されるすべてのサービスを実行するインフラストラクチャの保護に責任を負います。このインフラストラクチャは、AWSクラウドサービスを実行するハードウェア、ソフトウェア、ネットワーク、施設で構成されています。」詳しくは、AWSのセキュリティについてはこちらをご覧ください。
Azure
Microsoft Azureは、物理ホスト、ネットワーク、データセンターの保護を担います。一方、顧客はデータ、デバイス、アカウントの保護を担います。アプリケーション、ネットワーク制御、オペレーティングシステムの責任範囲は、クラウドモデルの種類によって異なります。
Google Cloud
Googleはセキュリティ概要のホワイトペーパーで、自社のインフラストラクチャに世界水準のセキュリティを提供していると説明しています。ただし、Googleも共有責任モデルに従っており、「お客様には常にデータを保護する責任があり、Googleにはその基盤となるインフラストラクチャを保護する責任があります」としています。
共有責任に対する考え方はベンダーごとに異なりますが、共有責任モデルにおける役割分担は特定のベンダーに限定されるものではありません。この責任分担図では、利用するベンダーにかかわらず、クラウドモデルに応じて役割と責任がどのように変わるかを示しています。

IaaS、PaaS、CaaS、IaaSにおける共有責任
ベンダーに関する要素に加えて、セキュリティの共有責任モデルは、利用するクラウドコンピューティングソリューションの種類によっても異なります。ソリューションには、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、サービスとしてのコンテナ(CaaS)、サービスとしてのソフトウェア(SaaS)があります。
IaaS
IaaSを利用すると、オンプレミスのリソースへの投資や管理を行わずに、コンピューティングリソースをすばやく拡張・縮小できます。クラウドプロバイダーは、サービスの実行に必要なインフラストラクチャを運用・管理します。IaaSの例として、Amazon EC2やGoogle Compute Engine(GCE)があります。
クラウドプロバイダーの責任:インフラストラクチャの物理的なセキュリティ制御
クラウド顧客の責任:アプリケーション、オペレーティングシステム、データ
共有責任:ネットワーク制御とホストインフラストラクチャ
PaaS
PaaSは、ツールやアプリケーションを構築するための開発環境を一式提供します。IaaSと同様の基盤インフラストラクチャに加え、開発ツールやデータベース管理機能も含まれます。
クラウドプロバイダーの責任:ネットワーク制御とホストインフラストラクチャ
クラウド顧客の責任:アプリケーションとデータ
共有責任:アクセス制御とアプリケーション制御
CaaS
コンテナは広く使われる開発ツールとなっており、本番ワークロードの78%超がコンテナまたはサーバーレスとしてデプロイされています。Amazon Elastic Container Service(ECS)やAzure Container Instances(ACI)などのCaaSサービスを利用すれば、基盤インフラストラクチャの設定や管理を行わずに、コンテナでクラウド上のアプリケーションを実行できます。PaaSに似ていますが、特定の技術スタックに限定されません。
クラウドプロバイダーの責任:基盤インフラストラクチャ
クラウド顧客の責任:アプリケーションコードとコンテナイメージ
共有責任:ネットワーク制御とサプライチェーン
SaaS
SaaSアプリケーションはインターネット経由で提供され、組織はブラウザーから利用できます。基盤となるサーバーとインフラストラクチャの保守は、プロバイダーが担います。
クラウドプロバイダーの責任:物理インフラストラクチャのセキュリティからアプリケーション制御まで、すべて。
クラウド顧客の責任:機密データ
共有責任:アクセス管理と認証管理
共有責任モデルのあいまいな領域
どのようなクラウド環境でも、クラウドプロバイダーがセキュリティ上の責任の一部を担うのが一般的です。セキュリティの責任範囲が明確に定義されていない領域を特定し、慎重に検討することが重要です。こうしたあいまいな領域には、次のようなものがあります。
アプリケーション
サーバーベースの環境では、アプリケーションをインストールして実行できますが、そのアプリケーションに対する責任は顧客にあります。
ネットワーク
クラウドプロバイダーが保護できるのは、自らの管理下にあるネットワークに限られます。
アクセス管理
PaaSソリューションは設定用のコントロールプレーンを提供しますが、アクセスに関する適切な制御を確立する責任は顧客にあります。
クラウド環境を保護する方法
ここまで、クラウドセキュリティにおける共有責任モデルの基本を解説してきました。次は、具体的なユースケースに適用していきましょう。
まず注目すべきなのは、アプリケーションの実行環境(コンテナと、ますますInfrastructure as Code(IaC)で定義されるようになっている基盤インフラストラクチャの両方)のセットアップと設定を、開発者が担うケースが増えていることです。そのため、開発するアプリケーションのアプリケーションセキュリティに加えて、共有責任モデルに基づくクラウドセキュリティの該当範囲も考慮する必要があります。
最後に、本番稼働中のアプリケーションや環境を継続的に監視し、新たに発見された脆弱性や設定ミスを検出する方法も必要です。
開発にセキュリティを組み込み、適切に設定を行い、本番稼働中のワークロードを継続的に監視することで、組織はクラウド環境を包括的に保護できます。
Snykでクラウド環境を安全に保つ方法
Snykの開発者ファーストのセキュリティツールは、アプリケーションやクラウドインフラストラクチャに潜む問題を発見し、優先順位を付けて修正するために必要な知見を開発者に提供し、クラウドのセキュリティを支援します。
このシフトレフトのセキュリティアプローチが必要な理由はいくつかあります。
第一に、開発プロセスが変化しました。アジャイル開発手法では、開発プロセスにセキュリティを継続的に組み込む必要があります(「DevSecOps」)。
第二に、アプリケーションの構造そのものが変化しました。開発者は現在、独自コードとオープンソースコードを組み合わせてアプリケーションを構築し、そのコードをコンテナで実行して、IaCを使ってデプロイしています。
最後に、従来型のインフラストラクチャも変化しました。オンプレミスのデータセンターに代わり、アプリケーションの実行場所や実行方法を定義するコードが使われるようになりました。
Snykは、こうした変化に伴うセキュリティリスクへの対応を支援するツールを提供しています。
Snyk Open Source:オープンソースの脆弱性を検出し、開発者が普段使っているツール内で修正方法を提案します。
Snyk Code:静的アプリケーションセキュリティテスト(SAST)ツールです。コードの最初の1行目から、開発者がセキュリティチェックを導入できます。
Snyk Container:安全なベースイメージの選定と、本番環境に移行する前の脆弱性の検出を支援するコンテナスキャンツールです。SnykとSysdigのパートナーシップにより、実行時のコンテナセキュリティにも対応します。
Snyk IaC:IaCとクラウドのセキュリティツールです。本番環境への移行前にIaCコードの設定ミスを検出し、稼働中の設定を監視してドリフトを検出します。また、コンプライアンステストを簡素化し、クラウドの問題を該当するIaCソースコードに自動で結び付けることで、チームが迅速に対応できるようにします。
Snykのツール群は、クラウドネイティブな開発者に最適です。最新のアプリケーション特有のセキュリティ課題に対応しながら、DevSecOpsなどの現代的な開発手法と連携できます。共有責任モデルのもとで、組織がセキュリティ態勢を維持するための新たな方法を提供します。