フォーム読み込み中
こんにちは。ソフトバンク株式会社の王文礼です。
本記事では、AWS 環境のセキュリティとコンプライアンス対応に役立つ AWS Security Hub について解説します。Security Hub の使い方を習得しようとする読者の皆さんに役立つことができたら、嬉しいです。
Security Hub を利用する前提として、AWS Config でリソースの記録を有効化する必要があります。そのため、「AWS Config でリソースの記録を有効化」、「AWS Security Hub を有効化」という順番で解説します。
Security Hub は、いろいろなサービスと連携して使うもので、現在 13 個の AWS サービスと 68 個の パートナーサービスと統合されています。AWS サービスとの統合に関して、AWS Config と AWS Trusted Adviser を例に挙げて説明しますが、これらの AWS サービス自体の説明は対象外とします。
なお、パートナーサービス自体やパートナーサービスとの統合についての説明も対象外としますので、ご了承ください。
AWS Security Hub は、AWS 環境全体のリソースに対して、セキュリティのベストプラクティスをチェックしてくれるクラウドセキュリティ体制管理サービスです。
Security Hub は、AWS のセキュリティベストプラクティスと業界のコンプライアンスのチェックに加えて、複数の AWS サービス及びパートナーサービスからのセキュリティアラートを集約し、より簡単に修復アクションを講じることも可能です。
Security Hub 固有のセキュリティ標準
Security Hub と統合できる AWS のサービス及びパートナーサービス
例えば、Security Hub は、AWS Config や Amazon GuardDuty、Amazon Inspector、Amazon Macie、IAM Access Analyzer、AWS Firewall Manager など、有効化されている AWS セキュリティサービスからの検出結果を自動的に収集できます。
例えば、IBM QRadar、McAfee MVISION Cloud Native Application Protection Platform、Slack などと統合して、検出結果を一元管理することができます。詳細は、パートナーサービスをご参照ください。
Security Hub を利用するまで、利用中の AWS サービスもしくはパートナーサービスに一々アクセスして、それぞれのコンソールで確認する必要がありますが、Security Hub の導入により、これらのサービスの一元管理が可能となり、作業の手間を省くことができます。
ここからは八つのセクションに分けて、Security Hub の使用方法について説明します。Security Hub を有効化するために、AWS Config でリソースの記録を有効化する必要があります。
AWS Config リソースの記録を有効化する手順:
① AWS Config コンソールを開きます。
② 一般設定のところ、下記の項目を選択します。
③ 配信方法のところ、適当に設定して、次へ をクリックします。
④ ルール ページで AWS マネージド型ルール を何も選択せず、次へ をクリックします。※必要な項目を選択しても問題ありません。
注)現状、リージョンにて初めて AWS Config を有効化する際に表示される画面において、複数のルールを選択することが可能ですが、それ以外の場合、一度に一つのルールしか追加できません。マネージド型ルールは 143 個もあるため、ここで何も選択しないままで進めると、今後もしマネージド型ルールを利用したいなら、ルールを一つづつ追加する必要があります。一応、YAML ファイルを作成して、必要なルールを一括で追加することが可能ですが、どちらも手間がかかります。
本記事では、AWS Config と Security Hub との統合を説明するために、マネージド型ルール を選択しないようにします。
⑤ レビュー ページで、記録するリソースタイプは すべてのリソース(グローバルリソースを含む) となっていることを確認し、確認 をクリックします。
これで、AWS Config でリソースの記録が有効化されました。
AWS Config の検出結果を確認
AWS Config リソースの記録を有効化できたら、ダッシュボード と ルール ページを確認してみます。
前工程の ルール ページで マネージド型ルール を選択しなかったため、コンプライアンスの準拠結果が生成されません。
前工程の ルール ページで マネージド型ルール を選択しなかったため、リソース設定が該当ルールに準拠しているかどうかを評価できず、準拠結果が生成されません。
AWS マネージド型ルールを追加
試しに、二つのルールを追加して、準拠結果を確認してみます。
ルールを追加する手順:
① ルール ページで、ルールを追加 をクリックします。
② ルールタイプの選択 のところで、AWS によって管理されるルールの追加 を選択します。
③ AWS マネージド型ルール の検索バーに s3-bucket-public-write-prohibited を入力/選択して、次へ をクリックします。
④ ルールの設定 ページで、デフォルト設定のままで 次へ をクリックします。
⑤ 確認して、ルールを追加 をクリックします。
これで、一つ目のルールの追加が完了しました。
手順①〜⑤を繰り返して、二つ目のルール ec2-ebs-encryption-by-default を追加します。
再度 AWS Config の検出結果を確認
ルールを追加したら、再度 ダッシュボード と ルール を確認します。
s3-bucket-public-write-prohibited と ec2-ebs-encryption-by-default に関する検出結果が表示されていることが分かります。
注)検出結果が表示されない場合、ルール ページで、該当のルールを選択した状態で アクション > 再評価 の順にクリックして、手動で評価を実施してください。
AWS Config でリソースの記録を有効化した後、Security Hub を有効化します。
Security Hub を有効化する手順:
① Security Hub コンソールを開きます。
② 必要なセキュリティ基準にチェックを入れて、Security Hub の有効化 をクリックします。
注)Security Hub 固有のセキュリティ基準
AWS セキュリティエキスパートによって精査され、高度にキュレートされたセキュリティに関するベストプラクティスです。
米国の CIS(Center for Internet Security)が発行している AWS を安全に利用するための構成基準及びベストプラクティスに関するガイドラインです。
略称、PCI DSS v3.2.1。クレジットカードデータを安全に取り扱うために策定されたクレジットカード業界のセキュリティ基準です。
セキュリティチェックを実行するタイミング
セキュリティ標準が有効化されると、Security Hub は全てのチェックを開始し、チェック完了まで最大 2 時間かかります。初回コントロールチェックの実行が完了するまで、ステータスは「No data」の状態となります。
初回チェックの後、各コントロールのチェックは、定期的にもしくはトリガーにより実行されます。
注)コントロールとは、有効化されたセキュリティ基準やマネージド型ルールのことです。
セキュリティチェック完了後、Security Hub の概要ページを確認しましょう。
セキュリティスコアの計算方法
例えば、100 個のコントロールが有効になって、そのうち 65 個が合格である場合、セキュリティスコアは 65% になります。
例えば、110 のコントロールが有効になって、そのうち 65 個が合格で、 10 個が「No data」の場合、計算では「No data」のコントロールが無視され、セキュリティスコアは 65% になります。
重要度の評価基準
コントロールの重要度は、二つの評価基準にもとづいて決定されます:
例えば、MFA(多要素認証)が設定されていないという脆弱性を利用して、アカウントに侵入する行為の難易度は、この評価基準に該当します。
上記の例では、MFA 認識が設定されていないため、侵害者はアカウント ID とパスワードを手に入れたら、AWS リソースにアクセスできてしまいます。
重要度マトリックス
| AWS アカウントまたはリソースへの侵害の可能性 | |||
|---|---|---|---|---|
非常に高い | 高い | 低い | 非常に低い | |
不正行為の実施が非常に簡単 | 重大 | 重大 | 高 | 中 |
不正行為の実施がやや簡単 | 重大 | 高 | 中 | 中 |
不正行為の実施がやや難しい | 高 | 中 | 中 | 低 |
不正行為の実施が非常に難しい | 中 | 中 | 低 | 低 |
引用元:重要度の基準
重要度の定義
クロスリージョン集約とは
クロスリージョン集約を使用すると、複数のリージョンからの検出結果、検出結果の更新、インサイト、コンプライアンスステータスの制御、及びセキュリティスコアを一つのリージョン(集約リージョン)に集約することができます。さらに集約リージョンからこれらのデータを管理することもできます。
例えば、東京リージョンを集約リージョンとして設定し、大阪リージョンとバージニア北部リージョンをリンクされたリージョンとして設定するとします。 東京リージョンの検出結果ページには、三つのリージョンの検出結果が表示されます。検出結果が更新されたら、三つのリージョンの検出結果ページにも反映されます。
引用元:クロスリージョン集約の仕組み
クロスリージョン集約を有効化する手順:
クロスリージョン集約を有効するには、集約リージョンとなるリージョンから有効化する必要があります。
① Security Hub コンソール を開きます。
② AWS のリージョンを集約リージョンとして使用するリージョンに変更します。今回は東京リージョンにします。
③ Security Hub ナビゲーションメニューで、設定 > リージョン の順にクリックします。
④ アジアパシフィック (東京) - ap-northeast-1 を選択します。
⑤ リンクされたリージョンで、データの集約元となるリージョンを選択します。
例えば、大阪とバージニア北部を選択します。
⑥ 保存 をクリックします。
ご参照:
クロスリージョン集約を有効化したら、Security Hub の集約リージョン(東京)で確認すると、リンクされたリージョンの検出結果も反映されていることが分かります。
重要度の欄の数字は、ワークフローステータスが NEW または NOTIFIED の検出結果のみが含まれます。
重要度の欄の数字をクリックすると、詳細がリストされます。リストが重要度/リージョン/ワークフローステータス/レコードの状態でフィルタリングされます。
マルチアカウントを利用する場合、一つのアカウントを Security Hub の管理アカウント(委任管理アカウント)として指定し、他のアカウントをメンバーアカウントとして Security Hub の管理アカウントに追加することができます。
Security Hub の管理アカウントにメンバーアカウントを追加するには、二つの方法があります。
Security Hub の管理アカウントとメンバーアカウントは同じ組織に属する必要があります。
組織内もしくは組織外のアカウントを追加できます。
メンバーアカウントの追加手順 - via Organizations:
AWS Organizations を利用して、メンバーアカウントを追加するには、まず、Security Hub の管理アカウントを指定する必要があります。次に、Security Hub の管理アカウントよりメンバーアカウントを追加します。
Security Hub の管理アカウントを指定するには、組織のマスターアカウントより実施します。
① マスターアカウントから Security Hub コンソールを開きます。
② Security Hub ナビゲーションメニューで、設定 > 一般 の順にクリックします。
③ 委任された管理者アカウント ID のところにメンバーアカウント ID を入力して、委任 をクリックします。
④ Security Hub の管理アカウントを指定した後、管理アカウントコンソール > 設定 > アカウント ページに組織の全てのアカウントがリストアップされます。
注)組織のアカウントリストは、Security Hub の管理アカウントのみに表示されます。組織のマスターアカウントにアカウントリストを表示するにも、マスターアカウントを Security Hub の管理アカウントとして指定する必要があります。
続いて、Security Hub の管理アカウントより、メンバーアカウントを追加します。
⑤ Security Hub の管理アカウントから Security Hub コンソールを開きます。
② 設定 > アカウント の順にクリックします。
③ 対象のアカウントを選択します。
④ Actions > Add member の順にクリックします。
メンバーアカウントの追加手順 - by Invitation:
組織外のアカウントを追加する時、この方法を使います。まず、Security Hub の管理アカウントよりメンバーアカウントを招待します。次に、メンバーアカウントより招待を承認します。
Security Hub の管理アカウントより、メンバーアカウントを招待します。
① Security Hub コンソールを開きます。
② 設定 > アカウント の順にクリックします。
③ 対象のアカウント ID を入力し、Add をクリックします。(Email を入力しなくても大丈夫です。手順の一部を省略させていただきます。)
続いて、招待されたアカウントより、招待を承認します。
④ Security Hub コンソールを開きます。
⑤ 設定 > アカウント の順にクリックします。
⑥ Accept ボタンをオンにして、Accept Inviataion をクリックします。(拒否するには、Decline invitation をクリックします。)
Security Hub コンソールの 統合 ページで、Security Hub と統合できる AWS サービスとパートナーサービスを確認/設定できます。
記事作成時点では、13 個の AWS サービスと 68 個のパートナーサービスとの統合が可能です。
注)パートナーサービスの詳細は、AWS Security Hub のパートナーをご参照ください。本記事では、パートナーサービスについての説明を対象外とします。
Security Hub と統合できる AWS サービス
Security Hub と統合できる 13 個の AWS サービスについて、Security Hub との送受信方向にもとづいて、大きく 2 種類に分類できます。
統合可能な AWS サービス | 検出結果の送受信方向 |
|---|---|
AWS Chatbot | 検出結果を Security Hub へ送信 |
AWS Firewall Manager | |
AWS Config | |
Amazon GuardDuty | |
AWS Health | |
AWS Identity and Access Management Access Analyzer | |
Amazon Inspector | |
Amazon Macie | |
AWS Systems Manager Patch Manager | |
AWS Audit Manager | Security Hub からの検出結果を受信 |
Amazon Detective | |
AWS Trusted Advisor | |
AWS Systems Manager Explorer and OpsCenter | Security Hub からの検出結果の受信及びアップデート |
引用元:AWS サービスとの統合
これからは、2 種類のサービスからそれぞれ一例を挙げて説明します。
検出結果を確認 - AWS Config の例
AWS サービスの中で、検出結果が Security Hub へ送信される場合、Security Hub コンソールより、そのサービスの 結果を参照 をクリックして、検出結果を確認することができます。
例えば、AWS Config からの検出結果を確認すると、前の工程で設定した AWS Config ルール ec2-ebs-encryption-by-default についての評価結果が表示されます。
リストは、製品名/ワークフローステータス(NEW)/ワークフローステータス(NOTIFIED)/レコードの状態でフィルタリングされます。
検出結果を確認 - AWS Trusted Adviser の例
AWS Trusted Adviser は Secrity Hub からの検出結果を受信することができます。Security Hub を有効にすると、Trusted Advisor コンソールでセキュリティコントロールとその検出結果を確認できます。
① Trusted Adviser コンソールを開きます。
② セキュリティ ページ、ソース のところで AWS Security Hub を選択します。
注)Security Hub が新しいコントロールを AWS 基礎セキュリティのベストプラクティス v1.0.0 に追加すると、Trusted Advisor でそれらを表示できるようになるまでに 2〜4 週間の遅延が生じる可能性があります。
Service-linked ルール
Security Hub は、IAM service-linked ロールを使用します。 service-linked ロールは、Security Hub によって事前定義されており、Security Hub がユーザに代わって他の AWS サービスを呼び出すために必要な全てのアクセス許可が含まれています。
Security Hub を有効化した後、AWS Config のルールページを再度確認して、Security Hub を有効化した前と比べてみます。
前の工程で追加した二つのルール以外に、Security Hub によって作成された service-linked ルールがたくさん表示されていることが分かります。
これらのルールは、元のルール名の前に securityhub とルール名の後に一意の識別子が加えられます。
例えば、元の AWS Config の管理ルール s3-bucket-public-write-prohibited の場合、service-linked ルール名は securityhub-s3-bucket-public-write-prohibited-0e59a5aa になります。
今まで、いろいろなところで検出結果を見てきましたが、このセクションでは、検出結果にフィルタをかけて、検出結果を絞ってみたいと思います。
検出結果となるデータソース
Security Hub では、以下のデータソースから検出結果を収集します。
検出結果をフィルタリングしてみる
検出結果のページで、フィルタリングしていろいろな結果を抽出できます。
例えば、アカウント ID と重要度ラベル「CRITICAL」を指定して、特定のアカウントの特定重要度の検出結果のみを表示できます。
例えば、製品名「Config」を指定して、AWS Config からの検出結果のみを表示できます。
前の工程で、Config ルール s3-bucket-public-write-prohibited と ec2-ebs-encryption-by-default のみ有効化したため、検出結果に両者と関わる事項のみ表示されます。
インサイト ページでは、複数のデータソースからの検出結果のうち、関係のあるものを同じカテゴリにまとめています。
2 種類のインサイトがあります。
各カテゴリをクリックすると、インサイトの詳細が表示されます。Security Hub では、最大 100 件のインサイト結果しか表示されません。100 を超えた場合、最初の 100 個のみ表示されます。
検出結果リストに加え、次のチャートも表示されます。
Security Hub の料金は、二つのディメンションによって計算されます。
東京リージョンの料金
セキュリティチェック | 料金 |
|---|---|
チェック/アカウント/リージョン/月あたり最初の 10 万回 | 0.0010USD/チェック |
チェック/アカウント/リージョン/月あたり次の 40 万回 | 0.0008USD/チェック |
チェック/アカウント/リージョン/月あたり 50 万回を超える場合 | 0.0005USD/チェック |
取り込まれた検出結果 | 料金 |
|---|---|
Security Hub のセキュリティチェックに関連する、検出結果の取り込み | 無料 |
イベント/アカウント/リージョン/月あたり最初の 1 万回 | 無料 |
イベント/アカウント/リージョン/月あたり 1 万回を超える場合 | 0.00003USD/イベント |
料金についての補足情報
数多くの AWS セキュリティサービスからの検出結果をそれぞれのサービスで確認するのは、工数がかかる一方、検出されたセキュリティアラートに対して、どちらを優先的に対応すべきかを決めるにも手間がかかります。Security Hub を利用すれば、各セキュリティサービスからの検出結果を一元管理できますし、各検出結果に重要度が表示されて、修復作業の優先順位付けに役立ちます。
Security Hub は、AWS セキュリティエキスパートによって精査されたセキュリティベストプラクティスと業界のコンプライアンスフレームワークを利用しているので、Security Hub からの指摘に対応していくうちに、AWS 環境のセキュリティやコンプライアンス遵守を一段階上げることが間違いなく実現できます。
ソフトバンクはAWS アドバンストティアサービスパートナーです
「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。
条件に該当するページがございません