本文へスキップ
スキルアップカレッジ

クラウドのセキュリティ——責任共有モデルと設計の発想

レッスン7:クラウドのセキュリティ——責任共有モデルと設計の発想

このレッスンで学ぶこと

  • 責任共有モデル(Shared Responsibility Model)を理解する
  • IaaS/PaaS/SaaS で利用者と事業者の責任範囲がどう変わるかを把握する
  • IAM(Identity and Access Management)と最小権限の原則を整理する
  • 鍵管理(KMS)の役割を理解する
  • VPC とネットワーク分離の発想を整理する
  • ログと監査の必要性を把握する
  • クラウド時代のセキュリティ運用の発想を持つ

前のレッスンでは、クラウドのコストとガバナンス、FinOps の発想を整理しました。今回のレッスンでは、セキュリティを扱います。クラウドは「乗せれば全部事業者が守ってくれる」わけでも「危ないからオンプレが安全」でもありません。クラウドのセキュリティを語る出発点は、「責任共有モデル」という発想です。本レッスンでは、IAM・KMS・VPC・ログといった構成要素を概念中心に整理し、特定の攻撃手法やインシデント対応の詳細には踏み込みません。

責任共有モデル

責任共有モデル(Shared Responsibility Model)は、クラウドのセキュリティを「事業者が守る範囲」と「利用者が守る範囲」に明確に分ける発想です。AWS が早くから明文化したのを契機に、Azure や Google Cloud も同様の枠組みを公開し、現在では業界標準の整理になっています。

「クラウドの〜」と「クラウドの中の〜」

責任共有モデルの本質的な表現が、AWS の用いる「Security OF the cloud」と「Security IN the cloud」という対比です。

  • Security OF the cloud(クラウドの〜のセキュリティ):クラウド基盤そのもののセキュリティ → 事業者の責任
  • Security IN the cloud(クラウドの中のセキュリティ):クラウド上で利用者が動かすシステムのセキュリティ → 利用者の責任

「クラウドそのもの」と「クラウドの上に乗せたもの」で責任の所在を分けて捉える、という整理です。

各階層での責任分界

責任分界の線は、IaaS/PaaS/SaaS で動きます。

flowchart TD
  subgraph IaaS["IaaS の責任分界"]
    I1[アプリ・データ・設定 利用者]
    I2[OS・ミドルウェア 利用者]
    I3[仮想化基盤・物理 事業者]
  end
  subgraph PaaS["PaaS の責任分界"]
    P1[アプリ・データ・設定 利用者]
    P2[OS・ミドルウェア 事業者]
    P3[仮想化基盤・物理 事業者]
  end
  subgraph SaaS["SaaS の責任分界"]
    A1[データ・利用者管理 利用者]
    A2[アプリ・OS・ミドルウェア 事業者]
    A3[仮想化基盤・物理 事業者]
  end

利用者の責任は、SaaS でも「データ・利用者管理」として必ず残ります。「SaaS だから事業者がすべて守ってくれる」は誤解で、誰がどのデータにアクセスできるか、退職者のアカウントを削除したか、設定を間違えて公開していないか、これらは利用者が担います。

よくある誤解

  • 「クラウドに乗せたら事業者が責任を持つ」→ 半分しか正しくない
  • 「クラウドは危ない」→ 事業者の責任範囲だけを見れば、自社の物理設備より高度に守られていることが多い
  • 「自社のセキュリティ責任は減る」→ むしろ「利用者が見える範囲」と「責任の所在」を明確にする必要が増える

💡 ポイント 責任共有モデルの図は、契約の前段で必ず確認すべきものです。「うちはどこまでが責任か」を社内で言語化できないまま導入すると、インシデント時の責任の押し付け合いになります。

IAM——「誰が何にアクセスできるか」

IAM(Identity and Access Management:アイデンティティとアクセス管理)は、クラウドで「誰が」「何に」「どのような操作を」できるかを管理する仕組みです。

