助け合いフォーラム

AWS

AWS ソリューションアーキテクト - アソシエイト(SAA-C03)
問題ID : 30408
問題を開く
チームでは複数のAWSアカウントを運用しているが、監査人はチームがAWSサービスを適切に運用しているかを監査する必要がある。監査人がチームのCloudTrailのログを適切に監査するために、最も効率的な手段はどれか。

正解

チームメンバーのAWSアカウントで証跡情報を作成し、ログの保存先に監査人用のアカウントのS3バケットを指定する

解説

AWS CloudTrailでは、企業や組織などにおいて複数のAWSアカウントを管理している場合、それぞれのCloudTrailのログを1つのS3バケットで管理することができます。例えばアカウントA、B、Cの操作ログを監査用のアカウントDに属するバケットに集約することで、監査を容易に行えたり、各アカウントによるログの改ざんを防ぐことができます。
複数アカウントのCloudTrailログを集約する際は、証跡情報の作成時に「ストレージの場所」を既存のS3バケットに指定します。なお、S3バケット名は全ユーザーで一意ですので、アカウントによらずバケットを特定することができます。また、指定するS3バケットは他のアカウントからアクセスが可能になるように事前にバケットポリシーを設定しておく必要があります。

以上より正解は
・チームメンバーのAWSアカウントで証跡情報を作成し、ログの保存先に監査人用のアカウントのS3バケットを指定する
です。

以下は証跡情報の登録画面の例です。


その他の選択肢については以下の通りです。

・監査人用のAWSアカウントに、チームメンバーのCloudTrailログを参照するIAM権限を付与する
監査人が複数アカウントのログを横断的に参照するのは効率的であるとはいえませんので、誤りです。

・チームメンバーの代表1名のアカウントにCloudTrailのログを集約し、90日ごとにログを監査人へ提出する
チームメンバーの代表によってログが改ざんされる可能性があることや、集約・提出という非効率的な手段をとっているため、誤りです。
ログは、証跡情報を登録し保存先にS3を指定することにより、90日を超えても保存しておくことができます。

・AWS Lambda関数を使って、チームメンバーのCloudTrailのログを監査人用のアカウントにコピーする
外部サービスを利用してログをコピーすることは効率的な手段とはいえませんので誤りです。
※Lambda ... サーバーレスでプログラムの実行が可能なAWSサービス。他サービスと連携でき、イベントが発生したタイミングでプログラムを起動させることができる。Lambdaで起動するコードをLambda関数(Lambda Function)と呼ぶ。

参考

【AWS CloudTrail】
AWS上でサービスを適切に運用し続けるには、運用担当者がAWSの各種サービスをどのように操作しているか、その操作は適切か、といったオペレーション監視、運用監査が必要です。
AWS CloudTrailは、AWSサービスに対して「いつ」「誰によって」「どのような操作が行われたのか」を記録・保存するサービスです。利用登録なしに過去90日間のログを無料で参照することができます。

以下はCloudTrailのダッシュボードの画面です。


イベントの発生日時と操作したユーザー、対象のリソース名などが表示されているのがわかります。また左端の「▶」マークをクリックすることで、詳細情報を参照することもできます。
例えば、操作した覚えがないのにリソースが増減されていたりインスタンスが削除されていたような場合でも、CloudTrailのログを参照することで誰がどのような操作を行ったのかを確認できます。

監視対象となるイベントは以下の通りです:
・管理イベント ... ユーザーのログイン、EC2インスタンスの作成 など
・データイベント ... S3上のオブジェクト(データ)の操作、Lambda関数(※)の実行
・インサイトイベント ... 通常と異なる操作(書き込みAPIの呼び出し)

管理イベントとは具体的には管理コンソールからの操作やAWS CLI(コマンド)、APIによる操作です。これらはデフォルトでダッシュボードから参照できます。
データイベントおよびインサイトイベントはデフォルトでは有効になっておらず、「証跡情報」を登録しそれぞれのイベントの記録を有効にするか否かを選択します。
※Lambda ... サーバーレスでプログラムの実行が可能なAWSサービス。他サービスと連携でき、イベントが発生したタイミングでプログラムを起動させることができる。Lambdaで起動するコードをLambda関数(Lambda Function)と呼ぶ。

●証跡情報
CloudTrailのログは「証跡情報」を登録することによりS3バケットへ保存することができます。S3バケットへログを保存することにより、90日を超えてもCloudTrailのログを保存しておくことができます。
以下は証跡情報の登録画面です。

上述したインサイト(Insights)イベント、データイベントについては本画面から記録するか否かを選択します。

