AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト – アソシエイト

正解 B問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
アプリケーションによってログが Amazon S3 バケットに格納されています。あるユーザーが、トラブルシューティングのため、このログを 1 か月間保持し、その後は自動的に消去したいと考えています。運用上の負荷は最小限に抑える必要があります。
この要件を満たすには、どの機能を使用すればよいですか。
  • Amazon S3 バケットに対するバケットポリシーを追加する。
  • Amazon S3 バケットに対するライフサイクル設定ルールを構成する。
  • Amazon S3 バケットに対する IAM ポリシーを作成する。
  • Amazon S3 バケットに対して CORS を有効化する。
解説 頻出度★★★★★
この問題は、「1 か月保持 × その後の自動削除 × 運用負荷最小」の要件で、S3 ライフサイクル設定の有効期限 (Expiration) アクションを選べるかがポイント。「アクセス制御の機能」と「オブジェクトの寿命を管理する機能」を切り分けることが本質

A. Amazon S3 バケットに対するバケットポリシーを追加する。

バケットポリシーは、バケットやその中のオブジェクトに対して誰がどの操作を許可・拒否されるかを定義するアクセス制御の仕組みです(リソースベースのポリシー)。
オブジェクトに有効期限を設定して自動削除する機能は一切持たないため、「1 か月後に自動消去」という要件を満たせません。

正解

B. Amazon S3 バケットに対するライフサイクル設定ルールを構成する。

S3 ライフサイクル設定に有効期限 (Expiration) アクションを定義すれば、「オブジェクト作成から 30 日後に削除する」というルールを宣言的に設定でき、S3 側が自動的にオブジェクトを削除します。
プレフィックスやタグで対象を絞り込むこともでき、削除用のスクリプトや Lambda を自作・運用する必要がない=運用上の負荷が最小
「一定期間後に削除する/別のストレージクラスへ移行する」という要件の定番解であり、これが正解です。

C. Amazon S3 バケットに対する IAM ポリシーを作成する。

IAM ポリシーは、IAM ユーザーやロールといったプリンシパルに与える許可を定義するもので、これもアクセス制御の機能です。
「誰が S3 を操作できるか」は制御できますが、オブジェクトの保持期間や削除タイミングは制御できません。バケットポリシーと同じ理由で不適です。

D. Amazon S3 バケットに対して CORS を有効化する。

CORS (Cross-Origin Resource Sharing) は、別オリジン(ドメイン)の Web ページから S3 上のリソースへブラウザ経由でアクセスすることを許可する設定です。
ブラウザの同一オリジンポリシーに対応するための機能であり、ログの保持期間や自動削除とはまったく無関係。本問では明らかに場違いな選択肢です。

これだけ覚える(記憶フック)
S3 で「◯日後に消す・移す」はライフサイクル設定一択。ポリシーは「誰が触れるか」であって「いつ消えるか」ではない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
ログを 1 か月間だけ保持したい 期間ベースでオブジェクトの寿命を扱えるのは S3 ライフサイクル設定だけ
→選択肢(B)は候補
保持期間の経過後に自動的に消去したい ライフサイクルの有効期限 (Expiration) アクションで「N 日後に削除」を宣言的に設定できる
→選択肢(B)が正解
運用上の負荷は最小限に抑える 削除用のスクリプトや Lambda を自作せずに済むマネージド機能を選ぶ
→選択肢(B)は候補
バケットポリシー / IAM ポリシーの役割 どちらも「誰が何をできるか」を決めるアクセス制御で、オブジェクトの削除時期を制御する能力はない
→選択肢(A・C)を消す
CORS の役割 クロスオリジンのブラウザアクセス許可であり、ライフサイクル管理とは無関係
→選択肢(D)を消す
ひっかけポイント
  • バケットポリシーと IAM ポリシーが2 つ並んでいるので「どちらかが正解では」と迷いやすいが、両方とも同じ理由(有効期限の機能がない)で誤り。ポリシー同士で比較しても答えは出ない
  • ポリシー」という語感から保持ポリシー(リテンション)を連想しがちだが、S3 でオブジェクトの保持・削除を担うのはライフサイクル設定という別機能
  • CORS はブラウザからのクロスオリジンアクセス用。ログの保持と結びつく余地がなく、即座に消せるダミー選択肢
  • ライフサイクルの有効期限は日単位で指定する(1 か月=30 日など)。時間・分単位の指定はできないため、「数時間で消したい」といった要件には別解が必要
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「30 日後に削除ではなく低コストなストレージへ移動したい」 同じライフサイクル設定でも移行 (Transition) アクション(S3 Glacier 系など)が正解軸に。
「アクセスパターンが読めないので自動で最適なクラスに移してほしい S3 Intelligent-Tiering が正解軸に変わる。
「コンプライアンス要件で一定期間は誰も削除できないようにしたい」 S3 オブジェクトロック(WORM)が正解に。「自動で消す」と「消させない」は別機能。
特定の IP アドレスからのみバケットにアクセスさせたい」 バケットポリシーが正解軸に浮上する(本問では誤答だった選択肢)。
「オブジェクト削除時に通知を受け取り、独自処理を実行したい」 S3 イベント通知+Lambda / SNS / SQS の構成が正解軸に。
関連サービスの解説 Amazon Simple Storage Service (Amazon S3)
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 87%
No.8 解説
アプリケーションによってログが Amazon S3 バケットに格納されています。あるユーザーが、トラブルシューティングのため、このログを 1 か月間保持し、その後は自動的に消去したいと考えています。運用上の負荷は最小限に抑える必要があります。
この要件を満たすには、どの機能を使用すればよいですか。
  • Amazon S3 バケットに対するバケットポリシーを追加する。
  • Amazon S3 バケットに対するライフサイクル設定ルールを構成する。
  • Amazon S3 バケットに対する IAM ポリシーを作成する。
  • Amazon S3 バケットに対して CORS を有効化する。

(会員限定)当問題の評価をお願いします。改善に活用します。