AWSのセキュリティは、クラウドに移行する上でもっとも重要なトピックです。本記事では、AWS セキュリティのベストプラクティスを初心者向けに解説します。

こんな方におすすめ

  • クラウドに自社のデータを置くのは不安だがクラウドに移行したい
  • AWSのセキュリティがどうなっているか知りたい

ネクストはこれまで、500社を超えるお客様に技術で支援してきました。お客様の課題として多いのが、AWSを導入したいが社内にクラウド人材がいない、ITコストを抑えたいがノウハウがない、という声です。

むやみにAWSを導入する前に、まずはクラウドやAWSについての基礎を学習し、正しい知識を得ることが大切です。これからAWS導入をはじめたいと考えている方は、ぜひご一読ください。 →AWS導入支援はこちら

はじめに

AWSの公式ページ「セキュリティ – AWS Well-Architected フレームワーク」に6つのベストプラクティスが掲載されていますが、本サイトの主旨にしたがい、1ページにまとめて紹介します。

AWSの責任共有モデル(参照: AWSのセキュリティ)では、

  • AWSはクラウド“の”保護を担当
  • 私たちはクラウド“内の”セキュリティを担当

することになります。

この責任共有モデルにより、AWSはクラウド自体の保護を担当し、私たちはAWSのセキュリティ機能を活用すればセキュリティ対策とコンプライアンス遵守の両方を同時に実現することができます。

私たちが担当する領域のセキュリティのベストプラクティスを次に示します。

  • セキュリティ
  • IDとアクセス管理
  • 検知
  • インフラストラクチャ保護
  • データ保護
  • インシデント対応

本稿では、要約しながら平易な説明で6つのベストプラクティスをご紹介します。

セキュリティ

システムを安全に運用するには、セキュリティのすべての領域にベストプラクティスを適用する必要があります。ベストプラクティスは本稿にご紹介するとおりですが、具体的に挙げると

  • データ保護:データを暗号化し、アクセス権を厳格に管理します。
  • IDとアクセス管理:誰がシステムにアクセスできるかを制御し、必要な人だけがアクセスできるようにします。
  • リスク評価:定期的にシステムをチェックし、脆弱性やリスクを評価します。

上記がそれに該当します。これを部分ではなく、セキュリティ全体に適用しなければなりません。

また、現実の組織の階層とシステムの階層のどちらも、「運用上の優秀性」で定義した要件とプロセスを抽出し、それらをすべての領域に適用します。ここで言うところの、運用上の優秀性とはどのようなものでしょうか。それは、「システムの開発から運用までのすべての作業をスムーズに進め、常に改善を行いながら、ビジネスの価値を提供し続けるために確立すべき重要な視点やプロセス」のことです。私たちが運用上の優秀性を高めることは、ただシステムを安定させるだけでなく、いまやビジネスの成長に直結する重要な活動です。詳細は公式サイトの運用上の優秀性を参考にしてみてください。

AWSやセキュリティ業界からの最新の推奨事項を常にチェックし、それに基づいて脅威モデルや管理目標を更新します。これにより、新たな脅威に迅速に対応できるようになります。

また、定期的なスキャンやアラートの仕組みを活用し、セキュリティプロセスやテスト、検証を自動化することで、セキュリティの運用を拡張することもできます。

さらに、AWSでは、異なるプロジェクトや業務ごとに別々のAWSアカウントを使用してデータやアプリケーションを分離して管理することを推奨しています。これは、以下のような理由があります。

  • 機能の分離: 異なるアカウントに業務を分けることで、一つのアカウントで問題が発生しても他の業務に影響が少なくなります。
  • コンプライアンス(法令遵守): 各アカウントで適切なセキュリティ対策や規制の要求条件をクリアしやすくなります。
  • データ保護: センシティブな情報を含む業務は、特別なセキュリティ設定を施したアカウントに配置することで、情報漏洩のリスクを減らすことができます。

