In this article
クラウドセキュリティを理解する — サイバーセキュリティに不可欠な理由
クラウドセキュリティとは?
クラウドコンピューティングは、拡張性や柔軟性に優れ、迅速に導入できることから、あらゆる規模の組織で広く採用されています。パブリッククラウドやプライベートクラウドを利用すれば、オンプレミスのITインフラに伴うコストや複雑さを抑えながら、クラウドネイティブアプリケーションを含むソフトウェアを導入できます。
パブリッククラウドプロバイダーは、事業の継続に顧客からの信頼が欠かせないため、セキュリティを重視しています。しかし、従来のオンプレミスITインフラを取り囲んでいた境界は、クラウドでは消失します。クラウド環境は相互につながっているため、攻撃者がネットワークに侵入し、内部を移動するための潜在的な侵入口が数多く存在します。さらに、クラウド環境は急速に変化し、分散しているため、クラウドネイティブアプリケーションやデータの可視性と制御を維持するのは困難です。

クラウドネイティブアプリケーションのセキュリティを確保するには、CI/CD、サーバーレスアプリケーション、コンテナなど、最新のアプローチに対応した新たな手法が必要です。アプリケーションが本番環境に移行してからセキュリティを確保する方法は、もはや現実的ではありません。
クラウドベースのセキュリティとは?
クラウドセキュリティとは、クラウドインフラ、アプリケーション、データを保護するための技術やツールです。従来のセキュリティ対策は、内部ネットワークを外部の脅威から守ることを重視していました。しかし、クラウドの境界は曖昧であり、クラウドインフラはさまざまな面でデータセンターのインフラとは異なる仕組みで運用されています。クラウドセキュリティを導入することで、組織はデータのプライバシーを守り、ネットワークやリソースへのアクセスを制御し、コンプライアンスを維持するとともに、ITチームがほかの業務に集中できる環境を整えられます。
Kubernetesによると、クラウドネイティブセキュリティの4つのCは次のとおりです:
クラウド
クラスター
コンテナ
コード

