AWSアカウント作成時に行うべきこと(後編)

0411

Amazon Web Services (以下AWS)の利用開始時に行うべき設定作業を解説します。AWSの利用開始とは、AWSアカウントの開設を意味しますが、より安全に利用するため、AWSアカウント開設直後に行うべき設定がいくつかあります。この連載ではその設定内容を説明します。


ITSデザイン事業部 課長代理 システムエンジニア 上野史瑛

はじめに

前回はAWS利用開始時のアカウント登録作業全16種類のうち、認証・コスト・証跡設定を中心に10種類の作業を紹介しました。今回はセキュリティ関連の設定が中心となる、残り6種類の作業を紹介します。

前回と同様、それぞれの作業はレベルに応じて以下3つに分類しています。

MUST :アカウント開設後に必ず実施すべき作業

SHOULD :設定内容の検討または利用方法を決定のうえ、可能な限り実施すべき作業

BETTER :AWSの知識がある方が行う場合やセキュリティ要件の高いアカウントで実施すべき作業

Amazon GuardDuty

Amazon GuardDuty(以下、GuardDuty)は、AWS上の悪意のある操作や不正な動作を検知するサービスです。例えば以下のような情報が検知されます。

・ ルートユーザの使用

・ IAMユーザーの不正利用(大量の操作実行など)

・ EC2の不正通信

インプットとなる情報はCloudTrail、VPC Flow Logs、DNS Logsの3つで、そこから上記のような不正を判断して検知を行います。

作業11. GuardDuty 有効化 [ MUST ]

GuardDutyのサービス画面から、有効化するだけで使用が可能になるため、アカウント開設後、すぐに設定するようにしましょう。

図9:GuardDuty 設定画面

どのように検知されるか確認したい場合は、サンプルイベントの発行も可能です。

図10:GuardDuty サンプルイベント

作業12. GuardDuty 通知設定 [ BETTER ]

GuardDutyを有効化にすることで、AWSマネジメントコンソールの画面から検知結果を確認できるようになりますが、これだけではリアルタイムに検知ができません。余裕のある方は、CloudWatchルールとSNSを使用して、管理者にメール等で通知を行う設定もあわせて行いましょう。

CloudWatchのサービス画面から「ルール>ルールの作成」を選択し、イベントソースにGuardDuty、GuardDuty Findingを選択すれば、右側のターゲットに検知結果を渡すことができます。ターゲットにメール通知を設定したSNSを選択することで、メール通知が可能です。(SNSトピックは事前に作成する必要があります。)

ただし、後述するSecurty HubでGuardDutyの通知も合わせて行う場合は、この設定は不要です。

図11:GuardDuty 通知設定

(参考)GuardDutyの利用料金

CloudTrail、VPC Flow Logs、DNS Logsの利用量に応じて利用料金が発生します。 金額は利用状況により異なるため一概には言えませんが、大規模なサービスを公開していない限りは、$10以下になると考えて良いでしょう。

IAM Access Analyzer

作業13. アナライザーの作成 [ MUST ]

IAM Access AnalyzerはIAMの画面からアナライザーを作成することで、AWSアカウント外と共有しているIAMロールやS3バケットを一覧で確認することができます。マルチアカウントが一般的なっている中で、AWSアカウント間の連携も多くなってきました。意図しない外部への許可はセキュリティリスクとなるため、定期的に状況を確認しておく必要があります。

また、これはリージョン単位での設定が必要なため、利用するリージョン全てで設定する必要があります。

図12:アナライザーの作成

図13:アナライザー結果

(参考)IAM Access Analyzerの利用料金

IAM Access Analyzerの利用料金は無料です。料金を気にされる方も気兼ねなく積極的にアナライザーを作成しましょう。

AWS Security Hub

AWS Security Hub(以下、Security Hub)は、AWSアカウント内のセキュリティ状況やコンプライアンスの準拠状況を一箇所で確認できるサービスです。以下2種類の検出が可能です。

・ CIS AWS Foundations BenchmarkやPCI DSSといった基準に従ったコンプライアンスチェック

・ GuardDuty、Macie、Inspector、Firewall Manager、IAM Access Analyzerといった各種AWSのセキュリティサービスや3rd Partyのセキュリティサービスの検出、アラートの一元管理

検出するサービスにGuardDutyやIAM Access Analyzerも含まれますが、Security Hubを有効にすることでこれらも自動的に有効化される訳ではないため、個別に有効化する必要があります。

作業14. Security Hub 有効化 [ MUST ]

Security Hubのサービス画面で有効化する場合のみで使用が可能です。

図14:Security Hub 設定画面

図15:Security Hub 結果一覧(GuardDutyのサンプルイベントを表示)

作業15. Security Hub 通知設定 [ BETTER ]