S3へ保存するログの内容はJSON形式で出力され、gz形式で圧縮されます。保存する際はAmazon KMS(Key Management Service)を利用して暗号化することも可能です。
以下はS3バケットへ保存したCloudTrailのログです。


●複数アカウントのログ保存
企業や組織などにおいて複数のAWSアカウントを管理している場合、それぞれのCloudTrailのログを1つのS3バケットで管理することができます。例えばアカウントA、B、Cの操作ログを監査用のアカウントDに属するバケットに集約することで、監査を容易に行えたり、各アカウントによるログの改ざんを防ぐことができます。
複数アカウントのCloudTrailログを集約する際は、証跡情報の作成時に「ストレージの場所」を既存のS3バケットに指定します。なお指定するS3バケットは、他のアカウントからアクセスが可能になるように事前にバケットポリシーを設定しておく必要があります。

●CloudTrailとCloudWatch Logsの連携
CloudTrailは、AWSサービスのログを一元管理するサービスAmazon CloudWatch Logsと連携することができます。
CloudWatch LogsとCloudTrailを連携することにより、操作ログに特定のキーワードが登場した際に管理者宛に通知を行うことができます。キーワードには例えば、ログインイベント「ConsoleLogin」を指定したり、EC2インスタンスの変更(作成・終了・停止など)イベント「EC2InstanceChanges」などを指定することができます。これにより管理コンソールへ不正なログインが行われたときに検知したり、意図しないインスタンスの変更が行われていないかをアクティブに監視することができるようになります。
※CloudWatch Logsについての詳細は分野「CloudWatch」を参照してください。

上に戻る

脳内変換の問題でしょうか?

公開日 2023/12/28

設問
「チームでは複数のAWSアカウントを運用しているが、監査人はチームがAWSサービスを適切に運用しているかを監査する必要がある。
監査人がチームのCloudTrailのログを適切に監査するために、最も効率的な手段はどれか。」

正解は、「チームメンバーのAWSアカウントで証跡情報を作成し、ログの保存先に監査人用のアカウントのS3バケットを指定する」
でした。が、「チームメンバーのAWSアカウントが、監査人用のアカウントのS3バケットへ、認証情報を保存できない。」
と考えたため選択として、不適切ではないでしょうか?

解説に「指定するS3バケットは他のアカウントからアクセスが可能になるように事前にバケットポリシーを設定しておく必要があります。」
はあるものの、選択肢には事前設定について記載がありません。

設問を読み、あらゆる事前設定を脳内変換した上で解けという事でしょうかね・・・
だとすると、何でも有りなような気がしました。

2023/12/28 17:23

チームメンバーのAWSアカウントが、監査人用のアカウントのS3バケットへ、認証情報を保存できない。

これを理由に不正解にしてしまうと、例えば
「インターネット上のユーザーがアクセスできるのは、パブリックサブネットのEC2インスタンスか、プライベートサブネットのEC2インスタンスか、どちらか?」
という問題に対して、
「パブリックサブネットのEC2インスタンスのセキュリティグループが設定されていないので、どちらともアクセスできない」
という回答になってしまうと思います。

設問に全てのアクセス権限の設定を盛り込んでいるわけではないので、設定上可能であれば補完して考えなければならないです。


コメント

c chmod007

2024/01/06 10:40

返信ありがとうございます。 そうですか。。。 たまに問題文中に「どこどこに、権限を割り当てている・ロールを割り当てている」という記載があったりするので、「じゃぁ、記載が無いという事は割り当ていないという解釈ですよね?」という深読みをしてしまいました。 まぁ、本サイトの問題集を管理する側も細かな設定文言までは、見切れないでしょうから、脳内変換で補うようにします。

y yukihina1126

2024/01/06 17:49

消去法で考えたほうが楽になりますよ。 ・監査人用のAWSアカウントに、チームメンバーのCloudTrailログを参照するIAM権限を付与する ・AWS Lambda関数を使って、チームメンバーのCloudTrailのログを監査人用のアカウントにコピーする ・チームメンバーの代表1名のアカウントにCloudTrailのログを集約し、90日ごとにログを監査人へ提出する 上記不正解の回答はどれも効率性が悪いですよね。 複数人に権限を付与したり、外部サービスを用いたり、90日ごと提出したりと... 問題文に「最も効率的な手段はどれか。」と記載があるため、消去法で考えれば、証跡情報でログの保存先を監査人のS3を指定すればよいとなります。 認証の話は置いといて、今回は最も効率的な手段の話をしているため、答えは正しいです。

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?