クラウドセキュリティが重要な理由
クラウドアーキテクチャは相互につながっているため、クラウドセキュリティは重要です。クラウドプロバイダーは包括的なセキュリティプログラムを導入しています。事業の継続がセキュリティにかかっているからです。それでも、ハッカーはセキュリティチェックをすり抜けることがあります。多くの場合、IDを侵害する手口が使われます(Microsoftのクラウドサービスを利用する米国企業や連邦政府機関が攻撃を受けた事例など)。
堅牢なクラウドセキュリティがなければ、攻撃者は脆弱なデバイスや設定ミスのあるクラウドリソースを1つ侵害するだけで、ほかのクラウドシステムとのインターフェースをたどって移動し、データを見つけ出せます。そのデータを攻撃者自身のクラウドアカウントやサーバーに複製することも可能です。
そのため、クラウドプロバイダーとユーザーは、エンドユーザーデバイス、アプリケーション、クラウドリソース、ネットワーク間の各インターフェースで、アクセスを保護する必要があります。
サイバー脅威からの保護に加え、ネットワーク障害やデータセンターの停電に備えて事業を継続できる点でも、クラウドセキュリティは重要です。こうした中断は、必要なときにデータへアクセスできないといった短期的な損害から、データの恒久的な喪失といった長期的な影響まで引き起こす可能性があります。クラウドセキュリティプログラムには、アプリケーションとデータのバックアップ、およびネットワーク障害への対応計画を含める必要があります。
クラウドセキュリティがもたらす5つのメリット
顧客の信頼を維持
管理を簡素化
セキュリティを一元化
プライバシーとコンプライアンス
レジリエンス
クラウドモデルを利用すると、オンプレミスシステムの導入や保守に伴うコストと長い期間をかけずに、アプリケーションを実行し、データを保存できます。一方で、重要なプロセスの可視性や制御が低下することもあります。堅牢なクラウドセキュリティプログラムを構築すれば、次のようなメリットが得られます。
顧客の信頼を維持:ユーザーは、サイバーセキュリティの脅威や誤削除からデータが守られていると確信しながら、あらゆるデバイスからどこでもデータやアプリケーションにアクセスできます。
管理を簡素化:従来のITセキュリティでは、手動での設定と頻繁なセキュリティ更新が必要でした。クラウドセキュリティはプロアクティブなアプローチを採用しており、一度導入すれば、手動での介入をほとんど、あるいはまったく必要とせずに24時間体制で保護できます。
セキュリティを一元化:クラウドコンピューティングでは、ユーザーがあらゆるデバイスやエンドポイントからワークフローにアクセスできますが、従来のアプローチで管理するのは困難です。クラウドセキュリティはネットワーク監視を一元化し、ソフトウェアやポリシーの更新を効率化します。セキュリティ管理をすべて1か所で行えます。
プライバシーとコンプライアンス:クラウドセキュリティを活用すれば、開発者はデータプライバシーと規制コンプライアンスを確保するポリシーを作成し、自動的に適用できます。
レジリエンス:管理を一元化するクラウドセキュリティにより、災害復旧計画を容易に実装できます。
クラウドセキュリティにはどのような種類がある?
クラウドセキュリティには、いくつかの側面があります。
データセキュリティは、保存中および転送中のデータの保護に重点を置きます。
アイデンティティおよびアクセス管理(IAM)は、識別とアクセス制御によって、クラウドアーキテクチャの各ゾーン間のトラフィックを制御します。
ガバナンスとコンプライアンスは、クラウドアーキテクチャが組織や政府の規制に準拠していることの確認に重点を置きます。
データと事業の継続性は、ネットワーク障害やデータ損失が発生してもシステムを復旧できるよう、冗長性を確保します。
それでは、クラウドコンピューティングセキュリティの各タイプについて詳しく見ていきましょう。
データセキュリティ
機密データは、不正アクセスや漏えいを防ぐため、パブリッククラウドのリソースに保存されているときも、転送中も保護する必要があります。ユーザーはインターネット経由で、あらゆる場所やデバイスからクラウド上のデータにアクセスできるため、ITチームにはデータ保護の新たなアプローチが求められます。
クラウドデータの保護には、さまざまなツールや手法を利用できます。
暗号化:アルゴリズムを使って、保存中と転送中の情報を暗号化します。攻撃者が防御を突破してデータにアクセスできたとしても、元の形式で読み取るにはデータを復号する必要があります。多くの攻撃者にとって、復号に必要な計算能力を用意するのは経済的に現実的ではありません。そのため、暗号化はデータセキュリティを支える重要な手段です。
VPN:仮想プライベートネットワーク(VPN)を使うと、データを暗号化し、VPN事業者が運用するリモートサーバーを経由させることで、安全性が十分でない可能性のある接続でもデータを安全に送信できます。データを保護し、ユーザーの身元や所在地を隠すことができます。
クラウドセキュリティアーキテクチャ:クラウドネイティブ環境への侵害では、多くの場合、クラウドのデプロイにおけるミスや脆弱性が悪用されます。設定が不適切な、あるいは安全でないインターフェースを通じてデータにアクセスし、攻撃者のネットワークへ持ち出されます。そのため、アプリケーション、コンテナ、仮想マシン、データなど、クラウドアーキテクチャのコンポーネントを分離することがベストプラクティスです。仮想プライベートクラウドやAzure VNetなどのツールを使えば、ワークロードをサブネットに分割できます。そのうえで、きめ細かなセキュリティポリシー、IAM設定、ファイアウォール、ルーティング設定を適用し、アクセスを制御できます。
クラウドサービスの監視:クラウドサービスは内部ネットワークやデバイスの外部に存在するため、ITチームにはサービス自体を可視化し、データを監視する方法が必要です。これは内部ネットワークのトラフィックを監視する従来の方法に相当しますが、マルチクラウド管理では、複数のクラウドプロバイダーとの統合に加え、クラウドのデプロイに伴う複雑さの増大にも対応しなければなりません。単一のクラウドプロバイダーを利用する場合も、セキュリティを確保するために、ネットワークトラフィックの可視性を確立し、維持する必要があります。
これらのツールや手法は、悪意ある攻撃者だけでなく、データ漏えいや破損につながる人為的ミスからも保護する点に注目してください。これらを導入することが、侵害による影響を軽減する第一歩です。
アイデンティティおよびアクセス管理(IAM)
クラウドコンピューティングモデルには、データベースやオブジェクトストレージサービス、オペレーティングシステムや仮想マシンなどのソフトウェア、ユーザー側のハードウェア(多くの場合、BYOD端末)が含まれます。これらのゾーン間のトラフィックを制御することは、クラウドセキュリティの重要な要素です。IAMを活用すれば、これらすべてのユーザーとエンドポイントを可視化し、制御できます。
IAMには次の要素があります。
認証と認可:アクセス制御は、正当なユーザーと悪意あるユーザーの双方が情報やシステムを侵害するのを防ぐ重要な手段です。強固なパスワード管理と多要素認証は、適切な認証・認可ツールの例です。
ロールベースのアクセス制御:個人単位ではなく、役割に基づいてアクセスを制御します。ユーザーの役割が変わった場合も、こちらのほうが容易に変更できます。権限は常に「最小権限」の原則に基づいて付与し、より広範な権限には、より強固な認証を求める必要があります。「最小権限」でアクセスを付与すれば、攻撃者がアカウントに侵入しても、システム内でさらに侵害を広げたり、APIキーなどの重要なデータにアクセスしたりできないようにできます。
ゾーン間のセキュリティ:ポートのブロック、権限の要求、きめ細かなセキュリティの適用などが含まれます。
セキュリティチームがすべての識別と認証を監督できるのが理想ですが、リソースには限りがあるため、ユーザー自身も認証情報を適切に管理し、侵害のリスクを減らす基本的な方法を理解する必要があります。強固なパスワードや多要素認証に関するトレーニングもその一例です。IAMの原則は、セキュアなクラウドアーキテクチャの重要性を裏付けています。また、クラウドセキュリティアーキテクトなどの専任者を置き、適切に設定・管理されていることを確認することも重要です。
ガバナンスとコンプライアンス
クラウド環境では、規制要件への対応に新たな側面が加わります。ユーザープライバシーに関するSOC 2、PCIやHIPAAなどの要件や、社内要件への準拠が必要です。コンプライアンスプロセスでは、インフラ自体に加え、社内システム、クラウドインフラ、インターネット間のインターフェースも考慮しなければなりません。
ポリシーと制御を自動化することは、クラウド環境のコンプライアンスを確保する方法の1つです。重要なシステムに対する脅威の追跡、優先順位付け、緩和に関するポリシーに加え、データ保護、ロールベースのアクセス制御、暗号化やログの利用、パスワードなどに関する安全なユーザー行動のポリシーも含める必要があります。
データのレジリエンスと事業継続性
クラウドセキュリティのこの側面では、災害や予期しないデータ損失が起きてもデータと事業運営を継続できるよう、冗長性を確保します。データとシステムのバックアップは、業務を中断なく続けるうえで役立ちます。また、バックアップのテストやデータ復旧の手順も含まれます。クラウド上に適切なバックアップを保持すれば、ランサムウェア攻撃からも保護できます。攻撃者によって稼働中のファイルがすべて暗号化されても、身代金を支払うことなくバックアップから復元できます。
クラウドセキュリティ、アプリケーションセキュリティ、クラウドネイティブアプリケーションセキュリティの違い
アプリケーションセキュリティとクラウドセキュリティの境界は、サーバーレスやコンテナなどのクラウドネイティブアーキテクチャを利用する場合に、ますます曖昧になっています。開発者がクラウドに関与する機会も増えており、ポリシー・アズ・コード(PaC)やInfrastructure as Code(IaC)などのアプローチによって、手作業をコードで記述した標準化・反復可能な手法に置き換えています。
その結果、開発者は自ら作成するアプリケーションだけでなく、それらを実行するインフラのセキュリティにも責任を負うようになっています。開発者のセキュリティへの意識も高まっており、開発者の61%が、クラウドネイティブ技術への移行によってセキュリティへの懸念が強まったと回答しています。
セキュリティ、運用、開発の各チームに加え、クラウドプロバイダーも関わるため、誰がクラウドのセキュリティを担うのかという疑問が生じます。
クラウドセキュリティとサイバーセキュリティの違い
クラウドセキュリティは、クラウド環境のデータ、アプリケーション、サービスの保護に特化したサイバーセキュリティの一分野です。設定ミス、安全でないAPI、共有インフラストラクチャの脆弱性など、クラウド特有のリスクに対処します。一方、サイバーセキュリティは、オンプレミスシステムやクラウドプラットフォームを含むあらゆる環境で、ネットワーク、デバイス、データをサイバー脅威から守るための対策を広く指します。
クラウドのセキュリティを担うのは誰ですか?
パブリッククラウドプロバイダーは通常、クラウドセキュリティに関する責任共有モデルを採用しています。このモデルでは、クラウドの各要素を所有する当事者に、それぞれのセキュリティ責任が割り当てられます。
通常、プロバイダーは、データやワークロードを物理的にホスティングするネットワーク、クラウドインフラストラクチャ、サーバーのセキュリティを担います。顧客は、安全なプロバイダーの選定、ユーザーアクセスの管理、組織や政府の規制への準拠の確保、システムの安全な設定と保守に責任を負います。
セキュリティの責任はクラウドサービスの種類によって異なる
セキュリティ要件は、利用するクラウドサービスの種類によって異なります。クラウドサービスには、次のような種類があります。
Software as a Service(SaaS)
SaaSの顧客が主に担うのは、安全なアクセスプロトコルを使用することです。バックエンドのセキュリティはプロバイダーが担います。多くの攻撃は、SaaSアプリケーションと他のプラットフォームとの連携を悪用するため、ユーザーのワークフローとデータを可視化することが重要です。
Platform as a Service(PaaS)
PaaS企業は、プロバイダーのインフラストラクチャ上でアプリケーションを開発できる「サンドボックス」を顧客に提供します。プロバイダーはオペレーティングシステム、ミドルウェア、ランタイム環境のセキュリティを担い、顧客はエンドユーザーデバイスとネットワーク、アプリケーション、データ、ユーザーアクセスに責任を負います。PaaS環境でのアプリケーション構築では可視性が低下し、クラウド環境における攻撃者の移動や不正利用を検知しにくくなります。不審なアクティビティを検知・防止するため、体系的なセキュリティ制御と可視化ツールを導入する必要があります。
Infrastructure as a Service(IaaS)
IaaSプロバイダーは、高額なオンプレミスインフラストラクチャを構築する代わりに、必要に応じてハードウェアやコンピューティングインフラストラクチャをレンタルできるサービスを提供します。プロバイダーは物理サーバー、ネットワーク、データのセキュリティを担い、顧客はプロバイダーのインフラストラクチャ上で稼働するすべてのものに責任を負います。これには、オペレーティングシステム、アプリケーション、ミドルウェアのほか、ユーザーアクセス、リソース設定、エンドユーザーデバイスとネットワークが含まれます。
クラウドセキュリティ環境
「クラウド」は場所を指す言葉として使われることがよくありますが、分散環境でデータを保存し、ワークロードを実行するためのモデルと捉えるほうが適切です。クラウド環境には、次のような種類があります。
パブリッククラウド
サードパーティが提供するサービスで、顧客はプロバイダーのリソースを他の顧客と共有します。通常、顧客はWebブラウザーからパブリッククラウドにアクセスします。パブリッククラウドではセキュリティに多大な投資が行われており、パブリッククラウドの侵害の大半は、顧客の設定ミスやその他のエラーに起因します。Gartnerによると、2025年までに発生するクラウドセキュリティの障害の99%は、顧客の責任によるものとなります。
プライベートクラウド
プライベートクラウドは、サードパーティプロバイダーが外部で管理する環境、または従来のデータセンターを現代化した社内環境として、顧客専用の環境を提供します。ユーザーのファイアウォールによって隔離されているため、パブリッククラウドより安全と見なされることがありますが、IDベースの侵害などのセキュリティ上の課題は依然として存在します。
政府機関向けクラウド
政府機関向けクラウドは、機密データや極秘データを扱い、厳格なセキュリティ規制を遵守する必要がある政府機関の顧客向けに、隔離されたクラウド環境を提供する目的で構築されています。
マルチクラウド
同じ種類(パブリッククラウドやプライベートクラウドなど)の複数のプロバイダーが提供するクラウドサービスを組み合わせた環境です。マルチクラウド構成は、分散したチームがそれぞれ異なるスケジュールや技術要件でプロジェクトに取り組む企業でよく見られます。プロジェクトのニーズに応じて、チームごとに異なるクラウドプロバイダーを選ぶことがあります。また、合併や買収の後に、関係する各社が異なるプロバイダーを利用している場合にも起こり得ます。マルチクラウドの利用では、クラウドごとに専門知識やツールが必要となるため、セキュリティの複雑さが増します。
ハイブリッドクラウド
ハイブリッドクラウドは、サードパーティまたは自社施設内のプライベートクラウドデータセンターとパブリッククラウドを組み合わせたものです。Gartnerが「バイモーダル」と呼ぶ形態を採用し、クラウドとデータセンターの両方でワークロードを実行する企業もあります。特に、移行期間やデジタルトランスフォーメーションの取り組みでよく見られます。
オンサイトとオフサイトのクラウド
顧客は、外部プロバイダーが管理するオフサイトのクラウド環境、またはすべてのリソースを柔軟に設定できる社内のオンサイトクラウドを利用できます。オフサイトのクラウドサービスはリモートで提供され、ハードウェア、保守、セキュリティにかかるコストをプロバイダーに委ねることができます。一方、オンサイトクラウドでは、顧客がクラウド環境のネットワーク、ストレージ、サーバー、セキュリティを管理する必要があります。
Snykでクラウド環境を保護
ソフトウェア開発のプロセスは変化しており、アプリケーションの本番稼働後に考慮するのではなく、ソフトウェア開発ライフサイクルのあらゆる段階にセキュリティを組み込む必要があります。従来のインフラストラクチャは、インフラストラクチャ、サービス、アプリケーションコンテナを定義するコードに置き換わりました。アプリケーション自体も、今ではオープンソースコードが大きな割合を占めています。コンテナ、仮想マシン、サーバーレスアーキテクチャで動作するよう構築され、KubernetesやTerraformなどのツールを使って実行環境のインフラストラクチャをデプロイおよび構成する手順も含まれています。
クラウドセキュリティは、開発者がCI/CDパイプライン全体でクラウドネイティブアプリケーションを設計、コーディングする際に支援する必要があります。Snykは、開発者がアプリケーションやワークフローにクラウドセキュリティを組み込むためのツールを提供しています。
開発者ファーストのセキュリティ
Snykの開発者向けセキュリティツールを使えば、最初のコード行からセキュリティを組み込めます。Snykのプラットフォームには、オープンソース依存関係スキャナー、コンテナセキュリティ、インフラストラクチャセキュリティが含まれています。
Infrastructure as Code(IaC)セキュリティ
IaCテンプレートは、クラウドインフラストラクチャの望ましい状態を定義します。手動デプロイの複雑な手順を記録して再現可能なステップにまとめる、自動化された手順書のようなもので、実行前にテストできます。IaCを利用すれば、ソフトウェア開発のベストプラクティスをインフラストラクチャの定義に取り入れられます。
Snyk IaCを使うと、コードが変更されるたびに、セキュリティポリシーやアーキテクチャポリシーへの準拠を簡単にテストできます。AWS、Azure、GCPのインフラストラクチャに加え、KubernetesやTerraformのIaCツールに対応しています。Snyk IaCは単一のポリシーエンジンとルールセットを使って、開発者のワークフロー、パイプライン、クラウド環境全体の可視性とガバナンスを一元化します。また、Gitのワークフローでクラウドの問題を関連するIaCソースコードに自動的に結び付けることで、チームが問題に迅速に対処できるよう支援し、担当開発者による早期の修正を実現します。修正、再テスト、再デプロイを行うだけです。
Sysdigによるランタイムを含むコンテナセキュリティ
Snyk Containerは、開発者がアプリケーションとコンテナをまとめて保護できるよう支援します。ベースイメージツールを使えば、より安全なベースイメージにアップグレードして、脆弱性をすばやく解消できます。スキャン機能により、IDEと実行環境の両方でコンテナの脆弱性を自動的に検出し、修正できます。SnykとSysdigのパートナーシップによりSnyk Containerの機能が拡張され、ランタイムのKubernetes環境を保護するとともに、開発者にフィードバックと可視性を提供します。
シフトレフトとDevSecOpsの原則
従来のアプリケーションセキュリティでは、本番環境の脆弱性をスキャンして修正することに重点が置かれていました。しかし、現代のクラウド環境は複雑化し、アプリケーションのリリースも高速化しているため、この従来のアプローチは通用しなくなっています。最新のDevSecOpsでは、開発プロセスの早い段階からセキュリティを組み込みます。このシフトレフトのアプローチは、クラウドネイティブアプリケーション開発と、それを支えるツールに欠かせない要素です。