各社の IAM サービス

  • AWS:AWS IAM、AWS IAM Identity Center(旧 AWS SSO)
  • Azure:Microsoft Entra ID(旧 Azure Active Directory)
  • Google Cloud:Cloud IAM、Identity Platform

構成要素

用語 意味
ユーザー(user) 個人を識別する単位
グループ(group) ユーザーをまとめる単位
ロール(role) 一時的に与える権限のセット
ポリシー(policy) 「何ができるか」「何ができないか」を定義する規則
サービスアカウント(service account) アプリやスクリプトに与える非人間用のアカウント

「ユーザーにポリシーを直接付ける」「ユーザーをグループに入れてグループにポリシーを付ける」「一時的にロールを引き受ける」など、複数の組み合わせ方ができます。

最小権限の原則

セキュリティ設計の古典的な原則として、「最小権限の原則(principle of least privilege)」があります。「業務に必要な最小限の権限だけを与える」という発想です。クラウドの IAM 設計は、この原則を実践するためのものです。

「とりあえず全権限を与えてあとで絞る」が、最も避けるべき設計です。実際には絞られないまま放置され、退職者のアカウントが乗っ取られて全システムが侵害される、というインシデントが繰り返し起きてきました。

多要素認証(MFA)の必須化

クラウドコンソール(管理画面)への管理者ログインには、多要素認証(MFA:Multi-Factor Authentication)を必須化するのが標準的なベストプラクティスです。パスワード単体では、フィッシングや漏洩リストでの侵害リスクが高すぎます。

⚠️ 注意 「ルートアカウント(最高権限のアカウント)」を日常的に使うのは大きなリスクです。設定後すぐに MFA を有効化し、日常作業は別の限定権限ユーザーで行うのが定石です。

鍵管理——KMS の役割

データを暗号化するには「鍵」が必要です。鍵を安全に保管・管理する仕組みが、鍵管理サービス(KMS:Key Management Service)です。

各社の鍵管理サービス

  • AWS:AWS KMS、AWS CloudHSM
  • Azure:Azure Key Vault、Azure Dedicated HSM
  • Google Cloud:Cloud KMS、Cloud HSM

鍵を扱う発想

  • 鍵をアプリのコードや設定ファイルに直書きしない(GitHub に流出する事故が多発している)
  • 鍵を KMS に保管し、必要なときに API 経由で取得する
  • 鍵の利用ログを記録する(誰が・いつ・どのような操作で鍵を使ったか)
  • 鍵をローテーション(定期的に更新)する
  • 鍵自体を、より上位の「マスター鍵」で守る階層構造を採る

KMS は「データを暗号化する装置」ではなく「鍵を守る装置」です。データの暗号化処理そのものは、各クラウドサービス(ストレージ・データベース)が KMS の鍵を使って自動で行う構成が一般的です。

保管時・通信時の暗号化

  • 保管時(at rest):ディスクに保存されたデータの暗号化。ストレージサービスでデフォルトで有効化されていることが多い
  • 通信時(in transit):ネットワーク上を流れるデータの暗号化。TLS(Transport Layer Security)が標準

「保管時と通信時の両方を暗号化する」が現代のベストプラクティスです。

VPC とネットワーク分離

レッスン 4 で触れた VPC(Virtual Private Cloud)は、セキュリティの観点でも中心的な役割を果たします。

サブネットの設計

VPC の中にサブネット(subnet)を作って、用途別にネットワーク境界を分けます。

  • 公開サブネット(public subnet):インターネットからの受け口(Web サーバー・ロードバランサーなど)
  • 内部サブネット(private subnet):業務ロジック層(アプリケーションサーバー)
  • データベースサブネット:データベース層(外部から直接アクセスできない)

「層」を分けることで、Web 層が侵害されても、データベース層へ直接到達できない設計になります。

セキュリティグループとファイアウォール

仮想マシンやほかのリソースには、「どこからの・どんな通信を許可するか」を設定する仕組みがあります。

  • AWS:セキュリティグループ、ネットワーク ACL
  • Azure:ネットワークセキュリティグループ(NSG)
  • Google Cloud:ファイアウォール ルール

