以下に【SCS-91】の問題に対する解説を、問題文と選択肢を一切編集せず、ご提示します。
■ 問題文
【SCS-91】ある企業が、Amazon Elastic Block Store (Amazon EBS) でサポートされている Amazon EC2 インスタンスのプライベートキーを誤って削除してしまいました。
セキュリティエンジニアは、インスタンスへのアクセスを回復する必要があります。
この要件を満たす手順はどれですか? (2つ選んでください。)
■ 選択肢
- インスタンスを停止します。ルートボリュームを切り離します。新しいキーペアを生成します。
- インスタンスを実行し続けます。ルートボリュームを切り離します。新しいキーペアを生成します。
- ボリュームが元のインスタンスからデタッチされたら、そのボリュームをデータボリュームとして別のインスタンスにアタッチします。新しい公開鍵を使用して、authorized_keys ファイルを変更します。ボリュームを元のインスタンスに戻します。インスタンスを開始します。
- ボリュームが元のインスタンスからデタッチされたら、そのボリュームをデータボリュームとして別のインスタンスにアタッチします。新しい秘密鍵を使用して、authorized_keys ファイルを変更します。ボリュームを元のインスタンスに戻します。インスタンスを開始します。
✅ 正解:1、3
🔍 解説:
この問題では、「EC2インスタンスのプライベートキーを削除してしまいログインできなくなった場合に、どのようにアクセスを回復するか」が問われています。
1. インスタンスを停止 → ルートボリュームをデタッチ → 新しいキーペア作成
これは復旧の準備ステップとして正しいです。
インスタンスを停止した状態でルートボリュームを外し、安全な操作を行うのが前提です。
3. ルートボリュームを別インスタンスにアタッチ → 公開鍵をauthorized_keysに登録 → 戻す
この手順がアクセス回復のための実質的な作業です。/home/ec2-user/.ssh/authorized_keys
に新しいキーペアの公開鍵を登録することで、新たに作成したキーペアでSSH接続ができるようになります。
❌ 不正解の選択肢の理由:
2. 実行中のままルートボリュームを切り離す
→ **ルートボリュームのデタッチはインスタンスを停止しないとできません。**この操作はAWS側で禁止されています。
4. authorized_keys に秘密鍵を登録しようとしている
→ これは誤りです。authorized_keys
に登録するのは**公開鍵(public key)**であり、秘密鍵を置くことはセキュリティ上も動作上も誤った対応です。
🎯 SCS試験で押さえておくべきポイント:
- EC2のログインに使用するSSHキーペアのうち、秘密鍵を紛失しても公開鍵が残っていればアクセス復旧は可能
- authorized_keys ファイルは「公開鍵」を配置する場所であり、秘密鍵を登録してはいけない
- EC2のルートボリュームを取り扱う際は、インスタンスを停止した上でボリュームのデタッチやアタッチを行うのが基本ルール
- 別インスタンスを使ってファイルシステムをマウント・編集し、公開鍵を差し替えてから戻すのが推奨される復旧パターン
次の問題もお待ちしています。引き続き、同様の形式で対応します。
以下に【SCS-92】の問題に対する解説を、問題文と選択肢を一切編集せず、ご提示します。
■ 問題文
【SCS-92】ある開発者のラップトップが盗難されたことが発覚し、さらに、そのラップトップは暗号化されておらず、複数のAmazon EC2インスタンスにアクセスするために使用されるSSHキーが含まれていました。
セキュリティエンジニアは、鍵が使用されていないことを確認し、対応策を策定している間、すべてのEC2インスタンスへのポート22をブロックしました。
セキュリティエンジニアは、他にどのようにして現在稼働中のインスタンスを保護することが可能でしょうか?
■ 選択肢
- EC2コンソールからキーペアのキーを削除し、新しいキーペアを作成します。
- modify-instance-attribute APIを使用して、キーを使用している任意のEC2インスタンスのauthorized_keys を変更します。
- EC2のRunCommandを使用して、キーを使用しているEC2インスタンスのauthorized_keysファイルを変更します。
- EC2インスタンスの起動に使用した任意のAMIのキーペアを更新し、EC2インスタンスを再起動します。
✅ 正解:3
🔍 解説:
3. EC2のRunCommandを使用して、authorized_keysファイルを変更する
→ Systems Manager RunCommand(SSM) を利用すれば、SSHを使わずにインスタンスに対してリモートコマンドの実行が可能です。
これを用いて、侵害された公開鍵を ~/.ssh/authorized_keys
から削除し、新しい公開鍵を追加することで安全にアクセス回復ができます。
この手法の利点:
- インスタンスを停止せずに作業可能
- ポート22(SSH)をブロックしたままで対応可能
- 自動化・スクリプト対応が容易
※ SSM Agentがインスタンスにインストールされており、必要なIAMロールとVPCエンドポイント(もしくはインターネットアクセス)が構成されている必要があります。
❌ 不正解の選択肢の理由:
1. EC2コンソールからキーペアのキーを削除し、新しいキーペアを作成します
→ キーペアの削除は今後の新規起動に影響するだけで、既存インスタンスには反映されません。
既存インスタンスのauthorized_keys
に残る公開鍵は削除されません。
2. modify-instance-attribute
API を使用して authorized_keys を変更
→ このAPIは**インスタンスの属性(例:キーペア名)**の更新には使用できますが、インスタンス内のファイル内容(authorized_keys)を変更する機能はありません。
4. AMIのキーペアを更新して再起動
→ インスタンス起動後は、**AMIのキーペア設定は無関係になります。**再起動してもauthorized_keysは更新されません。
新規インスタンスをAMIから作成する場合には新しいキーペアを指定できますが、既存インスタンスの修復方法としては不適切です。
🎯 SCS試験で押さえておくべきポイント:
- 盗難・漏洩によるSSHキーの失効には RunCommand を使った
authorized_keys
替えが推奨される対応手順 - EC2の「キーペア」はインスタンス作成時に
/home/ec2-user/.ssh/authorized_keys
に公開鍵を埋め込むための仕組みで、起動後には影響しない - SSM Agent の構成・権限・ネットワーク要件を理解しておくこと(試験頻出)
次の問題もお送りください。引き続き、同様の形式で対応いたします。
以下に【SCS-93】の問題に対する解説を、問題文および選択肢は一切編集せずにそのまま提示し、正誤の理由とSCS試験のポイントを解説します。
■ 問題文
【SCS-93】あるセキュリティチームは、Amazon S3 バケットからオブジェクトを取得するために、Amazon EC2 インスタンスでアプリケーションを開発しています。
S3 バケット内のすべてのオブジェクトは、AWS Key Management Service (AWS KMS) CMK で暗号化されます。
VPC 内で行われるリクエストのすべてのネットワークトラフィックは、AWS インフラストラクチャ内でのみ通信するよう制限されています。
このトラフィックはパブリックインターネットを通過してはなりません。
セキュリティチームが疎通確認を行ったところ、 S3 バケットからオブジェクトを取得できません。
この問題の要因と考えられるものはどれですか? (3つ選んでください。)
■ 選択肢
- EC2 インスタンスにアタッチされた IAM インスタンスプロファイルは、AWS アカウントの S3 バケットに対する s3:ListBucket アクションを許可しません。
- EC2 インスタンスにアタッチされている IAM インスタンスプロファイルでは、AWS アカウントの S3 バケットに対する s3:ListParts アクションが許可されていません。
- S3 バケット内のオブジェクトを暗号化する KMS キーポリシーは、EC2 インスタンスプロファイル ARN への kms:ListKeys アクションを許可しません。
- S3 バケット内のオブジェクトを暗号化する KMS キーポリシーは、EC2 インスタンスプロファイル ARN への kms:Decrypt アクションを許可しません。
- EC2 インスタンスにアタッチされているセキュリティグループには、ポート 443 を介した S3 マネージド プレフィックス リストへのアウトバウンドルールがありません。
- EC2 インスタンスにアタッチされているセキュリティグループに、ポート 443 経由の S3 マネージド プレフィックス リストからのインバウンドルールがありません。
✅ 正解:
1, 4, 5
🔍 解説:
1. IAMインスタンスプロファイルに s3:ListBucket
の許可がない
→ S3バケット内のオブジェクト一覧を取得するために s3:ListBucket
の許可が必要です。これがなければアプリケーションは対象ファイルを探せず、アクセスに失敗します。
4. KMS キーポリシーに kms:Decrypt
の許可がない
→ KMSによる暗号化オブジェクトの復号には kms:Decrypt
権限が必要です。EC2のインスタンスプロファイルがこの許可を持っていないと、S3からオブジェクトの取得はできても復号に失敗してアクセス不能になります。
5. セキュリティグループに S3 プレフィックスリストへのポート 443 アウトバウンドルールがない
→ VPC内から S3 にアクセスするには、**HTTPS(ポート443)でS3のIPレンジ(マネージドプレフィックスリスト)への通信が許可されている必要があります。**セキュリティグループでこれが制限されていると、S3アクセスができません。
❌ 不正解の選択肢の理由:
2. s3:ListParts
の許可がない
→ これはマルチパートアップロードの進行状況確認に使用されるアクションで、オブジェクトの取得には関係ありません。
3. kms:ListKeys
の許可がない
→ キーのリスト取得は不要です。復号処理には kms:Decrypt
のみで十分です。アプリケーションは特定のCMKを指定して使用することが前提です。
6. インバウンドルールにポート 443 がない
→ EC2がクライアントとしてS3にアクセスするため、必要なのはアウトバウンドルールです。インバウンドルールは不要です。
🎯 SCS試験で押さえるべきポイント:
- S3 + KMS 利用時のアクセス制御の2層構造(S3ポリシー or IAMポリシーとKMSポリシーの両方が許可されている必要がある)
- KMSアクセスに必要な最小権限は
kms:Decrypt
- VPC内通信でS3へアクセスするには、インターフェースVPCエンドポイントか、適切なアウトバウンド設定(例:S3のマネージドプレフィックスリストへの443)
- セキュリティグループとネットワークACLの設定は疎通不良の原因になりやすく、試験でも頻出
次の問題もお待ちしています。引き続き同じ形式で丁寧に解説いたします。
■問題文
【SCS-94】ある企業は、AWS Organizationsで複数のAWSアカウントを管理しています。
この企業はAWS CloudFormation StackSetsを利用して、様々なAWSデザインパターンを各環境に展開したいと考えています。
これらのパターンには、Amazon EC2インスタンス、Elastic Load Balancing (ELB) ロードバランサ、Amazon RDSデータベース、Amazon Elastic Kubernetes Service (Amazon EKS) クラスタ、またはAmazon Elastic Container Service (Amazon ECS) クラスタが含まれます。
現在、同社の開発者達は、それぞれが独自のCloudFormationスタックを作成することで、デプロイ速度を向上させることができると考えています。
共有サービスのAWSアカウント内にある中央集権型のCI/CDパイプラインが各CloudFormationスタックを展開します。
同社のセキュリティチームはすでに各サービスの要件を内部基準に従って提供しています。
内部基準に準拠していないリソースが存在する場合、セキュリティチームは適切な対応を行うための通知を受け取る必要があります。
セキュリティチームは、開発者が現在のデプロイ速度を維持するために最適な通知ソリューションを実装する必要があります。
これらの要件を最も効率的に満たすソリューションは何でしょうか?
■選択肢
- Amazon SNSトピックを作成します。セキュリティチームのメールアドレスをSNSトピックに登録します。CI/CDパイプラインのビルドステージの前に、すべてのCloudFormationテンプレートでaws cloudformation validate-template AWS CLIコマンドを実行するカスタムAWS Lambda関数を作成します。問題が見つかった場合、CI/CDパイプラインでSNSトピックに通知を公開します。
- Amazon SNSトピックを作成します。セキュリティチームのメールアドレスをSNSトピックに登録します。各リソース設定のCloudFormation Guardでカスタムルールを作成します。CI/CDパイプラインで、ビルドステージの前に、Dockerイメージを使用してCloudFormationテンプレートでcfn-guardコマンドを実行するように設定します。問題が見つかった場合、CI/CDパイプラインでSNSトピックに通知を公開します。
- Amazon SNSトピックとAmazon SQSキューを作成します。セキュリティチームのメールアドレスをSNSトピックに登録します。共有サービスのAWSアカウントにAmazon S3バケットを作成します。新しいオブジェクトがS3バケットに追加されたときにSQSキューに公開するイベント通知を含めます。開発者に、CloudFormationテンプレートをS3バケットに配置するように要求します。SQSキューの深さに基づいて自動的にスケールするEC2インスタンスを起動します。EC2インスタンスを使用して、テンプレートをスキャンし、問題がない場合はテンプレートをデプロイするようにCloudFormation Guardを設定します。問題が見つかった場合、CI/CDパイプラインでSNSトピックに通知を公開します。
- 開発者が各AWSアカウントでデプロイできる標準のリソースセットを含む中央集権的なCloudFormationスタックセットを作成します。各CloudFormationテンプレートをセキュリティ要件を満たすように設定します。新しいリソースや設定がある場合、CloudFormationテンプレートを更新し、テンプレートをセキュリティチームにレビューのために送信します。レビューが完了したら、新しいCloudFormationスタックを開発者が使用するためのリポジトリに追加します。
■正解の選択肢と解説
正解:2
CloudFormation Guard(cfn-guard
)は、CloudFormationテンプレートに対して事前にセキュリティやコンプライアンスのルールをチェックできるツールです。この選択肢では、カスタムルールによってテンプレートの構成をチェックし、問題があれば通知するようCI/CDに統合されており、スピードとガバナンスのバランスが取れています。
■不正解の選択肢の理由
- 選択肢1:
validate-template
コマンドは構文エラーは検出できますが、ポリシーやリソース構成の適正性(例えばポート開放状況など)までは評価できません。 - 選択肢3:EC2でのスキャンやS3バケット・SQSによるテンプレートの受け渡しは、構成が複雑であり、スケーラビリティと運用コストの面で非効率です。
- 選択肢4:セキュリティチームによる都度レビューを要求しており、即時性が損なわれるため「デプロイ速度の維持」という要件に反します。
■SCS試験で押さえておくべきポイント
- **CloudFormation Guard(cfn-guard)**は、IaC(Infrastructure as Code)のポリシー準拠を検証するための重要ツール。
- **CI/CDとセキュリティの統合(DevSecOps)**はSCS試験の頻出テーマであり、通知や自動チェックの仕組みも問われる。
- validate-templateとcfn-guardの違いを理解すること。
- SNSによる通知設定とその活用方法。
次の問題があれば、続けてどうぞ。
■問題文
【SCS-95】ある会社には、単一の Amazon EC2 インスタンスで実行されるレガシーアプリケーションがあります。
セキュリティ監査では、このアプリケーションがそのコード内で IAM アクセスキーを使用して、同じ AWS アカウントの SAMPLE-BUCKET1 という名前の Amazon S3 バケットにアクセスしていることを確認しました。
このアクセスキーのペアには、対象の S3 バケットのみに対する、すべてのオブジェクトへの s3:GetObject 権限があります。
このアプリケーションが Amazon EC2 から他の AWS リソースにアクセスするための会社のセキュリティポリシーに準拠していないため、会社はアプリケーションをオフラインにしました。
セキュリティエンジニアは、AWS CloudTrail がすべての AWS リージョンでオンになっていることを検証します。
CloudTrail は、SAMPLE-BUCKET2 という名前の S3 バケットにログを送信しています。
この S3 バケットは、SAMPLE-BUCKET1 と同じ AWS アカウントにあります。
ただし、CloudTrail は Amazon CloudWatch Logs にログを送信するように設定されていません。
同社は、SAMPLE-BUCKET1 内のオブジェクトが過去 60 日間に IAM アクセスキーでアクセスされたかどうかを確認する必要があります。
オブジェクトがアクセスされた場合、会社は、テキストファイル (.txt 拡張子) であるオブジェクトに個人を特定できる情報 (PII) が含まれているかどうかを確認したいと考えています。
セキュリティエンジニアはこの情報を収集するためにどの手順の組み合わせを採用するべきですか?(2つ選んでください。)
■選択肢
- SAMPLE-BUCKET1 内の、PII を含み、アクセスキーで利用可能なオブジェクトを識別するように Amazon Macie を設定します。
- Amazon CloudWatch Logs Insights を使用して、SAMPLE-BUCKET1 内の、PII を含み、アクセスキーで利用可能なオブジェクトを特定します。
- Amazon OpenSearch Service (Amazon Elasticsearch Service) を使用して、SAMPLE-BUCKET2 の CloudTrail ログをクエリし、アクセスキーを使用して PII を含むオブジェクトにアクセスした API 呼び出しを探します。
- Amazon Athena を使用して、SAMPLE-BUCKET2 の CloudTrail ログをクエリし、アクセスキーを使用して PII を含むオブジェクトにアクセスした API 呼び出しを確認します。
- AWS Identity and Access Management Access Analyzer を使用して、アクセスキーを使用して SAMPLE-BUCKET1 の PII を含むオブジェクトにアクセスした API 呼び出しを特定します。
■正解の選択肢と解説
正解:1, 4
- 選択肢 1:Amazon Macie は、S3バケット内のPIIデータをスキャンして検出するためのマネージドサービス。対象ファイルが
.txt
形式であることからも、Macieの機能でスキャン・識別可能。 - 選択肢 4:Amazon Athena は、S3に保存されたCloudTrailログに対してSQLクエリを実行できる。これにより、過去にどのアクセスキーがどのオブジェクトにアクセスしたかを確認できる。
■不正解の選択肢の理由
- 選択肢 2:CloudWatch Logs Insights は CloudWatch Logs にログを出力している前提が必要だが、設問により CloudWatch Logs 出力は無効とされている。
- 選択肢 3:OpenSearch はクエリ手段としては可能だが、本設問ではAthenaの方が簡便かつ直接的で、必要なセットアップが少ないため非効率。
- 選択肢 5:IAM Access Analyzer はポリシーの共有設定やアクセス可能性を可視化するもので、過去のAPI呼び出し履歴を分析する用途では使用できない。
■SCS試験で押さえておくべきポイント
- CloudTrailログの分析にはAthenaを用いることが推奨される。S3に出力されたJSON形式のログをSQLで分析可能。
- Amazon MacieはS3内のPII検出に最適なサービス。特に
.txt
や.csv
ファイルに対するスキャンが効果的。 - CloudWatch LogsとCloudWatch Logs Insightsの関係を理解し、「CloudTrailがLogsに連携されているか」が前提条件になる。
- Access Analyzerの用途(静的分析)とCloudTrailの用途(動的分析)の違いを押さえること。
次の問題も準備できましたら、どうぞお送りください。
■問題文
【SCS-96】ある企業のセキュリティエンジニアは、特定の AWS Lambda 関数がいつ呼び出されたかをロギングする必要があります。
このログには、関数を呼び出した AWS プリンシパルが含まれている必要があります。
外部ソースと会社の開発者は、Python、Node.js、Golang などのさまざまな言語を使用して Lambda 関数のコードを提供します。
セキュリティエンジニアは、AWS アカウントのデフォルト設定で AWS CloudTrail 証跡を作成しました。
これらの要件を最も少ない運用オーバーヘッドで満たすソリューションはどれですか?
■選択肢
- Lambda 関数コードを更新して、Lambda コンテキストから AWS プリンシパルを抽出し、監視対象の関数が呼び出されたときにログ エントリを書き込みます。
- Amazon EventBridge (Amazon CloudWatch Events) を使用して、監視する関数のフィルターを使用して lambda:invoke イベントのルールとカスタム パターンを設定します。別の Lambda 関数を呼び出して、EventBridge (CloudWatch Events) データを Amazon CloudWatch Logs に書き込みます。
- 既存の CloudTrail 証跡を変更します。Lambda 関数をデータ イベントとして監視するように、既存の CloudTrail 証跡を設定します。
- 関数が呼び出されたときに Lambda コンテキストを含むログ イベントを CloudTrail に提供する Lambda レイヤーを作成します。監視する必要があるすべての Lambda 関数にこのレイヤーをアタッチします。
■正解の選択肢と解説
正解:3
- 選択肢 3:CloudTrailのデータイベントにLambdaを追加することで、Lambda関数の実行履歴をAWSプリンシパル情報付きで取得可能。既存のCloudTrail証跡の設定を変更するだけなので、運用負荷が非常に少ないのが利点。
■不正解の選択肢の理由
- 選択肢 1:Lambda関数のコード編集が必要で、全言語共通の実装が難しい。管理コストが高く、関数ごとの実装ミスのリスクもある。
- 選択肢 2:EventBridgeでのログ収集は可能だが、別途Lambda関数を用意してログに書き出す必要があり、運用オーバーヘッドが高い。CloudTrailを活用すればより簡潔。
- 選択肢 4:Lambdaレイヤーを全関数に適用するのは手間がかかり、標準化されていないカスタム実装に依存するため保守性も低い。
■SCS試験で押さえておくべきポイント
- CloudTrailのデータイベントはLambda関数の呼び出し(Invoke)も記録できる。明示的に有効化しないと記録されない点に注意。
- 最小運用オーバーヘッド=既存機能を拡張利用するのが基本方針。CloudTrailはセキュリティ監査や可観測性において第一の選択肢。
- EventBridgeやLambdaコード側でのログ記録は柔軟性が高いが、標準ソリューションよりオーバーヘッドが高くなりがち。
次の問題も引き続きお送りください。
■問題文
【SCS-97】ある企業では、AWS Systems ManagerのパラメータストアがAWS Lambda関数で使用されるデータベースパスワードを格納するために使用されています。
これは機密データであるため、パラメータはSecureString型として格納され、IAMを介してアクセスできるAWS KMSキーで保護されています。
関数が実行されると、このパラメータはアクセス拒否エラー結果となって取得できません。
次のどのアクションがアクセス拒否エラーを解決しますか?
■選択肢
- KMS キーポリシーの ssm.amazonaws.com プリンシパルを更新して、kms.Decrypt.Decrypt を許可します。復号化します。
- VPCで関数を起動するようにLambdaの設定を更新します。
- Lambda関数が使用するロールにポリシーを追加し、kms.Decryptを許可します。KMS キーに対して復号化します。
- Lambda関数が使用するIAMロールに、lambda.amazonaws.comを信頼できるエンティティとして追加してください。
■正解の選択肢と解説
正解:3
Lambda関数がKMSで暗号化されたSSM Parameter StoreのSecureStringパラメータにアクセスするには、関数のIAM実行ロールにKMSキーに対するkms:Decrypt
権限が必要です。この権限が不足していると、復号化できずアクセス拒否が発生します。
■不正解の選択肢の理由
- 選択肢 1:KMSキーポリシーにssm.amazonaws.comを追加しても、Lambda関数が復号化できるようにはなりません。アクセスするのはLambdaの実行ロールであり、ssmサービスではありません。
- 選択肢 2:VPC設定はSSMやKMSへのアクセスとは無関係です。アクセス拒否はネットワークの問題ではなく、IAM/KMSの権限の問題です。
- 選択肢 4:Lambda関数の実行ロールに対しての信頼ポリシー(信頼できるエンティティ)は通常
lambda.amazonaws.com
で正しく設定されていますが、これは関数の起動に関係するだけで、KMSアクセスとは関係ありません。
■SCS試験で押さえておくべきポイント
- SecureStringパラメータを使う場合はKMSによる暗号化が行われるため、復号には
kms:Decrypt
が必須。 - Lambdaが外部サービス(SSMやKMS)を利用する場合、その実行ロールに必要な権限を付与すること。
- KMSキーに対するアクセス制御はIAMポリシーとKMSキーポリシーの両方で制御可能だが、通常はIAM側に
kms:Decrypt
を許可することで対応。
次の問題もどうぞ。
■問題文
【SCS-98】あるセキュリティチームは、監査の要件を満たすために一元的に管理できるログソリューションを設計しています。
このソリューションは、Amazon CloudWatchとAWS CloudTrailから、セキュリティチームによって管理されているアカウントにログを集約する必要があります。
この方法は、AWS Organizationsで組織全体にわたって使用可能でなければなりません。
どの解決策を取ることで、最も効率的な運用かつこれらの要件を満たすことができますか?
■選択肢
- 各AWSアカウントで、セキュリティチームのアカウント内にあるAmazon S3を宛先とするAmazon Kinesis Data Firehose配信ストリームを作成します。各AWSアカウントで、Amazon CloudWatch Logsのロググループごとに、同じアカウントのKinesis Data Firehose配信ストリームへのサブスクリプションを作成します。組織のために、Amazon S3を宛先とするCloudTrailの証跡を作成します。
- セキュリティチームのアカウントで、同じアカウント内のAmazon S3を宛先とするAmazon Kinesis Data Firehose配信ストリームを作成します。各AWSアカウントのAmazon CloudWatch Logsロググループごとに、セキュリティチームのアカウントにあるKinesis Data Firehose配信ストリームのサブスクリプションを作成します。各AWSアカウントについて、Amazon S3を宛先とするCloudTrail証跡を作成します。
- 各AWSアカウントで、セキュリティチームのアカウントのAmazon S3を宛先とするAmazon Kinesisデータストリームを作成します。各AWSアカウントのAmazon CloudWatch Logsのロググループごとに、同じアカウントのKinesisデータストリームへのサブスクリプションを作成します。組織のために、Amazon S3を宛先とするCloudTrailトレイルを作成します。
- セキュリティチームのアカウントで、同じアカウント内のAmazon S3を宛先とするAmazon Kinesisデータストリームを作成します。各AWSアカウントのAmazon CloudWatch Logsロググループごとに、セキュリティチームのアカウントのKinesisデータストリームへのサブスクリプションを作成します。各AWSアカウントについて、Amazon S3を宛先とするCloudTrail証跡を作成します。
■正解の選択肢と解説
正解:2
この選択肢は、CloudWatch Logs と CloudTrail のログを一元管理されたセキュリティアカウントに効率的に集約するためのベストプラクティスに従っています。
- CloudWatch Logs: 各アカウントからセキュリティチームのアカウントにある Kinesis Data Firehose に直接サブスクリプションを作成することで、ログデータを一元的に転送できます。Firehoseは管理が簡単で、直接S3にデータを配信できます。
- CloudTrail: 各アカウントにS3宛のトレイルを作成することで、組織内すべてのログをセキュリティチームのS3バケットに保存できます。CloudTrailは複数アカウントのログを1バケットに集約可能です。
■不正解の選択肢の理由
- 選択肢 1:Kinesis Data Firehoseを各アカウントに作成する必要があり、運用コスト・管理工数が高い。セキュリティチームのアカウントで一元管理できない。
- 選択肢 3:Kinesis Data StreamはFirehoseより運用が重く、バッファやコンシューマーの管理が必要。かつCloudWatch Logsサブスクリプションとの連携はFirehoseの方が適切。
- 選択肢 4:Kinesis Data Streamを利用しており、Firehoseと異なりS3への配信が自動ではないため、Lambda等のコンシューマー実装が必要で運用負荷が高い。
■SCS試験で押さえておくべきポイント
- CloudWatch Logsの集約には、Kinesis Data Firehose + S3構成がシンプルでおすすめ。
- CloudTrailは組織単位(AWS Organizations)でログの集約が可能であり、組織全体のS3バケットに集約するよう設計する。
- 一元管理の設計では「集約先を中央のセキュリティアカウントに置く」「送信側はサブスクリプションやトレイルを使って送る」という構造が基本。
次の問題もどうぞ。
■問題文
【SCS-99】ある会社のセキュリティソリューションを分析している間、セキュリティエンジニアはAWSアカウントのルートユーザを保護したいと考えています。
アカウントの最も高いレベルのセキュリティを提供する為にセキュリティエンジニアは何をする必要がありますか。
■選択肢
- AWSアカウントに管理者権限を持つ新しいIAMユーザーを作成します。AWSアカウントのrootユーザーのパスワードを削除します。
- AWSアカウントで管理者権限を持つ新しいIAMユーザーを作成します。既存のIAMユーザーの権限を変更します。
- AWSアカウントルートユーザーのアクセスキーを交換します。AWSアカウントルートユーザーのパスワードを削除します。
- AWSアカウントで管理者権限を持つ新しいIAMユーザーを作成します。AWSアカウントのルートユーザーに対して多要素認証を有効にします。
■正解の選択肢と解説
正解:4
AWSにおいて、ルートユーザーは非常に強力な権限を持つため、通常業務では使用せず、代わりにIAMユーザーを用いることが推奨されます。また、ルートユーザーには多要素認証(MFA)を必ず有効化することで、不正アクセスに対するセキュリティを強化する必要があります。
選択肢4は、このベストプラクティスに沿った内容です。
■不正解の選択肢の理由
- 選択肢1:ルートユーザーのパスワードは削除できません。誤った操作であり、無効です。
- 選択肢2:既存のIAMユーザーの権限変更は関係ありません。ルートユーザーのセキュリティ向上策として不十分です。
- 選択肢3:アクセスキーやパスワードを「削除」や「交換」しても、根本的な対策(MFAの有効化)とはなりません。ルートユーザーの使用を最小限に抑え、MFAを有効にすることが重要です。
■SCS試験で押さえておくべきポイント
- ルートユーザーはMFAの有効化が必須(セキュリティの基本対策)。
- ルートユーザーは極力使用せず、IAMユーザーに権限を委譲。
- ルートユーザーでしかできない操作(例:ルートのメール変更、アカウントの閉鎖など)を除き、普段は使用しない。
- ルートアカウントのアクセスキーは作成しない、もしくは不要なら削除する。
次の問題もどうぞ。
■問題文
【SCS-100】開設されたAWSアカウントのルートユーザーを保護するための最も安全な方法は何ですか(2つを選択します)。
■選択肢
- AWS Management Consoleの代わりに、AWSアカウントのルートユーザーのアクセスキーを使用する。
- AdministratorAccess管理ポリシーが付与されたAWS IAMユーザーに対して多要素認証を有効にする。
- AWSアカウントのルートユーザーに対して多要素認証を有効にする。
- AWS KMSを使用して、すべてのAWSアカウントのルートユーザーとAWS IAMのアクセスキーを暗号化し、自動ローテーションを30日に設定する
- AWSアカウントのルートユーザーのアクセスキーは作成せず、AWS IAMユーザーを作成する。
■正解の選択肢と解説
正解:3 と 5
- 選択肢3:ルートユーザーには多要素認証(MFA)を必ず有効にすべきです。ルートアカウントは特権が強いため、MFAによりセキュリティを強化することがAWSの推奨ベストプラクティスです。
- 選択肢5:ルートユーザーにはアクセスキーを作成せず、通常の作業にはIAMユーザーを用いるのが推奨されています。これにより、誤ってルート権限を行使してしまうリスクを減らせます。
■不正解の選択肢の理由
- 選択肢1:ルートユーザーのアクセスキー使用は、最も避けるべきセキュリティリスクです。むしろ作成しないことが推奨されます。
- 選択肢2:IAMユーザーへのMFA有効化は良いことですが、この設問の主題は「ルートユーザーの保護」であり、焦点がずれています。
- 選択肢4:KMSを用いたアクセスキーの暗号化やローテーションはサポートされておらず、技術的にも実現不可能です(アクセスキーはKMSで暗号化されません)。
■SCS試験で押さえておくべきポイント
- ルートユーザーの保護には「アクセスキーを作成しない」「MFAを有効にする」の2点が最重要。
- 通常の操作はIAMユーザーやIAMロールを通して行う。
- セキュリティベストプラクティスを問う問題では、「原則としてルートユーザーを使わない」がキーワード。
- IAMユーザーやロールには最小権限の原則(least privilege)を適用。
次の問題もどうぞ。