この推奨アプローチにより、安全性が高まるだけでなく、各アカウントごとに最適な設定を施すことが可能になります。これは、技術的な問題が他の部分に波及するのを防ぐと同時に、法的な要求にも柔軟に対応するためのベストプラクティスでもあります。

SEC 1: ワークロードを安全に運用するには、どうすればよいですか?
ワークロードを安全に運用するには、セキュリティのすべての領域に包括的なベストプラクティスを適用する必要があります。組織レベルおよびワークロードレベルにおいて、「運用上の優秀性」で定義した要件とプロセスを抽出し、それらをすべての領域に適用します。AWS や業界筋、脅威インテリジェンスからの推奨事項を常に把握することで、脅威モデルや管理目標を向上させることができます。セキュリティプロセス、テスト、検証を自動化することで、セキュリティオペレーションを拡張できます。

IDとアクセス管理

IDとアクセスの管理は情報セキュリティプログラムの主要なパートです。AWSが提供するIDとアクセス管理ツールにより、ユーザーが認可、認証したユーザーおよびコンポーネントだけがAWSのリソースにアクセスできるようになります。

要するに、誰が(認証)、何に(承認)、どのようにアクセスできるかを厳格に管理することが、IDとアクセスの管理の目的です。

AWS では、権限管理は主に IAM(アイアム、AWS Identity and Access Management) によってサポートされており、

誰が(認証): AWS リソースに対するアクションをリクエストできる IAM ユーザ、ロール、フェデレーションユーザ、またはアプリケーションなどのことをプリンシパルといいます。
何に(承認): AWSでは、AWSのサービスやリソースに対してどのような操作を許可するかを定義することができます。これを「ポリシー」といいます。

をそれぞれプリンシパルとポリシーとに分けて詳細でパワフルなアクセス制御を可能にしています。

また、IAMはユーザーやシステムに対して強力なパスワードを要求する機能が備わっています。複雑性レベル(10文字以上・大文字と数字と記号のいずれか2つを用いる、など)、再利用禁止、多要素認証 (MFA) の強制などです。

既存のディレクトリサービス(社内のユーザー管理システムなど)を使用してAWSユーザーを一元管理することもできます。AWS へのアクセス権を持つシステムを必要とするワークロードでは、IAM は、外部サービスのIDを用いたり、短期間のみ有効な認証情報を生成したりして、セキュリティを向上させることも可能です。

SEC 2: ユーザー ID とマシン ID はどのように管理するのですか?
AWS ワークロードを安全に運用するには、2 種類の ID を管理する必要があります。管理およびアクセス権を付与する必要があるアイデンティティのタイプを理解することで、適切な ID が適切な条件下で適切なリソースにアクセスできるようになります。
ユーザー ID: 管理者、開発者、オペレーター、エンドユーザーは、AWS 環境とアプリケーションにアクセスするために ID を必要とします。これらは、組織のメンバー、または共同作業を行う外部ユーザーであり、ウェブブラウザ、クライアントアプリケーション、またはインタラクティブなコマンドラインツールを介して AWS リソースを操作する人たちです。
マシン ID: サービスアプリケーション、運用ツール、ワークロードには、データの読み取りなどのために、AWS のサービスにリクエストを送信するための ID が必要です。このような ID には、Amazon EC2 インスタンスや AWS Lambda 関数など、AWS 環境で実行されているマシンが含まれます。また、アクセスを必要とする外部関係者のマシン ID を管理することもできます。さらに、AWS 環境にアクセスする必要があるマシンが AWS 外にある場合もあります。
SEC 3: ユーザーとマシンのアクセス許可はどのように管理するのですか?
アクセス許可を管理して、AWS とワークロードへのアクセスを必要とするユーザー ID やマシン ID へのアクセスを制御します。権限を分けることで、どのような条件で誰が何にアクセスできるかを制御します。

