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

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

正解 A問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業は、自社データセンターにある 20 台の Linux 仮想マシンを、Amazon ECS Anywhere の外部インスタンスとして 1 つの Amazon ECS クラスターに登録することを決めました。セキュリティチームは、有効期限のない IAM アクセスキーを各仮想マシンのファイルシステムに保存することを禁止しています。運用チームは、20 台すべてに対して同じ手順を繰り返すだけで登録が完了し、認証情報の更新も AWS 側に任せられる方式を求めています。

これらの要件を満たす手順はどれですか。
  • Amazon ECS Anywhere 用の IAM ロールを作成し、そのロールを指定して AWS Systems Manager のアクティベーションを作成する。発行されたアクティベーション ID とアクティベーションコードを指定して、各仮想マシンで ECS Anywhere のインストールスクリプトを実行する
  • 仮想マシンごとに IAM ユーザーを作成してアクセスキーを発行し、そのキーを各仮想マシンの /etc/ecs/ecs.config に記述してから Amazon ECS コンテナエージェントを起動する
  • Amazon ECS Anywhere 用の IAM ロールを EC2 インスタンスプロファイルとして各仮想マシンにアタッチし、Amazon ECS コンテナエージェントだけをインストールしてクラスター名を設定する
  • AWS Direct Connect を敷設して各仮想マシンを VPC のサブネットに参加させ、awsvpc ネットワークモードのタスク定義を使って各仮想マシンを Amazon ECS クラスターへ登録する
解説 頻出度★★★★★
この問題は、「オンプレミスの仮想マシン × 有効期限のないアクセスキー禁止 × 20 台へ同一手順」の要件で、AWS Systems Manager のアクティベーションと IAM ロールを使う ECS Anywhere の標準登録手順を選べるかがポイント
正解

A. Amazon ECS Anywhere 用の IAM ロールを作成し、そのロールを指定して AWS Systems Manager のアクティベーションを作成する。発行されたアクティベーション ID とアクティベーションコードを指定して、各仮想マシンで ECS Anywhere のインストールスクリプトを実行する

ECS Anywhere の外部インスタンス登録は、Systems Manager のアクティベーション(ハイブリッドアクティベーション)を作成し、そこで指定した IAM ロールの権限を各仮想マシンに引き継がせるのが正式な手順です。
発行されたアクティベーション ID とアクティベーションコードを ecs-anywhere-install.sh に渡すと、SSM Agent と Amazon ECS コンテナエージェントが構成され、仮想マシンはマネージドインスタンスとして一時的な認証情報を自動で受け取り、AWS 側でローテーションされます。
ファイルシステムに長期のアクセスキーを置く必要がなく、20 台すべてに同じアクティベーション ID とコードで同一コマンドを流すだけで済むため、セキュリティチームと運用チームの両方の要件を満たす唯一の選択肢です。

B. 仮想マシンごとに IAM ユーザーを作成してアクセスキーを発行し、そのキーを各仮想マシンの /etc/ecs/ecs.config に記述してから Amazon ECS コンテナエージェントを起動する

IAM ユーザーのアクセスキーは有効期限のない長期認証情報であり、それを /etc/ecs/ecs.config に書くことは「有効期限のないアクセスキーをファイルシステムに保存しない」という禁止事項に正面から反します。
さらに 20 個の IAM ユーザーとキーを個別に発行・配布・ローテーションし続ける運用が発生し、「認証情報の更新を AWS 側に任せる」要件も満たせません。
設定として書けてしまう分もっともらしく見えますが、この問題では即座に消せる選択肢です。

C. Amazon ECS Anywhere 用の IAM ロールを EC2 インスタンスプロファイルとして各仮想マシンにアタッチし、Amazon ECS コンテナエージェントだけをインストールしてクラスター名を設定する

インスタンスプロファイルは Amazon EC2 インスタンスに IAM ロールを渡すための仕組みで、自社データセンターの仮想マシンにアタッチすることはできません。
また外部インスタンスは、SSM のアクティベーションを通じてマネージドインスタンスとして登録されて初めて ECS クラスターのメンバーになれるため、コンテナエージェントを入れてクラスター名を設定するだけでは登録が完了しません。
「ロールを使う」点だけは正しい方向ですが、渡し方が成立していないため不適です。

D. AWS Direct Connect を敷設して各仮想マシンを VPC のサブネットに参加させ、awsvpc ネットワークモードのタスク定義を使って各仮想マシンを Amazon ECS クラスターへ登録する

AWS Direct Connect はオンプレミスと AWS の間の専用線接続であり、オンプレミスの仮想マシンが VPC のサブネットのメンバーになるわけではありません
外部インスタンスは VPC 内に ENI を持たないため awsvpc ネットワークモードは使えず、bridge / host モードを使います。タスク定義のネットワークモードはインスタンスの登録手段でもありません。
専用線の敷設は費用とリードタイムが大きく、そもそも認証情報の課題を何も解決しないため要件から外れます。

