Amazon Web Services ブログ

AWS Well-Architected フレームワーク: 高リスクのセキュリティ問題を解決してセキュリティインシデントを防ぎましょう

こんにちは、AWS セキュリティ ソリューションアーキテクトの桐谷、中島です。

本日は AWS をより安全に利用いただくための情報として、「AWS Well-Architected フレームワーク : セキュリティの柱」を使った、セキュリティインシデントの防ぎ方を紹介します。

お客様にセキュリティ対策をご支援する中で、「セキュリティの事故のニュースが増えた」といったお話から「セキュリティインシデントへの対応方法」や「高度化するセキュリティ脅威を防ぐ方法」についてご相談を受けることが増えてきました。

お客様に利用いただいている AWS 環境上のシステム(ワークロード)についてもセキュリティ対策は必要です。たとえば、 IAM のアクセス権限が正しく設定されていなかったり、アクセスキーの管理が不十分で漏洩してしまった結果、EC2 インスタンスでの暗号通貨のマイニングや、データベースからの機密情報の窃取、ファイルを暗号化され身代金を要求されたりするリスクがあり、それらに対して注意しておく必要があります。

「Well-Architected フレームワーク:セキュリティの柱」は、このようなリスクにおけるセキュリティインシデントを防ぐために活用することができます。

AWS Well-Architected フレームワークとは

Well-Architected フレームワークとセキュリティの柱

Well-Architected フレームワークは、AWS におけるアーキテクチャの設計や運用のベストプラクティスをまとめたものです。これは、AWS のソリューションアーキテクト(SA)が 10 年以上にわたってお客様へ支援してきた中で蓄積されたもので、このナレッジを広く使っていただきたいという思いで 2015 年に作成されました。

フレームワークの構成要素として「運用上の優秀性」、「セキュリティ」、「信頼性」、「パフォーマンス効率」、「コスト最適化」の5つの柱があり、それぞれの柱について質問が用意されています。今回ご紹介している「セキュリティ」の柱では下記の 10 個の質問があり、AWS 利用時のセキュリティ対策において活用できるものになっています。

wasec_questions

これらの質問に答えていくことでセキュリティの状況を確認することができ、それに加えて、それぞれの質問に紐づいたベストプラクティスの情報からどのような対策をすべきなのかを確認することができます。

AWS Well-Architected Tool によるセルフチェック

また、セルフチェックできるサービスとして Well-Architected Tool をご用意しています。

wasec_tool01

上記画面の「ワークロードの定義」から、セルフチェックしたいワークロードの名称や説明、本番/検証環境などの情報を入力することで、お客様のワークロードについて現状がどうなっているかレビューを無料で行うことができます。

wasec_tool02

レビューが完了するとレポートが出力されます。レポートには高リスクの問題や中リスクの問題といった形で重大度が記載されているので、優先順位をつけた対策を行いやすくなっています。

 

高リスクのセキュリティ項目の改善

セキュリティの質問の各項目についても重大度が設定されており、セキュリティ対策を行う上で基本的なことは「高リスク」と位置付けられています。この項目が Well-Architected Tool 上でチェックがついていない場合、下記のように赤い警告と「推奨される改善事項」が表示されるようになっています。高リスクのものはセキュリティインシデントに防ぐ上で大事なポイントです。すぐ内容を確認して解決し、警告を消していただければと思います。

wasec_report

高リスクの項目にはどのようなものがあるのでしょうか。このブログではすぐチェックできるものを2つのステップにわけて説明します。

・ステップ1:セキュリティインシデントを防ぐために、すぐ確認・設定できるもの
・ステップ2:セキュリティインシデントを防ぐために、設計時に考慮するもの

 

ステップ1:セキュリティインシデントを防ぐために、すぐ確認・設定できるもの

質問4は、ログ取得やログ分析の観点からセキュリティ対策を確認する内容です。

  • サービスとアプリケーションのログ記録を設定する

ログはセキュリティインシデントを検知したり、インシデント発生時の調査にかかせない重要な情報です。できる限りログ記録を設定されることを推奨します。AWS CloudTrail の有効と証跡の作成(90日間を過ぎたログを S3 バケットに保存する設定)を行います。設定手順は下記を参照ください。
AWS アカウントに関する証跡の作成
その他にもアプリケーションログ、リソースログ( S3 アクセスログなど)、ワークロード全体でログ記録を設定します。

  • ログ、結果、メトリクスを一元的に分析する

ログの記録とあわせて、分析を自動的に行い、インシデントの兆候の検出を行う仕組みも重要です。AWS のセキュリティサービスとして、悪意のあるアクティビティや不正な動作を検知する脅威検出サービス(Amazon GuardDuty)、ダッシューボードでアラートと分析を支援するサービス(AWS Security Hub)があります。いち早くインシデントに気付くためにも、このサービスを有効することをおすすめします。
GuardDuty の開始方法
Security Hub を手動で有効にする