AWSを使用する際には、全てのユーザーやシステムがそれぞれ独自の認証情報を持つことが重要です。認証情報を共有することは避け、ユーザーには必要最低限のアクセス権のみを与えるべきです。この最小権限の原則は、セキュリティを強化しリスクを減らすのに役立ちます。また、パスワードの要件を厳格に設定し、多要素認証(MFA)を強制することも重要です。さらに、プログラムがAWSサービスへAPIコールを行う場合は、AWS Security Token Serviceによって発行された一時的かつ限定的な認証情報を使用する必要があります。これにより、セキュリティがさらに強化され、不正アクセスの可能性が低減します。

検知


検知のセクションでは、発見的統制によってセキュリティの脅威やインシデントを特定する方法を扱います。発見的統制とは、セキュリティの脅威や問題を見つけ出す手段であり、対して、予防的統制とは、セキュリティ上のリスクを未然に防ぐための統制を言います。

  • 発見的統制: セキュリティ上のリスクを見つける手段
  • 予防的統制: セキュリティ上のリスクを未然に防ぐ手段

このように言い表すことができるでしょう。

発見的統制の具体的な例としては、会社が持つすべての資産の詳細なリストを作成することにより、会社は資産をどのように利用し、管理するかの計画を立てやすくなり、なるべく早く脅威を発見する統制が保たれることにつながります。また、内部監査を行うことで、会社のシステムがルールに従って動いているかを確認し、問題を早期に発見して自動で警告を出す設定をすることもできます。資産管理や内部換算の仕組みを持つことで、会社が異常な行動をすばやく特定し、適切に対応できるようにします。

SEC 4: セキュリティイベントは、どのように検出して調査するのですか?
ログやメトリクスからイベントを可視化して把握し、分析します。セキュリティイベント、および潜在的な脅威に対する措置を講じて、ワークロードの保護に役立てます。

ログ管理は、セキュリティ対策や法的な要件を満たすために、AWSクラウドで構築されたシステムにとって非常に重要です。潜在的・顕在的なセキュリティ問題を特定し、対応するためのデータがログに記録されます。AWSでは、これをサポートするためにデータの保存、アーカイブ、削除のプロセスを明確に定義する機能を提供しており、これによってデータの管理が予測可能で、信頼性が高く、費用対効果が高いものになります。このプロセスを適切に管理することで、ログデータを効率的に扱い、必要な情報を迅速に取得することができます。

インフラストラクチャの保護

インフラストラクチャを保護するためには、多層のセキュリティ対策が必要です。これはクラウドやオンプレミスの環境での運用を安全に保つために重要であり、ベストプラクティスや法的な義務に沿った方法で行われるべきです。AWSでは、自社の技術やAWSマーケットプレイスを通じて提供されるパートナー製品を利用して、通信の検査を行うことができます。具体的には、Amazon Virtual Private Cloud(Amazon VPC)を使用してプライベートでセキュアな環境を設定し、その中でネットワークの構造を自由に設計できます。このようにして、企業はデータを保護しつつ効率的にシステムを運用できるようになります。

SEC 5: ネットワークリソースはどのように保護するのですか?
何らかの形式のネットワーク接続があるワークロードは、インターネットでもプライベートネットワークでも、外部および内部ネットワークベースの脅威から保護するために、複数の防御レイヤーが必要です。
SEC 6: コンピューティングリソースはどのように保護するのですか?
ワークロード内のコンピューティングリソースを内外の脅威から守るには、複数の防御レイヤーを設ける必要があります。コンピューティングリソースには、EC2 インスタンス、コンテナ、AWS Lambda 関数、データベースサービス、IoT デバイスなどがあります。

インフラを保護するためには、複数のレイヤーで防御することが賢明です。これはクラウド環境とオンプレミス環境の両方において有効で、境界の保護、通信の出入りを監視するポイントの設置、徹底したログ記録とモニタリング、そしてアラートシステムの整備が含まれます。これらはすべて、効果的な情報セキュリティ計画を実施する上で欠かせない要素です。

AWSでは、ユーザーがAmazon EC2、Amazon ECSコンテナ、AWS Elastic Beanstalkインスタンスの設定をカスタマイズして、それを変更不可能なAmazonマシンイメージ(AMI)に保存することができます。このAMIから起動されるすべての新しい仮想サーバーは、自動的にその強化された設定を引き継ぎます。これにより、セキュリティが強化された状態でシステムを効率的に、そして自動的に拡張することが可能です。