これだけ覚える(記憶フック)
オンプレを AWS に登録するなら SSM アクティベーション。インスタンスプロファイルは EC2 専用。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
有効期限のない IAM アクセスキーをファイルシステムに置けない SSM のアクティベーション+IAM ロールなら一時的な認証情報が払い出され、キーの保存が不要
→選択肢(A)が正解・選択肢(B)を消す
認証情報の更新を AWS 側に任せたい マネージドインスタンスの認証情報は自動ローテーションされる。IAM ユーザーのキーは自前でローテーションが必要
→選択肢(B)を消す
登録対象はオンプレミスの仮想マシン(EC2 ではない) インスタンスプロファイルは EC2 専用で、オンプレミスの仮想マシンにはアタッチできない
→選択肢(C)を消す
20 台すべてに同じ手順を繰り返すだけで登録を終えたい 1 つのアクティベーションで発行したID とコードを全台で使い回し、同一のインストールコマンドを実行できる
→選択肢(A)が正解
外部インスタンスとして ECS クラスターに参加させる 外部インスタンスは VPC 内に ENI を持たないため awsvpc は使えず、専用線でサブネットに参加させる構成も成立しない
→選択肢(D)を消す
ひっかけポイント
  • /etc/ecs/ecs.config は実在する設定ファイルなので選択肢 B は手順として成立しそうに見えるが、置く場所を変えても長期キーをファイルに保存している事実が禁止事項に触れる
  • 選択肢 C は「IAM ロール」という正しい単語を含む罠。インスタンスプロファイルという渡し方が EC2 限定である点を突いている
  • 「Direct Connect でつなげば ECS に登録できる」は誤解。外部インスタンスは VPC のサブネットに参加しないし、登録の鍵はネットワークではなく SSM のアクティベーション
  • アクティベーションには登録可能なインスタンス数と有効期限があり、20 台をまとめて登録する際はここを見積もる。手順の「繰り返し」は各台でのスクリプト実行だけ
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
EC2 インスタンスを Amazon ECS クラスターに登録したい」 インスタンスプロファイル(ecsInstanceRole)を付けて起動するのが正解に。SSM アクティベーションは不要。
「ECS とは関係なく、オンプレサーバーから AWS API を長期的に呼びたい IAM Roles Anywhere(X.509 証明書ベース)が正解軸に。
「オンプレサーバーのパッチ適用やインベントリ収集を AWS から行いたい」 同じSSM ハイブリッドアクティベーションで登録し、Patch Manager / Fleet Manager を使う。
「外部インスタンスのタスクを ALB の背後に置きたい 外部インスタンスは Elastic Load Balancing や awsvpc に非対応という制約が論点になる。
「オンプレでも Kubernetes を使いたい」 Amazon EKS Anywhere / EKS Hybrid Nodes が選択肢に登場する。
関連サービスの解説 Amazon Elastic Container Service (Amazon ECS)
AWS Systems Manager
Amazon ECS Anywhere
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
ECS Anywhere の外部インスタンス登録手順(SSM アクティベーションと IAM ロール) Amazon ECS クラスターに外部インスタンスを登録する
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 55%
No.6 解説
ある企業は、自社データセンターにある 20 台の Linux 仮想マシンを、Amazon ECS Anywhere の外部インスタンスとして 1 つの Amazon ECS クラスターに登録することを決めました。セキュリティチームは、有効期限のない IAM アクセスキーを各仮想マシンのファイルシステムに保存することを禁止しています。運用チームは、20 台すべてに対して同じ手順を繰り返すだけで登録が完了し、認証情報の更新も AWS 側に任せられる方式を求めています。

これらの要件を満たす手順はどれですか。
  • Amazon ECS Anywhere 用の IAM ロールを作成し、そのロールを指定して AWS Systems Manager のアクティベーションを作成する。発行されたアクティベーション ID とアクティベーションコードを指定して、各仮想マシンで ECS Anywhere のインストールスクリプトを実行する
  • 仮想マシンごとに IAM ユーザーを作成してアクセスキーを発行し、そのキーを各仮想マシンの /etc/ecs/ecs.config に記述してから Amazon ECS コンテナエージェントを起動する
  • Amazon ECS Anywhere 用の IAM ロールを EC2 インスタンスプロファイルとして各仮想マシンにアタッチし、Amazon ECS コンテナエージェントだけをインストールしてクラスター名を設定する
  • AWS Direct Connect を敷設して各仮想マシンを VPC のサブネットに参加させ、awsvpc ネットワークモードのタスク定義を使って各仮想マシンを Amazon ECS クラスターへ登録する

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