質問5は、ネットワークの観点からセキュリティ対策を確認する内容です。

wasec_q5

  • ネットワークレイヤーを作成する

インターネットに公開するサブネット、公開する必要のないサブネットなどネットワークを定義し、通信要件によってリソースを配置していることを確認してください。たとえば、データベースはインターネットからアクセスできないプライベートサブネットに配置するなどです。
パブリックサブネットとプライベートサブネットを持つ VPC

  • すべてのレイヤーでトラフィックをコントロールする

セキュリティグループやネットワーク ACL の機能を利用して、インバウンドとアウトバウンドの両方について、ネットワークのコントロールを多層的に適用しているか確認してください。同じサブネットにあるリソース同士であっても通信を全許可にするのではなく、必要な通信のみ許可した設定にします。
さまざまなユースケースのセキュリティグループのルール

 

ステップ2:セキュリティインシデントを防ぐために、設計時に考慮するもの

質問2は、ユーザやプログラムに対する認証やアクセス管理についての内容です。

wasec_q2

  • 一時的な認証情報を使用する

ユーザとマシン(プログラム)の両方で、できるだけ一時的な認証情報を利用するようにしてください。
ユーザIDの場合 (AWS リソースを操作するユーザに対する認証):
AWS Single Sign-On、または IAM ロールによるフェデレーションを使用して AWS 環境にアクセスします。
マシン ID の場合 (AWS リソースから別の AWS サービスへアクセスするための認証):
プログラムから S3 バケットへの操作を行うシナリオなどでは、アクセスキーを利用するのではなく IAM ロールの利用をおすすめします。
Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する

  • シークレットを安全に保存して使用する

アプリケーションからデータベースに接続する際の認証情報(ID、パスワード)などは、プログラムの中にコードせず、安全な環境に保管して利用します。
AWS では AWS Systems Manager パラメータストア、AWS Secrets Manager で、シークレットを安全に保管して利用できます。
AWS Systems Manager パラメータストア
AWS Secrets Manager: チュートリアル – シークレットの作成と取得

質問8と質問9は、データ保護に関する内容です。

wasec_q8

  • 保管中に暗号化を適用する

データを保管する際に暗号化することで、不正アクセスや損失のリスクを軽減することができます。
AWS では AWS Key Management Service (KMS) があり 多くの AWS サービスとの統合されています。例えば S3 バケットにデータを保存する際に自動で暗号化するなど、保管中の暗号を簡単に実現できます。
暗号化を使用したデータの保護

  • 安全なキー管理を実装する

暗号化で利用する鍵(暗号鍵)には、厳格なアクセスコントロールと安全な保存が求められます。プログラム中でデータの暗号処理を行う場合は、その暗号鍵が安全に保管できているかに注意してください。
KMS では暗号鍵の作成・管理機能と、プログラム内で安全に暗号化処理を行う SDK が用意されており、安全な鍵管理ができるようになっています。
AWS Key Management Service(マネージド型の暗号化キー作成と管理)


wasec_q9

  • 伝送中に暗号化を適用する

データを転送する際に暗号化することで、不正アクセスや損失のリスクを軽減することができます。
データを通信でやりとりする際は TLS を利用するなど、暗号化された通信経路になっているか確認してください。Web サーバーの HTTPS 通信だけでなく、各システム間の通信についても同様です。
AWS サービスは、通信に TLS を使用したエンドポイントを提供しており、暗号化された AWS API 通信を提供してます。

  • 安全な鍵および証明書管理を実装する

通信で利用する暗号化についても、暗号鍵が安全に保管できているかに注意してください。
AWS Certificate Manager (ACM) の証明書管理サービスを使用すると、厳格なアクセスコントロールを適用して、暗号化キーと証明書を安全に保管し、適切な間隔でローテーションすることができます。
AWS Certificate Manager(SSL/TLS 証明書のプロビジョン、管理、およびデプロイ)

まとめ

今回ご紹介した内容は一部ですが、こちらのページで全ての質問とベストプラクティスを確認できます。
セキュリティの柱 – AWS Well-Architected フレームワーク

繰り返しになりますが、セキュリティの柱の高リスクの質問はセキュリティインシデントに防ぐ上で大事なポイントです。Well-Architected Tool で高リスクのセキュリティの問題があれば、内容を確認してできるだけ早く解決することをおすすめしています。

AWS Well-Architected フレームワークと AWS Well-Architected Tool を活用して、セキュリティインシデントを防ぐ環境を整えていただければ幸いです。

技術統括本部 レディネスソリューション本部
セキュリティソリューションアーキテクト 桐谷彰一
セキュリティソリューションアーキテクト 中島章博

AWS セキュリティに関するニュース、コンテンツ、新機能のご案内は Twitter でも配信しています。