Q88 — AWS SAA-C03 第16章

第 88/100 問 | ← 第16章

Q1288. ある企業が、顧客に取引のインサイトを提供する株式取引アプリケーションを設計しています。この企業は、過去180日以上アプリケーションにログインしていない非アクティブなユーザーのアクセス権を無効化するソリューションを必要としています。この要件を満たすソリューションはどれですか?

正解: B. Amazon Cognitoを使用してユーザーを認証します。AWS CloudTrailイベントから取得したユーザーのログイン日時をAmazon DynamoDBに保存します。Amazon EventBridgeイベントをスケジュールして、毎日AWS Lambda関数を呼び出し、最終ログイン日が過去180日を超えるユーザーを無効化します。

解説

この要件を満たす正しいソリューションは、過去180日以上ログインしていない非アクティブユーザーのアクセス権を、運用オーバーヘッドを最小限に抑えつつ、信頼性の高い方法で自動的に無効化できるものでなければなりません。各選択肢を検討します。 正解:B。Amazon Cognitoを使用してユーザーを認証します。AWS CloudTrailイベントから取得したユーザーのログイン日時をAmazon DynamoDBに保存します。Amazon EventBridgeイベントをスケジュールして、毎日AWS Lambda関数を呼び出し、最終ログイン日が過去180日を超えるユーザーを無効化します。 なぜ選択肢Bが最適か: ・認証とログ記録におけるネイティブなAWS統合:Amazon Cognitoは、AWS上でユーザー認証を行うための最適なサービスであり(OAuth、OIDC、SAMLをサポート)、AWS CloudTrailはCognito API呼び出し(例:AdminInitiateAuth)を自動記録し、そこから最終ログインタイムスタンプを抽出できます。 ・効率的かつスケーラブルなストレージ:Amazon DynamoDBはサーバーレスのNoSQLデータベースであり、自動スケーリングに対応し、最終ログイン時刻の高速クエリをサポートします。 ・EventBridgeおよびLambdaによる自動無効化:Amazon EventBridgeは毎日Lambda関数を起動し、DynamoDB内の非アクティブユーザーをスキャンできます。LambdaはCognitoのAdminDisableUser APIを呼び出してアクセスを無効化できます。手動介入は不要(完全自動化)です。 ・運用オーバーヘッドが最小:Glue、Athena、カスタムクローラーなどは不要(他の選択肢A/C/Dとは対照的)。コスト効率も高く(DynamoDB+Lambda+EventBridgeはサーバーレスで従量課金制)。 他の選択肢が不適切な理由: A:RDSはスケーリング、パッチ適用、バックアップなどの手動管理が必要(DynamoDBよりオーバーヘッドが高い)。Glue DataBrewはデータ変換向けであり、ユーザー無効化のような定期タスクには過剰(このユースケースには不適)。また、Cognitoとの無効化連携はネイティブではなく、カスタムロジックが必要です。 C:DocumentDBのTTLはドキュメントを自動削除しますが、Lambdaをトリガーしません(削除を検知する外部プロセスが必要)。Glueクローラーはリアルタイムまたは毎日のチェックには遅く、高コストです。DynamoDBをEventBridge+Lambdaで直接クエリする方が信頼性・効率性ともに優れます。 D:KerberosはWebベースの株式取引アプリケーションには不向き(Cognito/OIDCが推奨)。S3+Glue+Athenaは分析用途であり、リアルタイムのユーザー管理には不適(レイテンシが高く、コストも大きい)。S3内のデータを削除してもCognito上のアクセス権は無効化されず、別途API呼び出しが必要です。 主な要件と比較: ・非アクティブユーザーの自動無効化:B(EventBridge+Lambda+Cognito API)/A(Glue DataBrew)、C(信頼性の低いTTL)、D(直接的な無効化なし) ・ログインメタデータのスケーラブルかつ低レイテンシーなストレージ:B(DynamoDB)/A(RDS)、C(DocumentDB+Glue)、D(S3+Athena) ・ネイティブなAWS統合(カスタム解析不要):B(CloudTrail+Cognito)/A(OIDC+RDS)、C(DocumentDB TTL)、D(Kerberos+S3) ・最小限の運用オーバーヘッド:B(完全サーバーレス)/A(RDS管理)、C(Glueクローラー)、D(S3+Athena) 結論:選択肢Bは唯一、以下のすべてを満たすソリューションです。 ・認証にCognitoを使用(AWSアプリケーションにおけるベストプラクティス) ・最終ログイン時刻を効率的に追跡(CloudTrail+DynamoDB) ・無効化を自動化(EventBridge+Lambda) ・保守作業が最小限(サーバーレスコンポーネントのみ) 最終的な正解:B