「特定の IP アドレス範囲からの SSH(管理用通信)だけを許可」「インターネット全体からの HTTPS 通信を許可」のように、細かく制御できます。

ゼロトラストの発想

伝統的なネットワーク防御は「社内ネットワーク内は信頼、外は不信」という境界防御の発想でした。クラウド時代には、社内・社外の境界が曖昧になります。テレワーク、SaaS の利用、複数クラウドの併用が日常になり、「どこにあっても信頼しない」という発想が必要になりました。これがゼロトラスト(zero trust)です。

NIST が SP 800-207(2020 年)で公式定義を出しています。具体的には次の発想を採ります。

  • 「社内ネットワーク内だから安全」を前提にしない
  • 通信ごとに認証・認可を確認する
  • 最小権限を徹底する
  • 通信は常時暗号化する
  • 異常な振る舞いを検知する

ゼロトラストはクラウド固有の発想ではありませんが、クラウド時代に強く後押しされた発想です。本コースでは「概要」までを扱います。

📝 補足 ゼロトラストの詳細な設計(アクセスプロキシ・マイクロセグメンテーション・継続的認可など)は、別の専門書を参照してください。本コースは「クラウド時代のネットワーク設計の発想転換」として概要のみ触れます。

ログと監査

クラウドでは、「誰がいつ何を操作したか」のログ取得と監査が、運用と説明責任の両面で重要です。

各社のログサービス

種類 AWS Azure Google Cloud
API 操作ログ AWS CloudTrail Azure Activity Log Cloud Audit Logs
アプリ・OS ログ集約 Amazon CloudWatch Logs Azure Monitor Logs Cloud Logging
メトリクス Amazon CloudWatch Azure Monitor Cloud Monitoring

ログをどう活用するか

  • 操作監査:誰がいつ何を変更したか、説明責任を果たすため
  • 障害分析:障害発生時の原因究明
  • セキュリティ分析:攻撃の兆候を検知する
  • コンプライアンス対応:規制対応・監査対応の証跡

ログは「取りっぱなし」では役に立ちません。必要なログを必要な期間保管し、検索可能にしておくのが運用の中核です。

SIEM と SOAR

大規模な組織では、ログを集約して横断的に分析する SIEM(Security Information and Event Management)、対応を自動化する SOAR(Security Orchestration, Automation, and Response)を導入します。詳細は専門領域に踏み込むため、本コースでは名称の紹介にとどめます。

クラウド時代のセキュリティ運用の発想

クラウドのセキュリティ運用には、オンプレ時代とは異なる発想がいくつかあります。

1. 設定ミス(misconfiguration)が主な脅威源

クラウドのインシデントの多くは、外部からの高度な攻撃ではなく、利用者側の設定ミスから始まります。「公開設定のオブジェクトストレージに機密データを置く」「過剰な権限を与えたまま放置」など、ガードレールと自動チェックで防ぐ仕組みが必要です。

各社にはセキュリティ評価ツールがあります(AWS Security Hub、Azure Defender for Cloud、Google Security Command Center)。これらは「設定ミスを自動で検出する」発想に基づきます。

2. 攻撃手法は本コースの守備範囲外

フィッシング、マルウェア、ランサムウェア、ソーシャルエンジニアリング、ビジネスメール詐欺(BEC)、DDoS など、攻撃手法の詳細は本コースでは扱いません。「クラウド側で何を設計するか」「責任分界はどこにあるか」を中心に整理しています。攻撃手法と全社員の防御リテラシーは、別の専門書・コースを参照してください。

3. 「セキュリティはコスト」から「セキュリティは設計」へ

オンプレ時代、セキュリティは「事後で足す」発想が主流でした。クラウド時代は、最初から設計に組み込まないと、後から修正するコストが高くなります。「Shift Left(左にシフト)」「Security by Design(設計段階でのセキュリティ)」と呼ばれる発想です。

4. 認証情報の漏洩を最大の脅威に挙げる

