1.3 責任共有モデル
Shared Responsibility Model
クラウドにおけるセキュリティは、プロバイダとユーザーの共同責任である。「クラウドのセキュリティ」と「クラウド内のセキュリティ」の境界を理解することが、適切なセキュリティ設計の第一歩となる。
責任分界の基本概念
@startuml
skinparam backgroundColor #FEFEFE
rectangle "ユーザーの責任\n(Security IN the Cloud)" as User #DBEAFE {
rectangle "データ" as Data #93C5FD
rectangle "アプリケーション" as App #93C5FD
rectangle "アイデンティティ管理" as IAM #93C5FD
rectangle "OS・ネットワーク設定" as Config #93C5FD
rectangle "クライアント側暗号化" as ClientEnc #93C5FD
}
rectangle "プロバイダの責任\n(Security OF the Cloud)" as Provider #D1FAE5 {
rectangle "物理セキュリティ" as Physical #6EE7B7
rectangle "ネットワークインフラ" as Network #6EE7B7
rectangle "ハイパーバイザー" as Hypervisor #6EE7B7
rectangle "ハードウェア" as Hardware #6EE7B7
rectangle "データセンター" as DC #6EE7B7
}
User -[hidden]down- Provider
note right of User
ユーザーは
自身のデータと
設定を管理
end note
note right of Provider
プロバイダは
基盤インフラを
管理・保護
end note
@enduml
図1: 責任共有モデルの基本概念
AWSが提唱した責任共有モデル(Shared Responsibility Model)は、現在3大クラウドすべてで採用されている基本概念である。プロバイダは「クラウドのセキュリティ」(物理インフラ、ネットワーク基盤)を担い、ユーザーは「クラウド内のセキュリティ」(データ、アクセス制御、設定)を担う [1]。
サービスモデル別の責任範囲
@startuml skinparam backgroundColor #FEFEFE |IaaS| :データ; <<ユーザー>> :アプリケーション; <<ユーザー>> :ミドルウェア; <<ユーザー>> :OS; <<ユーザー>> :仮想化; <<プロバイダ>> :物理インフラ; <<プロバイダ>> |PaaS| :データ; <<ユーザー>> :アプリケーション; <<ユーザー>> :ミドルウェア; <<プロバイダ>> :OS; <<プロバイダ>> :仮想化; <<プロバイダ>> :物理インフラ; <<プロバイダ>> |SaaS| :データ設定; <<ユーザー>> :アプリケーション; <<プロバイダ>> :ミドルウェア; <<プロバイダ>> :OS; <<プロバイダ>> :仮想化; <<プロバイダ>> :物理インフラ; <<プロバイダ>> @enduml
図2: サービスモデルによる責任範囲の変化
| 責任項目 | IaaS | PaaS | SaaS |
|---|---|---|---|
| データ分類・暗号化 | ユーザー | ユーザー | ユーザー |
| アクセス制御(IAM) | ユーザー | ユーザー | 共有 |
| OSパッチ適用 | ユーザー | プロバイダ | プロバイダ |
| ネットワーク設定 | ユーザー | 共有 | プロバイダ |
| 物理セキュリティ | プロバイダ | プロバイダ | プロバイダ |
3大クラウドの表現比較
@startmindmap skinparam backgroundColor #FEFEFE * 責任共有モデル ** AWS *** Shared Responsibility Model *** Security OF/IN the Cloud *** 最も詳細なドキュメント ** Azure *** Shared Responsibility Model *** Always retained by customer *** Service-specific guidance ** GCP *** Shared Fate Model *** より積極的なパートナーシップ *** Security Command Center left side ** 共通原則 *** データは常にユーザー責任 *** 物理インフラはプロバイダ責任 *** サービスモデルで境界が変動 *** コンプライアンスは共同責任 @endmindmap
図3: 3大クラウドの責任共有モデル表現
各プロバイダは同様の概念を持つが、表現が若干異なる。GCPは「Shared Fate」という表現を用い、プロバイダがより積極的にユーザーのセキュリティ成功に関与する姿勢を示している [2]。
注意
責任共有モデルを誤解すると、セキュリティホールが生じる。「クラウドだから安全」ではなく、ユーザー側の設定ミス(S3バケットの公開設定、IAMの過剰権限等)がインシデントの主因となることが多い。
出典
[1] AWS. Shared Responsibility Model. https://aws.amazon.com/compliance/shared-responsibility-model/
[2] Google Cloud. Shared responsibilities and shared fate on Google Cloud.
[2] Google Cloud. Shared responsibilities and shared fate on Google Cloud.
発展学習
→ Azure: Shared responsibility in the cloud
→ CSA: Cloud Controls Matrix (CCM)
→ Azure: Shared responsibility in the cloud
→ CSA: Cloud Controls Matrix (CCM)