AWS Well-Architected Framework を深掘りしてみる②〜セキュリティ〜
2023年12月19日- By Hiromasa Chigusa
はじめに
以前、こちらのブログで、AWS Well-Architected Frameworkの概要について触れました。
AWS Well-Architected Frameworkでは「6つの柱」というカテゴリでテーマが分類されていますが、それぞれの柱についてプロジェクトマネジメントの視点から少し掘り下げて見ていきたいと思います。
今回は、その第2回「セキュリティ」についてです。プロジェクトマネージャーはもちろん、エンジニアの方々の参考にもなれば幸いです。
「セキュリティ」の柱
「セキュリティ」の柱には以下の記載があります。
『このホワイトペーパーを読むことで、セキュリティを念頭に置いてクラウドアーキテクチャを設計するための AWS の最新の推奨事項と戦略を理解できます。ここでは、実装の詳細やアーキテクチャのパターンについては説明していませんが、そのような情報に該当するリソースへの参照が記載されています。このホワイトペーパーにある手法を採用すれば、データとシステムを保護し、アクセスをコントロールし、セキュリティイベントに自動的に応答するアーキテクチャを構築できます。』(資料[1])
「実装の詳細やアーキテクチャのパターンについては説明していません」が、
「セキュリティを念頭に置いてクラウドアーキテクチャを設計するための AWS の最新の推奨事項と戦略を理解」できるように、設計者やチームのマネージャーが押さえておくべき考え方が書かれています。
AWS Well-Architected Frameworkには、「6つの柱」それぞれに「設計原則」と「ベストプラクティス領域」が置かれています。
・「設計原則」:クラウド上における適切な設計を可能にするためのガイド
・「ベストプラクティス領域」:ベストプラクティスを実現するための施策
「セキュリティ」の柱について、「設計原則」「ベストプラクティス領域」を見ていきましょう。
設計原則
「セキュリティ」の柱には、7つの設計原則があります。下表は原則とそれぞれの内容について概観したものです。
簡略化による誤解を恐れずにざっくりまとめると、次のような内容になります。
- 最小特権の原則を適用し、同じ認証を長期間使わない。
- 環境への変更は監視・検知できる仕組みを作っておく。
- 深層(多層)防御を行う。
- セキュリティの適用は自動化の仕組みでできるようにしておく。
- データは機密性のレベルに応じて分類し、各々に適切なセキュリティ施策を施す。
- データにアクセスするときはツールを使い人が直接触らない。
- 体制的にも技術的にも、インシデントに対応できるように備えておく。
体制面、管理面、技術面で推奨される活動がカバーされていますね。
ベストプラクティス領域
それでは、ベストプラクティス領域を見ていきましょう。「セキュリティ」の柱では、7つの領域で、ベストプラクティスを実現するための施策が述べられています。
• セキュリティの基礎 (Security foundations)
• IDとアクセス管理 (Identity and access management)
• 検知 (Detection)
• インフラストラクチャ保護 (Infrastructure protection)
• データ保護 (Data protection)
• インシデント対応 (Incident response)
• アプリケーションのセキュリティ (Application security)
それぞれ階層構造を持ち、ブレークダウンしていくと、個々の「ベストプラクティス」の定義にまで至ります。「ベストプラクティス」は合計で60個以上あるため、ここでは要点のみをお伝えします。詳しくはAWSの公式サイトをご確認ください。
- セキュリティの基礎 (Security foundations)
- AWSアカウントの管理と分離 (Organization priorities)
- SEC01-BP01 アカウントを使用してワークロードを分ける、等(他1項目)。
- マルチアカウント戦略をとる
- ルートユーザに対する適切なコントロールを行い、継続利用を避ける
- SEC01-BP01 アカウントを使用してワークロードを分ける、等(他1項目)。
- AWSアカウントの管理と分離 (Organization priorities)
- ワークロードを安全に運用する (Relationships and ownership)
- SEC01-BP03 管理目標を特定および検証する、等(他5項目)。
- 規制等の要件を確認し検証する
- 最新のセキュリティ脅威を常に把握する
- セキュリティの推奨事項を常に把握する
- セキュリティのベースラインとテンプレートを定め検証する。
- 脅威の特定と優先順位付けをする。
- AWSの新しいサービスの情報を定期的に取得し評価する。
- SEC01-BP03 管理目標を特定および検証する、等(他5項目)。
- ワークロードを安全に運用する (Relationships and ownership)
- IDとアクセス管理 (Identity and access management)
- ID管理 (Identity management)
- SEC02-BP01 強力なサインインメカニズムを使用する、等(他5項目)
- サインインにはフェデレーションや一時的な認証情報を使用する
- 認証情報に対して暗号化や定期的なローテーションを行う
- グループや属性を利用したユーザー管理を行う
- SEC02-BP01 強力なサインインメカニズムを使用する、等(他5項目)
- ID管理 (Identity management)
- Permissions management
- SEC03-BP01 アクセス要件を定義する、等(他8項目)
- 必要なアクセスの種類や目的を明確にする
- 目的に応じたアクセスのみを許可する
- アクセスの見直しや削除が定期的に行われるサイクルを確立する
- IDプロバイダーの障害時に対応できるよう準備する
- アクセスの監視とアラートの仕組みを作る
- SEC03-BP01 アクセス要件を定義する、等(他8項目)
- Permissions management
- 検知 (Detection)
- SEC04-BP01 サービスとアプリケーションのログ記録を設定する、等(他3項目)
- セキュリティイベントログを保持する
- セキュリティイベントと調査の流れをチケットシステムなどに統合する
- イベント対応に自動化の仕組みを利用する
- チームが動きやすいアラートを作成する
- SEC04-BP01 サービスとアプリケーションのログ記録を設定する、等(他3項目)
- インフラストラクチャ保護 (Infrastructure protection)
- ネットワークの保護 (Protecting networks)
- SEC05-BP01 ネットワークレイヤーを作成する、等(他3項目)
- コンポーネントを階層化し、不正アクセス時の影響を最小化する
- 各レイヤーでトラフィックを制御し検査する
- 異常検知時の保護メカニズムを自動化する
- SEC05-BP01 ネットワークレイヤーを作成する、等(他3項目)
- ネットワークの保護 (Protecting networks)
- コンピューティングの保護 (Protecting compute)
- SEC06-BP01 脆弱性管理を実行する、等(他5項目)
- 脆弱性のスキャンとパッチ適用を頻繁に行う
- 未使用のコンポーネントを減らす
- マネージドサービスを使用してセキュリティメンテナンスタスクを減らす
- コンピューティング保護を自動化する
- コンソールアクセスを置き換える
- コードやライブラリが改竄されていないことを検証するメカニズムを導入する
- SEC06-BP01 脆弱性管理を実行する、等(他5項目)
- コンピューティングの保護 (Protecting compute)
- データ保護 (Data protection)
- データ分類 (Data classification)
- SEC07-BP01 ワークロード内のデータを特定する、等(他3項目)
- データを分類し、関連するビジネスプロセス、保管場所、オーナーなどを明確にする
- 分類レベルに従ってデータを保護する
- データの識別と分類を自動化する
- データの保持、破棄、アクセス管理などのサイクルを定義する
- SEC07-BP01 ワークロード内のデータを特定する、等(他3項目)
- データ分類 (Data classification)
- 保管中のデータの保護 (Protecting data at rest)
- SEC08-BP01 安全なキー管理を実装する、等(他4項目)
- キーの保存、ローテーション、暗号化を定義する
- データはデフォルトで暗号化する
- 保管時のデータ保護を自動化する
- データへのアクセスに最小特権の原則を適用する
- データへのアクセスはツールを使用し、直接的なまたは踏み台によるアクセスを回避する
- SEC08-BP01 安全なキー管理を実装する、等(他4項目)
- 保管中のデータの保護 (Protecting data at rest)
- 伝送中のデータの保護 (Protecting data in transit)
- SEC09-BP01 安全な鍵および証明書管理を実装する、等(他3項目)
- 安全な鍵・証明書管理・プロトコルを使用する
- データは伝送中に暗号化する
- 意図しないデータアクセスの検証を自動化する
- SEC09-BP01 安全な鍵および証明書管理を実装する、等(他3項目)
- 伝送中のデータの保護 (Protecting data in transit)
- インシデント対応 (Incident response)
- 準備 (Prepare)
- SEC10-BP01 重要な人員と外部リソースを特定する: 、等(他4項目)
- インシデント対応に必要な人員やリソースを特定する
- インシデント対応のプロセスを明確に定義する
- 必要なフォレンジック機能を準備する
- 必要なアクセス権やツールを事前準備する
- SEC10-BP01 重要な人員と外部リソースを特定する: 、等(他4項目)
- 準備 (Prepare)
- シミュレーション (Simulate)
- SEC10-BP07 ゲームデーを実施する
- ゲームデーやシミュレーションを実施する
- SEC10-BP07 ゲームデーを実施する
- シミュレーション (Simulate)
- イテレーション (Iterate)
- SEC10-BP04 封じ込め機能を自動化する
- インシデントの封じ込めおよび復旧を自動化する
- SEC10-BP04 封じ込め機能を自動化する
- イテレーション (Iterate)
- アプリケーションのセキュリティ (Application security)
- SEC11-BP03 定期的にペネトレーションテストを実施する、等(他7項目)
- 定期的にソフトウェアのペネとレーションテストを実施する
- セキュリティ特性のテストを自動化する
- セキュリティに関するトレーニングを実施する
- 手動のコードレビューを行う
- SEC11-BP03 定期的にペネトレーションテストを実施する、等(他7項目)
まとめ
如何でしたでしょうか。リソースに対するアクセス権をしっかり定義し、最小構成で付与し、継続的にメンテナンスするといった管理面や、暗号化やアクセスキーのローテーションやメカニズムの自動化といった技術面、セキュリティの脅威やサービスについてアンテナを張り、インシデントに対するシミュレーションやトレーニングをするといった組織体制面が、重要事項として述べられています。
脅威は日々進化しているので、それに対する備えも継続的に検証しアップグレードしていくことが求められるという内容だと思います。
参考資料
[1] https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pillar/welcome.html
Rackspaceについて
Rackspace Technologyの日本国内サービスは、アイレット株式会社Global Solutions事業部より提供させていただきます。
Amazon AWSとMicrosoft Azureの導入検討のコンサルティング(勉強会)から構築、運用・保守までワンストップのクラウド支援サービスです。
お客様のご要望に柔軟に対応いたしますので、まずはお気軽にご相談ください。