データの保護

システム設計の前に、セキュリティを強化する基本的な手法を実施することが重要です。例えば、データ分類を行うことで、組織内のデータをその機密性のレベルに応じてカテゴリー分けし、暗号化を使用することで、許可されていないアクセスからデータを守ります。そうすることで、金銭的なリスクの軽減とコンプライアンス遵守に役立つでしょう。

AWS では、以下の取り組みによりデータの保護に努めています。

  • データの暗号化と鍵の管理:AWSでは、データを暗号化し、その暗号鍵を定期的に自動または手動で更新(ローテーション)することが容易です。
  • 詳細なログ記録:ファイルへのアクセスや変更など、重要な活動を詳細に記録し、セキュリティを強化します。
  • 高い耐久性を持つストレージ:Amazon S3やAmazon Glacierなどのサービスは、非常に高い耐久性を誇り、データ損失のリスクを極めて低く抑えます。
  • データのバージョニング:誤ってデータを上書きしたり削除したりすることのないよう、データのバージョン管理を提供し、安全なデータ保持を支援します。
  • データのリージョン内保持:データは作成された特定のリージョン内に留まり、ユーザーの設定に基づいてのみ他のリージョンへ移動されます。
SEC 7: データをどのように分類すればよいですか?
分類方法を確立すると、重要度と機密性に基づいてデータをカテゴリ別に分類して、各カテゴリに適した保護と保持方法でデータを管理できるようになります。
SEC 8: 保管中のデータはどのように保護するのですか?
複数のコントロールを実装して保管中のデータを保護し、不正アクセスや不正処理のリスクを低減します。
SEC 9: 転送中のデータはどのように保護するのですか?
複数のコントロールを実装して、転送中のデータを保護し、不正アクセスや損失のリスクを軽減します。

AWSでは、保存中のデータと伝送中のデータを暗号化するための便利な機能が提供されています。たとえば、S3ではサーバー側暗号化(SSE)を利用して、アップロードされたデータを簡単に暗号化できます。また、Elastic Load Balancing (ELB) を使用すると、データの暗号化と復号(SSL terminationと呼ばれるプロセス)を効率的に処理できます。これにより、データを安全に保ちながら管理が容易になります。

インシデント対応

非常に優れた予防的、発見的統制を備えていても、組織はセキュリティインシデントが発生した際に迅速に対応し、問題の影響を最小化するための準備が必要です。システムの設計は、問題が起きた時にチームが素早く対応してシステムを安全な状態に復元できるかどうかを大きく左右します。事前に適切なツールとアクセス権を設定し、実際の対応練習を定期的に行うことで、効果的に問題を調査し、速やかに復旧できる体制を作ることが重要です。

AWS では、以下の取り組みにより効果的なインシデント対応を実現しています。

  • ファイルのアクセスや変更など、重要なコンテンツを含む詳細なログを記録できます。
  • イベントを自動的に処理でき、AWS API の使用によって、対応を自動化するツールを起動することができます。
  • AWS CloudFormation を使用して、ツールと「クリーンルーム」を事前にプロビジョニングできます。これにより、安全で隔離された環境でフォレンジックを実行できます。
SEC 10: インシデントの予測、対応、復旧はどのように行うのですか?
組織に支障をきたすことを最小限に抑えるために、セキュリティインシデントのタイムリーで効果的な調査、対応、復旧に備えることが重要です。

ユーザーのセキュリティチームにすばやくアクセス権を付与し、インスタンスの隔離を自動化するとともに、フォレンジックのデータと状態のキャプチャを自動化します。

まとめ

今回は「AWSのセキュリティ・ベストプラクティス」をテーマに、初心者に向けてわかりやすくAWSのセキュリティモデルや取り組みをご紹介しました。

AWSとは.com では、AWSの基礎から実践までの学習を通じて、企業や個人のAWS導入を支援していく予定です。

最後までお読みいただきありがとうございました