API キー、シークレットキー、パスワードのソースコードへの直書きや、設定ファイルでの誤コミットによる漏洩が、クラウド時代のインシデントの代表例です。GitHub などにキーが漏れると、攻撃者が数分以内にビットコイン採掘のために大量のサーバーを起動し、月額数百万円の請求が来る例があります。Secrets Manager(AWS)、Key Vault(Azure)、Secret Manager(Google Cloud)といった専用サービスでキーを管理し、コードに直書きしないのが鉄則です。

💡 ポイント 「セキュリティ製品を買えば守られる」は誤解です。クラウドのセキュリティは「設定・運用・教育・設計」の組み合わせで成り立ちます。製品はその一部の補助にすぎません。

講師の現場メモ:「金融機関のレギュレーション対応」

私(山下)が外資系クラウド事業者にいた頃、大手金融機関のクラウド移行プロジェクトを担当しました。金融業界は規制が厳しく、責任共有モデルの理解と実装が決定的に重要でした。

経営層は当初、「全部クラウドに乗せれば事業者が守ってくれる」と思っていました。私と金融機関の情報セキュリティ部の方とで、半年かけて次の作業を進めました。

  • 責任共有モデルを業務システムごとに 1 枚の図にする
  • 規制要件(PCI DSS、FISC 安全対策基準)に対する責任分界を明文化する
  • 鍵管理ポリシーを策定(鍵は自社管理、データ暗号化は事業者サービスで自動化)
  • 全リソースに IAM ポリシーで最小権限を設計
  • セキュリティ評価ツールで自動チェック、CSPM(Cloud Security Posture Management)を導入
  • ログを 7 年間保管できる体制を構築
  • 定期的な内部監査と外部監査の対応フローを整備

半年後、金融庁の監査が入ったとき、責任分界の文書とログがそのまま提示できました。監査官から「これだけ整理されているなら問題ない」と評価されました。経営層は「クラウドに乗せたから安全」ではなく「設計と運用で守られている」を理解してくれました。

このときに痛感したのは、責任共有モデルは「契約上の押し付け合い」のためではなく、「全社員が責任の所在を理解して動くための地図」だ、ということです。本コースで責任共有モデルを軸に据えるのは、この地図を社内で共有する語彙を、皆さんにも持ち帰っていただきたいからです。

まとめ

このレッスンでは、以下のことを学びました。

  • 責任共有モデル:クラウド基盤は事業者の責任、クラウド上のシステムは利用者の責任
  • 「Security OF the cloud」と「Security IN the cloud」の対比
  • 責任分界線は IaaS/PaaS/SaaS で動く。SaaS でも「データ・利用者管理」は利用者の責任
  • IAM(AWS IAM、Microsoft Entra ID、Cloud IAM)で「誰が何にアクセスできるか」を管理
  • 最小権限の原則:業務に必要な最小限の権限だけを与える
  • 管理者の MFA 必須化、ルートアカウントの日常使用回避が定石
  • KMS(鍵管理サービス)は「鍵を守る装置」、データ暗号化は各サービスが KMS の鍵で自動実施
  • 保管時(at rest)・通信時(in transit)の両方で暗号化するのが現代のベストプラクティス
  • VPC とサブネットで「層」を分け、Web 層からデータベース層への直接到達を防ぐ
  • ゼロトラスト:境界防御から「どこにあっても信頼しない」への発想転換(NIST SP 800-207)
  • 各社のログサービス(CloudTrail、Activity Log、Cloud Audit Logs など)で API 操作を記録
  • クラウドのインシデントの多くは外部攻撃ではなく設定ミス。自動チェックが鍵
  • 認証情報の漏洩が代表的な脅威。Secrets Manager・Key Vault・Secret Manager でキー管理
  • 攻撃手法の詳細は本コースの守備範囲外。別の専門書・コースを参照

次のレッスンでは、クラウド移行の選択肢(7R)、ハイブリッド・マルチクラウドの現実、AI エージェント実行環境、SBOM・PQC、修了後の学習方向を案内します。


確認クイズ

このレッスンの理解度をチェックしましょう。