GuardDuty同様、リアルタイム検知を行う場合はCloudWatchによる検知設定を行います。ただし、Security Hubの結果を全て通知すると、通知量が多くなってしまうため、必要に応じて、以下のように通知する結果を限定的にします。

例1:結果の重要度がHIGH、MEDIUMのみ通知する

CloudWatchのサービス画面から「ルール>ルールの作成」を選択し、イベントパターンのプレビューを編集し、以下の通り入力します。aws/securityhub/SeverityLabelをJSONで指定することで、指定した重要度のみの通知が可能です。


{
  "source": [
    "aws.securityhub"
  ],
  "detail-type": [
    "Security Hub Findings - Imported"
  ],
  "detail": {
    "findings": {
      "ProductFields": {
        "aws/securityhub/SeverityLabel": [
          "HIGH",
          "MEDIUM"
        ]
      }
    }
  }
}
	

例2:GuardDutyの結果のみ通知する

イベントパターンを以下の通り入力します。


{
  "source": [
    "aws.securityhub"
  ],
  "detail-type": [
    "Security Hub Findings - Imported"
  ],
  "detail": {
    "findings": {
      "ProductFields": {
        "aws/securityhub/ProductName": [
          "GuardDuty"
        ]
      }
    }
  }
}
	

最初はリアルタイム通知を限定的にしておいて、自分のAWSアカウントの検知状況を定期的に確認しながら、リアルタイム通知すべき結果を整理していくようにしましょう。

(参考)Security Hubの利用料金

コンプライアンスチェックの件数と、各種サービスの検出結果の件数の件数に応じて料金が発生します。 検出結果は1万件までは無料のため、大規模な利用が無い限りは無料と考えて良いでしょう。コンプライアンスチェックは1チェックあたり0.0010USDが発生しますが、通常は1アカウントあたり$5以下程度になると考えられます。少しでも料金が気になる方はコンプライアンスチェックを無効化することも可能です。

Amazon Detective

Amazon Detective(以下、Detective)は、VPC Flow Logs、CloudTrail、GuardDuty などの他のAWSサービスの情報をインプットに、潜在的なセキュリティ問題や不信なアクティビティを分析、調査できるサービスです。2020年4月に一般公開された新しいサービスです。

GuardDutyは発生したセキュリティイベントを検知するため、発生したイベントベースでの調査を行うことになりますが、Detectiveでは過去のログやイベント情報をといった時系列の観点を含み、グラフ等で視覚化することが可能です。GuardDutyとは目的が異なるため、両方共に有効にすることが大切です。

作業16. Detective 有効化 [ SHOULD ]

Detectiveのサービス画面で有効化する場合のみで使用が可能です。

図16:Detective 設定画面

以下はある特定のIAMユーザー1つを対象とした分析画面です。成功、失敗のAPI Call数(どれだけ操作を行ったのか)がグラフとして表⽰されています。

図17:Detective 画面サンプル1

グラフの中から、Failed callsが多いグラフ部分をクリックすると、その時間帯に関する情報が合わせて表示されます。呼ばれたAPIの内容(失敗数、成功数含む)、実行元IPアドレス、使用されたアクセスキー情報を確認することができます。

図18:Detective 画面サンプル2

こういった情報から、時間帯、実行量、実行内容といった観点で簡単に分析することができます。 今回はIAMユーザーを例に紹介しましたが、他にもEC2、AWSアカウント、IPアドレス、ユーザーエージェント、GuardDutyの検知イベントをベースとした分析も可能です。どの地域から実行されているかといった観点で確認も可能です。イベント検知後の調査に活用しましょう。

Detectiveは新しいサービスであること、GuardDutyと比べて料金が高くなることから現状では [ SHOULD ] としていますが、今後は[ MUST ] レベルのサービスになる可能性が高いです。

(参考)Detectiveの利用料金

GuardDutyと同様に、取得した情報量により変動します。GuardDutyよりも料金が高めに設定されており、GuardDutyの2〜3倍程度の金額になると考えられます(大規模でなければ$20〜$30程度以下)。 30日間の無料トライアル期間がありますので、まずは利用してみて状況を見ると良いでしょう。

まとめ

いかがでしたでしょうか。全体を通すとそれなりの作業量があったかと思います。

AWSアカウント開設の都度、これらの作業を手動で実施するのは手間がかかるため、CloudFormationやTerraformといったサービスを使用してテンプレート化を行い、設定を自動化することもあわせて検討しましょう。

また、こういったセキュリティ系のサービスは、日々アップデートが行われるため、最新情報をキャッチアップして、設定する作業内容も更新していくことが大切です。

上野史瑛

執筆者 上野史瑛

AWSを中心としたクラウドの導入、最適化を専門に行っています。

お問い合わせ

当社のサービス・製品に関するご相談やご質問、お見積りのご依頼など、こちらからお問い合わせください。