AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト – アソシエイト
問題文と選択肢
セキュリティチームの要求に応えるソリューションはどれですか。
- アクセスキーを Amazon S3 バケットに格納し、起動時にインスタンスからアクセスキーを取得する。
- インスタンスユーザーデータを介してアクセスキーをインスタンスに渡す。
- プライベートサブネット内で起動されたキーサーバーからアクセスキーを取得する。
- そのテーブルにアクセスする権限を持つ IAM ロールを作成し、そのロールを使用してすべてのインスタンスを起動する。
A. アクセスキーを Amazon S3 バケットに格納し、起動時にインスタンスからアクセスキーを取得する。
アクセスキーの保管場所を AMI 内のテキストファイルから Amazon S3 へ移しただけで、長期的なアクセスキーを発行・配布・ローテーションし続ける問題はそのまま残る。
さらに「S3 からキーを取得するための認証情報」が新たに必要になり、鶏と卵の問題に陥る(結局その認証情報を渡す手段として IAM ロールが要る)。
バケットポリシーの設定ミスでキーが流出するリスクも増えるだけで、セキュリティチームの要求への回答にならない。
B. インスタンスユーザーデータを介してアクセスキーをインスタンスに渡す。
インスタンスユーザーデータは暗号化されず、インスタンスメタデータや API(DescribeInstanceAttribute)から平文で参照できる。AWS 公式も「ユーザーデータに機密情報や認証情報を含めないこと」と明記している。
インスタンスにログインできる利用者なら誰でもキーを取り出せてしまうため、AMI 内のファイルに置く現状よりむしろ悪化しかねない。
C. プライベートサブネット内で起動されたキーサーバーからアクセスキーを取得する。
プライベートサブネットに置くことでネットワーク的には隠れるが、長期的なアクセスキーを使い続ける構図は何も変わらない。
加えてキーサーバー自体の構築・冗長化・パッチ適用・アクセス制御という運用負荷が丸ごと増える。
AWS ではこの役割をマネージドな IAM ロールが担うため、自前サーバーを立てる選択は取らない。
D. そのテーブルにアクセスする権限を持つ IAM ロールを作成し、そのロールを使用してすべてのインスタンスを起動する。
IAM ロールをインスタンスプロファイルとして EC2 に関連付ければ、一時的なセキュリティ認証情報がインスタンスメタデータ経由で自動配布され、有効期限前に自動ローテーションされる。
AWS SDK / CLI はこの認証情報を自動的に取得するため、アプリケーションのコードにも AMI にもキーを一切保存する必要がなくなる。
「長期の認証情報を排除する」という AWS のセキュリティベストプラクティスに合致し、DynamoDB テーブルへの最小権限も IAM ポリシーで表現できる、唯一の正解。
構成図
IAM ロール(DynamoDB への権限) │ インスタンスプロファイルとして関連付け ▼ Amazon EC2(AMI から作成) ──一時的な認証情報──▶ Amazon DynamoDB
EC2 に権限を渡すなら IAM ロール一択。「キーをどこに置くか」を考え始めたら、それ自体が誤り。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| アクセスキーをテキストファイルに格納している(現状の問題点) | 長期的なアクセスキーを保管すること自体がリスク。保管場所を変える(S3・キーサーバー)だけでは解決しない →選択肢(A・C)を消す |
| セキュリティチームが「よりセキュアなソリューション」を要求 | ユーザーデータは暗号化されず平文で参照できるため、シークレットの受け渡しには使えない →選択肢(B)を消す |
| AMI から作成されたインスタンスから DynamoDB テーブルにアクセス | EC2 上のアプリへの権限付与は IAM ロール+インスタンスプロファイルが定石。認証情報は自動配布・自動ローテーション →選択肢(D)が正解 |
| AMI から複数のインスタンスを起動する(台数が増える前提) | キーを AMI に焼き込む方式はローテーションのたびに AMI を作り直すことになる。ロールなら起動時に指定するだけ →選択肢(D)が正解 |
ひっかけポイント
- 「Amazon S3 に格納」は保管場所がマネージドになるため安全そうに見えるが、キーの置き場所を変えただけ。しかもその S3 を読むための認証情報が別途必要になり、問題が一段ずれるだけ
- ユーザーデータはコンソールや API から中身を平文で参照できる。起動時のスクリプト実行用であって、シークレット配布用の仕組みではない
- 「プライベートサブネット」というキーワードでセキュアに感じさせるのが選択肢 C の罠。ネットワークを隠しても、長期キーを使い続けている事実は変わらない
- 本問は「キーをどこに置くか」を選ばせる問題に見えるが、正解は「キーを置かない」。設問がキーの保管方法を並べてきたら、まず IAM ロールを探す
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「AWS Lambda から DynamoDB にアクセスしたい」 | Lambda の実行ロールに権限を付与する(考え方は同じ「ロール」)。 |
| 「DB のパスワードなどどうしても保存が必要な秘密情報がある」 | AWS Secrets Manager(自動ローテーション)や SSM パラメータストアが正解軸に。 |
| 「オンプレミスのサーバーから AWS リソースにアクセスしたい」 | IAM Roles Anywhere や、最小権限の IAM ユーザー+アクセスキーが登場する。 |
| 「別の AWS アカウントのリソースにアクセスしたい」 | クロスアカウントのロール引き受け(AssumeRole)が正解軸に。 |
セキュリティチームの要求に応えるソリューションはどれですか。
- アクセスキーを Amazon S3 バケットに格納し、起動時にインスタンスからアクセスキーを取得する。
- インスタンスユーザーデータを介してアクセスキーをインスタンスに渡す。
- プライベートサブネット内で起動されたキーサーバーからアクセスキーを取得する。
- そのテーブルにアクセスする権限を持つ IAM ロールを作成し、そのロールを使用してすべてのインスタンスを起動する。
次の問題
会員機能
お役立ち情報
- プレミアム会員のご紹介
- 「徹底解説」のご紹介
- 会員機能のご紹介
- おすすめの勉強方法
- 試験概要
- 資格を取得するメリット
- 合格率や難易度と勉強時間の目安
- AWSサービスの解説
- AWS認定資格の種類・対象者・受験料・合格ライン
- スマホのホーム画面に登録する方法
姉妹サイト
- CLF:AWS 認定クラウドプラクティショナー
- SAA:AWS 認定ソリューションアーキテクト-アソシエイト
- AIF:AWS 認定AIプラクティショナー
- SOA:AWS 認定CloudOpsエンジニア-アソシエイト
- DVA:AWS 認定デベロッパー-アソシエイト
- MLA:AWS 認定機械学習エンジニア-アソシエイト
- SAP:AWS 認定ソリューションアーキテクト-プロフェッショナル
- AZ-900:Microsoft Azure Fundamentals
- AI-900:Microsoft Azure AI Fundamentals