AWS ソリューションアーキテクト アソシエイト セキュアな設計 問題

ゆめさくが作った練習問題です。本試験の問題ではありません。

セキュアな設計の問題を3⁠0問、小分野ごとにまとめました。選ぶと、その場で正誤と解説が出ます。

ログインなしで解けます。答えはこのブラウザの中だけに残り、どこにも送りません。

この分野の小分野

  • IAM とアカウントの管理(10問)
  • ネットワークとワークロードの防御(10問)
  • データの保護と暗号化(10問)

セキュアな設計の問題

30 問

選ぶと、すぐに正誤と解説が出ます。選んだ答えは変えられません。

  1. IAM とアカウントの管理

    問 1ある小売企業が新しく AWS アカウントを作成しました。いまはルートユーザーのメールアドレスとパスワードだけでサインインできる状態です。セキュリティ部門は「ルートユーザーが乗っ取られる危険を下げること」と「日常の作業ではルートユーザーを使わないこと」を求めています。最初に行う対応として最も適切なものはどれですか。

  2. 問 2ある製造業の会社は、CI 用のツールアカウントで動くパイプラインから、本番アカウントへアプリをデプロイしています。いまは本番アカウントの IAM ユーザーのアクセスキーをパイプラインに保存しています。監査で「本番アカウントの長期の認証情報をほかのアカウントに置かないこと」と指摘されました。本番側の権限はデプロイに要る範囲に絞ります。最も適切な構成はどれですか。

  3. 問 3ある通信会社は、AWS Organizations の組織のルートに、承認したリージョン以外での操作を拒否する SCP を付けました。メンバーアカウントでは期待どおりに拒否されますが、管理アカウントで動かしている検証用の EC2 は、承認していないリージョンでも起動できてしまいました。セキュリティ部門は「承認したリージョン以外でワークロードが動く余地を、SCP の統制の中に収めること」を求めています。最も適切な対応はどれですか。

  4. 問 4大学の情報基盤センターでは、研究室ごとに分けた 25 の AWS アカウントを 1 つの組織 (Organizations) で束ねています。職員はすでに学内の外部 IdP (SAML 2.0) でサインインしており、役割によっては複数のアカウントを行き来します。センターは、職員の ID を AWS の側で作り直さずに済ませ、職務ごとの権限は一度だけ定義して各アカウントへ配りたいと考えています。この方針に最も合う構成はどれですか。

  5. 問 5あるゲーム会社では、開発チームが Lambda 関数用の IAM ロールを自分たちで作れるようにしたいと考えています。セキュリティ部門の要件は「開発チームが作るロールは S3 と DynamoDB の操作を超える権限を持てないこと」「開発チームが自分たちの権限を広げられないこと」です。ロールを作るたびにセキュリティ部門が審査する運用は避けます。最も適切な方法はどれですか。

  6. 問 6ある物流会社が、これから AWS を本格的に使い始めます。部門ごとにアカウントを分ける方針で、要件は「ベストプラクティスに沿った複数アカウントの環境を短期間で用意すること」「新しく払い出すアカウントにもログの集約や禁止事項のルールが自動で適用されること」「この仕組みを一から自作しないこと」です。最も適切な方法はどれですか。

  7. 問 7ある会計事務所は、1 つの AWS アカウントで 30 人の職員に IAM ユーザーを発行し、一人ひとりに個別のポリシーを付けています。部署の異動が多く、そのたびに権限の付け替えで漏れが出ています。要件は「職務ごとの権限を 1 か所で定め、異動のときはユーザーの所属を変えるだけで権限が切り替わること」です。最も適切な方法はどれですか。

  8. 問 8商社の情報システム部が、社内の共有資料を入れた S3 バケットを用意しました。読ませたい相手は、自社の AWS Organizations に属するすべてのアカウントで、その数は毎月のように増えます。アカウントが増えるたびにバケットポリシーを書き換える手間は取りたくなく、組織の外のアカウントからは読めないようにしておく必要があります。最も適切な許可の方法はどれですか。

  9. 問 9ある SaaS 企業では 1 つの AWS アカウントの中でプロジェクトが毎月増え、そのたびに管理者がプロジェクトごとの IAM ポリシーを書き足しています。アカウントは 1 つのまま運用します。要件は「プロジェクトやリソースが増えても既存のポリシーを書き換えないこと」と「開発者は自分のプロジェクトのリソースだけを操作できること」です。最も適切な方法はどれですか。

  10. 問 10ある病院が、院内のサーバーで動かしている MySQL を、EC2 のインスタンスに MySQL を入れる形で AWS に移します。情報システム部は、移行後に自分たちが受け持つセキュリティの作業を整理しています。AWS の責任共有モデルに照らして、この病院が受け持つ作業はどれですか。

  11. ネットワークとワークロードの防御

    問 11ある旅行会社の Web アプリは、ALB の後ろにある Auto Scaling グループの EC2 で動いています。EC2 は増減のたびに IP アドレスが変わり、ALB のノードの IP アドレスも変わることがあります。ALB と同じパブリックサブネットには別のサーバーもあります。要件は「EC2 が受け付ける HTTP を ALB から来たものだけにすること」と「IP アドレスが変わってもルールを書き換えないこと」です。最も適切な設定はどれですか。

  12. 問 12あるオンライン予約サイトは ALB の後ろの EC2 で動いています。検索フォームに SQL インジェクションを狙うリクエストが届いていることがわかりましたが、アプリの改修には数か月かかります。要件は「アプリを改修せずに、SQL インジェクションのパターンを含むリクエストを手前で止めること」と「検査のルールを一から自分で書かないこと」です。最も適切な方法はどれですか。

  13. 問 13不動産会社の会員サイトを新しく立ち上げます。Web サーバーとなる EC2 は、インターネットから直接たどり着けない場所に置く決まりです。一方で、会員がブラウザから送る HTTPS のリクエストは受け付けなければなりません。サブネットとロードバランサーの配置として最も適切なものはどれですか。

  14. 問 14ある会社が、Web サーバーのあるパブリックサブネットに独自のネットワーク ACL を付けました。インバウンドは 0.0.0.0/0 からの TCP 443 を許可し、アウトバウンドは 0.0.0.0/0 への TCP 443 を許可して、ほかは既定の拒否のままです。付けるまでは問題なく開けていたページが、付けたあとは利用者から開けなくなりました。セキュリティグループはインバウンドの 443 を許可しています。原因と対処として最も適切なものはどれですか。

  15. 問 15あるチケット販売サイトは ALB で公開しています。販売開始の直後に、少数の IP アドレスから大量の HTTP リクエストが送られ、一般の利用者が購入できなくなりました。送信元の IP アドレスは毎回変わり、事前にはわかりません。要件は「1 つの IP アドレスから一定時間に上限を超えたリクエストだけを自動で抑えること」です。最も適切な方法はどれですか。

  16. 問 16ある大手の通販サイトは CloudFront と ALB で公開しており、過去に大規模な DDoS 攻撃を受けたことがあります。経営層の要件は「攻撃の最中に AWS の DDoS 対応の専門チームへ直接相談できること」と「攻撃で膨らんだ利用料について、補てんを申請できる仕組みがあること」です。最も適切な対応はどれですか。

  17. 問 17ある地方の観光協会は、CloudFront と Route 53 を使って観光案内のサイトを公開しています。予算は限られています。要件は「よくあるネットワーク層とトランスポート層の DDoS 攻撃から守ること」と「追加の申し込みや追加の料金なしで済ませること」です。最も適切なものはどれですか。

  18. 問 18ある物流会社は RDS for MySQL の DB インスタンスを使っています。いまはマスターユーザーのパスワードを DB 管理者が決め、表計算のファイルに書いて共有しています。要件は「パスワードを人が目にしないこと」と「ローテーション用の Lambda 関数を自分で書かずに、定期的に入れ替えること」です。最も適切な方法はどれですか。

  19. 問 19製薬会社の研究部門では、VPC の中のサーバーが外のソフトウェア配布サイトから部品を取り込んでいます。情報の持ち出しを防ぐため、セキュリティ部門は外へ出る HTTPS の通信を、許可した数個のドメインあてのものだけに絞るよう求めました。配布サイトの IP アドレスは予告なく変わります。最も適切な方法はどれですか。

  20. 問 20証券会社の本社と AWS は Direct Connect でつながっています。監査では、この経路を流れるデータが通信の途中で暗号化されていない点が指摘されました。Direct Connect の安定した帯域と低い遅延は手放したくなく、業務アプリには手を入れない方針です。指摘に応える対応として最も適切なものはどれですか。

  21. データの保護と暗号化

    問 21保険会社の顧客データは、KMS のカスタマーマネージドキーで暗号化されています。監査では職務の分離を求められました。キーポリシーの変更や削除の予約といった鍵の管理はセキュリティ担当が受け持ちますが、その担当にはデータを復号する権限を持たせません。反対に、アプリが使う IAM ロールは暗号化と復号だけを行い、鍵の管理には触れられないようにします。最も適切な設定はどれですか。

  22. 問 22ある法律事務所は、依頼人の書類を S3 のバケットに置いています。監査で「どの IAM ロールが、いつ、どのオブジェクトを読み出したかを記録に残すこと」を求められました。CloudTrail の証跡は既定の設定のまま作ってあります。最も適切な対応はどれですか。

  23. 問 23病院の電子カルテの検索アプリは、RDS for PostgreSQL 14 の DB インスタンスに接続しています。監査は、暗号化されていない接続をデータベースの側で断ることを求めました。接続するクライアントは部署ごとに別々に管理されているため、各クライアントの設定に頼った対策は採れません。最も適切な方法はどれですか。

  24. 問 2460 のアカウントを持つある小売グループで、S3 の誤った公開による情報漏えいを防ぐ方針が決まりました。経営層は「どのアカウントでも、バケットポリシーや ACL の設定ミスで S3 が一般に公開されないこと」を求めています。さらに「この決まりを組織として一元的に強制し、各アカウントの管理者が個別の設定で外せないこと」も条件です。最も適切な方法はどれですか。

  25. 問 25研究所が実験データを S3 に置き、5 年間は改ざんされないよう守ることにしました。ふつうの研究員は、この 5 年の間に上書きも削除もできないようにします。ただし、誤って個人情報を保存してしまったときに備え、特別な権限を渡した担当者だけは期間中でも削除できる余地を残したいと考えています。最も適切な設定はどれですか。

  26. 問 26ある自治体は、窓口システムのアクセスログを、バージョニングを無効にした S3 のバケットに保存しています。条例で「ログは保存から 3 年を過ぎたら速やかに消すこと」と決まっています。要件は「削除の作業を、人の手や自作のプログラムに頼らないこと」です。最も適切な方法はどれですか。

  27. 問 27ある会社は監査で「今後このリージョンで作る EBS ボリュームは、すべて暗号化されていること」を求められました。EC2 を起動する担当者は多く、起動のたびに担当者が暗号化の指定を忘れないことに頼りたくありません。既存のボリュームの扱いは別の計画で進めます。最も適切な方法はどれですか。

  28. 問 28ある EC サイトの注文テーブル (DynamoDB) に、不具合のあるバッチが誤った値を書き込み、気づいたのは 3 時間後でした。再発に備え、要件は「過去 35 日以内の任意の時点 (秒の単位) の状態のテーブルに戻せること」と「バックアップの日程を組んで管理する運用をしないこと」です。同じリージョンの中での復旧を想定します。最も適切な方法はどれですか。

  29. 問 29ある出版社は、東京リージョンの ALB の前に CloudFront を置き、独自ドメインで利用者と CloudFront の間を HTTPS にしたいと考えています。証明書は ACM で発行する方針です。担当者が東京リージョンで ACM の証明書をリクエストしたところ、CloudFront のディストリビューションの設定でその証明書を選べませんでした。最も適切な対応はどれですか。

  30. 問 30ある会社は、RDS for PostgreSQL の手動スナップショットを、分析用の別の AWS アカウントに共有したいと考えています。この DB は、作成時に RDS の既定の KMS キーで暗号化されており、共有しようとしたところ操作できませんでした。要件は「暗号化したまま共有すること」と「共有の相手を分析用のアカウントだけに限ること」です。最も適切な手順はどれですか。

30 問中 0 問に答えました

解説の一覧

解いたあとに読み返せるよう、全問の解説を並べています。問いを開くと解説が出ます。

IAM とアカウントの管理

問1ある小売企業が新しく AWS アカウントを作成しました。いまはルートユーザーのメールアドレスとパスワードだけでサインインできる状態です。セキュリティ部門は「ルートユーザーが乗っ取られる危険を下げること」と「日常の作業ではルートユーザーを使わないこと」を求めています。最初に行う対応として最も適切なものはどれですか。

正解は「ルートユーザーに MFA を設定し、アクセスキーは作らず、日常の作業は別の ID で行う」です。ルートユーザーはアカウントのすべての操作ができるため、IAM のベストプラクティスでは MFA を加えてサインインを守り、ルートユーザーのアクセスキーは作らないことを勧めています。日常の作業は IAM ロールなど権限を絞った ID で行い、ルートユーザーは本当に必要な作業だけに使います。ルートユーザーのアクセスキーを作ってスクリプトに埋め込む案は、漏れたときの被害が最も大きい長期の認証情報を増やすので要件に合いません。パスワードを全員で共有する案は、必要な人以外に渡さないという原則に反し、乗っ取りの危険を上げます。ルートユーザーで日常の作業を続ける案は、2 つ目の要件にそのまま反します。出典 https://docs.aws.amazon.com/IAM/latest/UserGuide/root-⁠user-⁠best-⁠practices.html

問2ある製造業の会社は、CI 用のツールアカウントで動くパイプラインから、本番アカウントへアプリをデプロイしています。いまは本番アカウントの IAM ユーザーのアクセスキーをパイプラインに保存しています。監査で「本番アカウントの長期の認証情報をほかのアカウントに置かないこと」と指摘されました。本番側の権限はデプロイに要る範囲に絞ります。最も適切な構成はどれですか。

正解は「本番アカウントにツールアカウントを信頼するデプロイ用ロールを作り、パイプラインが AssumeRole で引き受ける」です。アカウントをまたぐアクセスでは、使われる側 (本番) にロールを作り、信頼ポリシーで使う側 (ツールアカウント) を信頼されたエンティティに指定します。パイプラインは STS の AssumeRole で一時的な認証情報を受け取るので、本番の長期の鍵をほかのアカウントに置かずに済み、ロールの権限もデプロイに要る範囲に絞れます。アクセスキーを 3⁠0 日ごとに作り直す案は、長期の鍵をツールアカウントに置き続けるので指摘を解消しません。IAM グループに入れられるのは同じアカウントの IAM ユーザーだけなので、ほかのアカウントのユーザーを入れる案は成り立ちません。ルートユーザーのアクセスキーを保存する案は、最も強い長期の鍵を外に置くことになるので要件に合いません。出典 https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-⁠account-⁠with-⁠roles.html

問3ある通信会社は、AWS Organizations の組織のルートに、承認したリージョン以外での操作を拒否する SCP を付けました。メンバーアカウントでは期待どおりに拒否されますが、管理アカウントで動かしている検証用の EC2 は、承認していないリージョンでも起動できてしまいました。セキュリティ部門は「承認したリージョン以外でワークロードが動く余地を、SCP の統制の中に収めること」を求めています。最も適切な対応はどれですか。

正解は「SCP は管理アカウントに効かないため、そのワークロードをメンバーアカウントへ移す」です。SCP はメンバーアカウントの IAM ユーザーとロールだけに効き、管理アカウントのユーザーやロールには効きません。そのため Organizations のベストプラクティスでも、管理アカウントにはワークロードを置かず、そこで管理しなければならないリソースだけに絞るよう勧めています。検証用の EC2 をメンバーアカウントへ移せば、組織のルートに付けた SCP の統制の中に入ります。同じ SCP を管理アカウントに直接付け直しても、管理アカウントには効かないので結果は変わりません。反映を待つ案は、効かない理由が時間ではないので解決しません。ルートユーザーに MFA を設定する案は、サインインを守る対策で、リージョンの制限とは関係がありません。出典 https://docs.aws.amazon.com/organizations/latest/userguide/orgs_best-⁠practices_mgmt-⁠acct.html

問4大学の情報基盤センターでは、研究室ごとに分けた 2⁠5 の AWS アカウントを 1 つの組織 (Organizations) で束ねています。職員はすでに学内の外部 IdP (SAML 2.0) でサインインしており、役割によっては複数のアカウントを行き来します。センターは、職員の ID を AWS の側で作り直さずに済ませ、職務ごとの権限は一度だけ定義して各アカウントへ配りたいと考えています。この方針に最も合う構成はどれですか。

正解は「IAM Identity Center に既存の IdP をつなぎ、職務ごとの許可セットを作ってアカウントに割り当てる」です。IAM Identity Center は既存の IdP をつないでユーザーとグループを取り込めるので、職員の ID を AWS 側で作り直さずに済みます。さらに許可セットを使うと、管理者などの職務ごとの権限を一か所で定義し、組織の複数のアカウントに配ってユーザーやグループに割り当てられます。各アカウントに IAM ユーザーを作る案は、2⁠5 のアカウントで ID を二重に持つことになり、1 つ目の要件に反します。1 つのアカウントの IAM ユーザーからアクセスキーで入る案も ID を二重に持ち、長期の鍵まで増やします。Cognito ユーザープールはアプリの利用者向けの仕組みで、職員が AWS アカウントを使うための入口ではなく、ID も二重になります。出典 https://docs.aws.amazon.com/singlesignon/latest/userguide/what-⁠is.html

問5あるゲーム会社では、開発チームが Lambda 関数用の IAM ロールを自分たちで作れるようにしたいと考えています。セキュリティ部門の要件は「開発チームが作るロールは S3 と DynamoDB の操作を超える権限を持てないこと」「開発チームが自分たちの権限を広げられないこと」です。ロールを作るたびにセキュリティ部門が審査する運用は避けます。最も適切な方法はどれですか。

正解は「S3 と DynamoDB に絞った管理ポリシーを権限境界とし、その境界を付けたロールだけ作れるよう許可する」です。権限境界は、IAM のユーザーやロールが持てる最大の権限を決める仕組みで、それ自体は権限を与えません。開発チームに、この境界を付けたときだけロールを作れる条件付きの権限を渡し、境界のポリシー自体は変えられないようにすれば、審査なしで作らせても S3 と DynamoDB を超える権限は持てません。IAM のすべての操作を許可して毎週点検する案は、作った時点では何も止められず、自分の権限も広げられるので要件に合いません。IAM の操作を一切許可しない案は、ロールを自分で作るという前提が成り立ちません。SCP で組織全体を絞る案は、ほかのチームやアカウントまで巻き込み、目的に対して影響が大きすぎます。出典 https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html

問6ある物流会社が、これから AWS を本格的に使い始めます。部門ごとにアカウントを分ける方針で、要件は「ベストプラクティスに沿った複数アカウントの環境を短期間で用意すること」「新しく払い出すアカウントにもログの集約や禁止事項のルールが自動で適用されること」「この仕組みを一から自作しないこと」です。最も適切な方法はどれですか。

正解は「Control Tower でランディングゾーンを作り、コントロールを有効にしてアカウントファクトリーで払い出す」です。Control Tower は、ベストプラクティスに沿った複数アカウントの環境 (ランディングゾーン) を用意し、Organizations などのサービスをまとめて組み立てます。予防や検出のコントロールで決まりを守らせ、アカウントファクトリーで作ったアカウントにはそれらが自動で適用されます。Organizations だけを作ってスクリプトで整える案は、仕組みを自作することになり 3 つ目の要件に反します。1 つのアカウントを VPC で分ける案は、部門ごとにアカウントを分けるという方針に合いません。各部門が自分で作って月に 1 度点検する案は、新しいアカウントに決まりが自動で効かず、2 つ目の要件を満たしません。出典 https://docs.aws.amazon.com/controltower/latest/userguide/what-⁠is-⁠control-⁠tower.html

問7ある会計事務所は、1 つの AWS アカウントで 3⁠0 人の職員に IAM ユーザーを発行し、一人ひとりに個別のポリシーを付けています。部署の異動が多く、そのたびに権限の付け替えで漏れが出ています。要件は「職務ごとの権限を 1 か所で定め、異動のときはユーザーの所属を変えるだけで権限が切り替わること」です。最も適切な方法はどれですか。

正解は「職務ごとに IAM グループを作って権限のポリシーを付け、職員をグループに入れる」です。IAM のユーザーグループは IAM ユーザーの集まりで、グループに付けた権限はそこに入っているユーザー全員に効きます。職員が異動したときは、ユーザーの権限を書き換える代わりに、前のグループから外して新しいグループに入れるだけで権限が切り替わります。全員に管理者の権限を付ける案は、最小権限の原則に反し、職務ごとの権限という要件も満たしません。手順書で手作業の書き換えを続ける案は、今の漏れの原因をそのまま残します。グループを上位のグループに入れる案は、IAM のグループは入れ子にできず、ユーザーしか入れられないので成り立ちません。出典 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html

問8商社の情報システム部が、社内の共有資料を入れた S3 バケットを用意しました。読ませたい相手は、自社の AWS Organizations に属するすべてのアカウントで、その数は毎月のように増えます。アカウントが増えるたびにバケットポリシーを書き換える手間は取りたくなく、組織の外のアカウントからは読めないようにしておく必要があります。最も適切な許可の方法はどれですか。

正解は「条件キー PrincipalOrgID に自社の組織 ID を指定して読み取りを許可する」です。グローバル条件キーの PrincipalOrgID は、リソースベースのポリシーで組織のすべてのアカウント ID を並べる代わりに使える仕組みで、組織 ID を指定すると、その組織に属するアカウントのプリンシパルだけが条件に合います。アカウントが増えても組織に入れば自動で対象になるので、バケットポリシーを書き換えずに済みます。アカウント ID を並べる案は、増えるたびに書き換えが要るので 1 つ目の要件に反します。パブリックにする案は、URL を知った組織の外の人も読めるので 2 つ目の要件に反します。SCP は権限の上限を決めるだけで、それ自体は何も許可しないため、読み取りを許可する手段になりません。出典 https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-⁠keys.html

問9ある SaaS 企業では 1 つの AWS アカウントの中でプロジェクトが毎月増え、そのたびに管理者がプロジェクトごとの IAM ポリシーを書き足しています。アカウントは 1 つのまま運用します。要件は「プロジェクトやリソースが増えても既存のポリシーを書き換えないこと」と「開発者は自分のプロジェクトのリソースだけを操作できること」です。最も適切な方法はどれですか。

正解は「ロールとリソースに同じ project タグを付け、タグが一致するときだけ許可するポリシーを作る」です。これは属性ベースのアクセス制御 (ABAC) で、プリンシパルのタグとリソースのタグが一致するときに許可する少数のポリシーで済みます。新しいプロジェクトでは、ロールとリソースに新しいタグの値を付けるだけで権限が効くので、既存のポリシーを書き換えずに済み、開発者は自分のプロジェクトのタグが付いたリソースだけを操作できます。プロジェクトごとにグループとポリシーを作る案は、増えるたびにポリシーを足す今の運用と同じで 1 つ目の要件に反します。広い権限を付けて事後に確かめる案は、ほかのプロジェクトへの操作を止められず 2 つ目の要件に反します。アカウントを分ける案は、アカウントを 1 つのまま運用するという条件に反します。出典 https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-⁠based-⁠access-⁠control.html

問10ある病院が、院内のサーバーで動かしている MySQL を、EC2 のインスタンスに MySQL を入れる形で AWS に移します。情報システム部は、移行後に自分たちが受け持つセキュリティの作業を整理しています。AWS の責任共有モデルに照らして、この病院が受け持つ作業はどれですか。

正解は「EC2 のゲスト OS と MySQL に、セキュリティパッチを当てて更新する」です。責任共有モデルでは、AWS はホストの OS と仮想化のレイヤーから施設の物理的なセキュリティまでを運用し、管理します。一方で EC2 は IaaS に当たるため、利用者がゲスト OS (更新とセキュリティパッチを含む) と、その上のアプリやデータベースの管理を受け持ちます。物理ホストの OS と仮想化のレイヤーへのパッチは、AWS が受け持つクラウドそのもののセキュリティなので、病院の作業ではありません。データセンターの入退室の管理も、施設の物理的なセキュリティとして AWS の責任です。リージョンをつなぐネットワーク機器の設定も AWS の基盤の一部で、利用者は触れません。出典 https://aws.amazon.com/compliance/shared-⁠responsibility-⁠model/

ネットワークとワークロードの防御

問11ある旅行会社の Web アプリは、ALB の後ろにある Auto Scaling グループの EC2 で動いています。EC2 は増減のたびに IP アドレスが変わり、ALB のノードの IP アドレスも変わることがあります。ALB と同じパブリックサブネットには別のサーバーもあります。要件は「EC2 が受け付ける HTTP を ALB から来たものだけにすること」と「IP アドレスが変わってもルールを書き換えないこと」です。最も適切な設定はどれですか。

正解は「ALB のセキュリティグループをソースに指定して 8⁠0 番を許可する」です。セキュリティグループのルールでは、ソースに別のセキュリティグループを指定できます。そうすると、そのセキュリティグループが付いたリソースのプライベート IP アドレスからの通信だけが許可されるため、ALB のノードや EC2 の IP アドレスが変わってもルールを書き換えずに済みます。0.0.0.0/0 を許可する案は、ALB を通らない通信も受け付けるので 1 つ目の要件に反します。ALB の IP アドレスを調べて登録する案は、アドレスが変わるたびに書き換えが要り 2 つ目の要件に反します。ALB のサブネットの CIDR を許可する案は、同じサブネットにある別のサーバーからの通信も通してしまいます。出典 https://docs.aws.amazon.com/vpc/latest/userguide/security-⁠group-⁠rules.html

問12あるオンライン予約サイトは ALB の後ろの EC2 で動いています。検索フォームに SQL インジェクションを狙うリクエストが届いていることがわかりましたが、アプリの改修には数か月かかります。要件は「アプリを改修せずに、SQL インジェクションのパターンを含むリクエストを手前で止めること」と「検査のルールを一から自分で書かないこと」です。最も適切な方法はどれですか。

正解は「AWS WAF のウェブ ACL に SQL データベース用のマネージドルールグループを入れ、ALB に付ける」です。AWS のマネージドルールの SQL データベース用ルールグループは、SQL インジェクションに使われるリクエストのパターンをブロックするルールの集まりで、クエリの値や本文を検査します。ウェブ ACL を ALB に付ければ、アプリを改修せず、ルールを自分で書かずに手前で止められます。Shield Standard は DDoS 攻撃から守る仕組みで、SQL インジェクションのようなリクエストの中身の検査はしません。セキュリティグループには拒否のルールが無く、許可だけを書く仕組みなので、この案は成り立ちません。GuardDuty は脅威を検出して知らせるサービスで、リクエストを手前で止める役目は持ちません。出典 https://docs.aws.amazon.com/waf/latest/developerguide/aws-⁠managed-⁠rule-⁠groups-⁠use-⁠case.html

問13不動産会社の会員サイトを新しく立ち上げます。Web サーバーとなる EC2 は、インターネットから直接たどり着けない場所に置く決まりです。一方で、会員がブラウザから送る HTTPS のリクエストは受け付けなければなりません。サブネットとロードバランサーの配置として最も適切なものはどれですか。

正解は「ALB をパブリックサブネットに、EC2 をプライベートサブネットに置き、通信は ALB 経由で受ける」です。本番向けの VPC の例では、ロードバランサーのノードをパブリックサブネットに、サーバーをプライベートサブネットに置き、サーバーはロードバランサーを通してリクエストを受けます。こうすると EC2 はインターネットから直接たどり着けないまま、利用者の HTTPS は ALB で受け付けられます。EC2 をパブリックサブネットに置いてパブリック IP を付ける案は、インターネットから直接つながるので 1 つ目の要件に反します。プライベートサブネットにインターネットゲートウェイへのルートを足す案は、そのサブネットを実質パブリックにしてしまいます。両方をプライベートサブネットに置く案は、利用者の通信を受ける入口がなくなります。出典 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-⁠example-⁠private-⁠subnets-⁠nat.html

問14ある会社が、Web サーバーのあるパブリックサブネットに独自のネットワーク ACL を付けました。インバウンドは 0.0.0.0/0 からの TCP 4⁠4⁠3 を許可し、アウトバウンドは 0.0.0.0/0 への TCP 4⁠4⁠3 を許可して、ほかは既定の拒否のままです。付けるまでは問題なく開けていたページが、付けたあとは利用者から開けなくなりました。セキュリティグループはインバウンドの 4⁠4⁠3 を許可しています。原因と対処として最も適切なものはどれですか。

正解は「ネットワーク ACL はステートレスなので、アウトバウンドにエフェメラルポートへの許可を足す」です。ネットワーク ACL では、足したルールごとに、その応答の通信を許すルールが反対の向きに必要です。利用者からの 4⁠4⁠3 への要求に対する応答は、利用者のクライアントが選んだエフェメラルポート (例として 1⁠0⁠2⁠4〜6⁠5⁠5⁠3⁠5) あてに出ていくため、アウトバウンドが 4⁠4⁠3 だけでは応答が止まります。セキュリティグループは戻りの通信を自動で許すので、そこに 4⁠4⁠3 を足しても解決しません。ネットワーク ACL はステートフルではないので、インバウンドのルールを作り直しても応答は通りません。ACL を付けるまでは開けていたので、ルートテーブルは原因ではありません。出典 https://docs.aws.amazon.com/vpc/latest/userguide/custom-⁠network-⁠acl.html

問15あるチケット販売サイトは ALB で公開しています。販売開始の直後に、少数の IP アドレスから大量の HTTP リクエストが送られ、一般の利用者が購入できなくなりました。送信元の IP アドレスは毎回変わり、事前にはわかりません。要件は「1 つの IP アドレスから一定時間に上限を超えたリクエストだけを自動で抑えること」です。最も適切な方法はどれですか。

正解は「AWS WAF のレートベースのルールを作り、IP アドレスごとに上限を超えたリクエストを止める」です。レートベースのルールは、届いたリクエストを決めた基準 (たとえば送信元の IP アドレス) ごとにまとめて数え、評価の時間枠の中で上限を超えた送信元のリクエストを抑えます。送信元を事前に知らなくても自動で働くので、要件に合います。攻撃元を見つけるたびにネットワーク ACL へ足す案は、人の作業が要り、送信元が毎回変わる攻撃に追いつけません。Auto Scaling の最大数を増やす案は、大量のリクエストを抑えるのではなく受け止めるだけで、要件の「抑える」を満たしません。SQL データベース用のルールグループは攻撃のパターンを検査するもので、リクエストの量は数えません。出典 https://docs.aws.amazon.com/waf/latest/developerguide/waf-⁠rule-⁠statement-⁠type-⁠rate-⁠based.html

問16ある大手の通販サイトは CloudFront と ALB で公開しており、過去に大規模な DDoS 攻撃を受けたことがあります。経営層の要件は「攻撃の最中に AWS の DDoS 対応の専門チームへ直接相談できること」と「攻撃で膨らんだ利用料について、補てんを申請できる仕組みがあること」です。最も適切な対応はどれですか。

正解は「Shield Advanced に申し込み、CloudFront のディストリビューションと ALB を保護の対象にする」です。Shield Advanced では、DDoS 攻撃でアプリの可用性に影響が出たときに、AWS Shield Response Team (SRT) にいつでも助けを求められます。また、保護しているリソースへの攻撃で利用料が急に増えた場合に、Shield Advanced のクレジットとして補てんを申請できる仕組みがあります。Shield Standard はすべての利用者に自動で付く基本の保護で、SRT への相談や利用料の補てんはありません。AWS WAF のレートベースのルールは大量のリクエストを抑える手段の 1 つですが、専門チームへの相談や補てんの仕組みは持ちません。GuardDuty は脅威を検出するサービスで、どちらの要件も満たしません。出典 https://docs.aws.amazon.com/waf/latest/developerguide/ddos-⁠advanced-⁠summary-⁠capabilities.html

問17ある地方の観光協会は、CloudFront と Route 5⁠3 を使って観光案内のサイトを公開しています。予算は限られています。要件は「よくあるネットワーク層とトランスポート層の DDoS 攻撃から守ること」と「追加の申し込みや追加の料金なしで済ませること」です。最も適切なものはどれですか。

正解は「すべての利用者に自動で適用される Shield Standard の保護をそのまま使う」です。Shield Standard は、すべての AWS の利用者に追加の料金なしで自動で適用される保護で、Web サイトやアプリを狙うネットワーク層とトランスポート層のよくある DDoS 攻撃を防ぎます。Route 5⁠3 のホストゾーンや CloudFront のディストリビューションでは特に効果を得やすいとされています。Shield Advanced は申し込みと利用料が要る上位の保護なので、2 つ目の要件に反します。AWS WAF はウェブ ACL やルールごとに料金がかかり、主にアプリの層のリクエストを扱います。GuardDuty は脅威を検出して知らせるサービスで、DDoS 攻撃そのものを防ぐ役目は持ちません。出典 https://docs.aws.amazon.com/waf/latest/developerguide/ddos-⁠standard-⁠summary.html

問18ある物流会社は RDS for MySQL の DB インスタンスを使っています。いまはマスターユーザーのパスワードを DB 管理者が決め、表計算のファイルに書いて共有しています。要件は「パスワードを人が目にしないこと」と「ローテーション用の Lambda 関数を自分で書かずに、定期的に入れ替えること」です。最も適切な方法はどれですか。

正解は「RDS でマスターユーザーのパスワードを Secrets Manager に管理させる設定を有効にする」です。RDS は Secrets Manager と連携してマスターユーザーのパスワードを管理できます。この設定では RDS が認証情報を自動で作って Secrets Manager に保管し、アプリの変更なしに定期的にローテーションします。Secrets Manager は認証情報を人の目や平文の表示から守り、取り出しは IAM で細かく制御できます。暗号化した圧縮ファイルで共有する案は、人がパスワードを目にするうえ入れ替えも手作業です。アプリの設定ファイルに書く案も、人が読める場所に置くことになり 1 つ目の要件に反します。ローテーション用の Lambda 関数を自作する案は、2 つ目の要件に反します。出典 https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-⁠secrets-⁠manager.html

問19製薬会社の研究部門では、VPC の中のサーバーが外のソフトウェア配布サイトから部品を取り込んでいます。情報の持ち出しを防ぐため、セキュリティ部門は外へ出る HTTPS の通信を、許可した数個のドメインあてのものだけに絞るよう求めました。配布サイトの IP アドレスは予告なく変わります。最も適切な方法はどれですか。

正解は「Network Firewall を VPC に置き、許可するドメインのリストを持つステートフルなルールで絞る」です。Network Firewall のステートフルなドメインリストのルールグループでは、ドメイン名の許可リストや拒否リストを作れます。ルールのエンジンは TLS の SNI や HTTP の Host ヘッダーにあるドメインを見て判定するので、相手の IP アドレスが変わってもドメインの単位で外への通信を絞れます。セキュリティグループはプロトコル、ポート、IP アドレスの範囲などで判定し、ドメイン名は見ないため、IP アドレスが変わるたびに登録し直す必要があり要件に合いません。ネットワーク ACL で 4⁠4⁠3 番だけを許す案は、どのドメインあての HTTPS も通してしまいます。パブリック IP を付けて直接出す案は、外への出口を増やすだけで、あて先のドメインを絞れません。出典 https://docs.aws.amazon.com/network-⁠firewall/latest/developerguide/stateful-⁠rule-⁠groups-⁠domain-⁠names.html

問20証券会社の本社と AWS は Direct Connect でつながっています。監査では、この経路を流れるデータが通信の途中で暗号化されていない点が指摘されました。Direct Connect の安定した帯域と低い遅延は手放したくなく、業務アプリには手を入れない方針です。指摘に応える対応として最も適切なものはどれですか。

正解は「Direct Connect のパブリック仮想インターフェイスの上に Site-⁠to-⁠Site VPN を張って暗号化する」です。Direct Connect は既定では通信の途中を暗号化しません。Direct Connect と Site-⁠to-⁠Site VPN を組み合わせると、パブリック仮想インターフェイスで AWS の VPN の終端に届き、その上に IPsec で暗号化した接続を作れます。Direct Connect の帯域と安定した通信を活かしたまま、アプリには手を入れずに暗号化できます。既定で暗号化されているという案は事実と違い、監査の指摘に応えられません。インターネット越しの VPN だけに切り替える案は、Direct Connect の帯域と遅延を使い続けるという要件に反します。アプリの通信を TLS に替える案は、アプリの改修をしないという要件に反します。出典 https://docs.aws.amazon.com/directconnect/latest/UserGuide/encryption-⁠in-⁠transit.html

データの保護と暗号化

問21保険会社の顧客データは、KMS のカスタマーマネージドキーで暗号化されています。監査では職務の分離を求められました。キーポリシーの変更や削除の予約といった鍵の管理はセキュリティ担当が受け持ちますが、その担当にはデータを復号する権限を持たせません。反対に、アプリが使う IAM ロールは暗号化と復号だけを行い、鍵の管理には触れられないようにします。最も適切な設定はどれですか。

正解は「キーポリシーで、セキュリティ担当を鍵の管理者、アプリのロールを鍵の利用者として分ける」です。KMS の既定のキーポリシーには、鍵の管理者の文と鍵の利用者の文があります。鍵の管理者は鍵を管理する権限を持ちますが、暗号の操作に鍵を使う権限は持ちません。鍵の利用者には暗号化や復号などの暗号の操作だけを許します。この 2 つにセキュリティ担当とアプリのロールを分けて入れれば、職務を分ける要件を満たせます。両方にすべての操作を許す案は、管理者も復号でき、アプリも鍵を管理できるので両方の要件に反します。AWS マネージドキーはキーポリシーを利用者が決められず、職務の分け方を設計できません。アプリのロールに KMS の権限を付けない案では、アプリが暗号化も復号もできません。出典 https://docs.aws.amazon.com/kms/latest/developerguide/key-⁠policy-⁠default.html

問22ある法律事務所は、依頼人の書類を S3 のバケットに置いています。監査で「どの IAM ロールが、いつ、どのオブジェクトを読み出したかを記録に残すこと」を求められました。CloudTrail の証跡は既定の設定のまま作ってあります。最も適切な対応はどれですか。

正解は「証跡で、対象のバケットについて S3 のデータイベントの記録を有効にする」です。CloudTrail の証跡は、既定ではデータイベントを記録しません。S3 のオブジェクトに対する GetObject、PutObject、DeleteObject などの操作はデータイベントに当たるため、対象のバケットについてデータイベントの記録を有効にすると、誰がいつどのオブジェクトを読み出したかが残ります。既定の証跡の管理イベントには、オブジェクトの読み出しは含まれないので要件に合いません。Macie の検出結果は機密データがどこにあるかを示すもので、誰が読んだかの記録ではありません。バージョニングは書き換えの前の版を残す仕組みで、読み出しの記録は残しません。出典 https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-⁠data-⁠events-⁠with-⁠cloudtrail.html

問23病院の電子カルテの検索アプリは、RDS for PostgreSQL 1⁠4 の DB インスタンスに接続しています。監査は、暗号化されていない接続をデータベースの側で断ることを求めました。接続するクライアントは部署ごとに別々に管理されているため、各クライアントの設定に頼った対策は採れません。最も適切な方法はどれですか。

正解は「独自の DB パラメータグループで rds.force_ssl を 1 にし、DB インスタンスに適用する」です。RDS for PostgreSQL では、rds.force_ssl のパラメータを 1 にすると、SSL を使わない接続をデータベースの側で拒否できます。バージョン 1⁠4 以前では既定が 0 (無効) なので、独自の DB パラメータグループを作って値を 1 に変え、DB インスタンスに適用します。保存の暗号化を有効にする案は、保存されたデータを守るもので、通信の途中の暗号化は強制しません。セキュリティグループで送信元を絞る案は、接続できる相手を限るだけで、暗号化されていない接続は通ります。各部署に依頼する案は、クライアントの設定に頼るので要件に反します。出典 https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html

問246⁠0 のアカウントを持つある小売グループで、S3 の誤った公開による情報漏えいを防ぐ方針が決まりました。経営層は「どのアカウントでも、バケットポリシーや ACL の設定ミスで S3 が一般に公開されないこと」を求めています。さらに「この決まりを組織として一元的に強制し、各アカウントの管理者が個別の設定で外せないこと」も条件です。最も適切な方法はどれですか。

正解は「組織のレベルで S3 Block Public Access を有効にし、各アカウントに広げる」です。S3 Block Public Access は、リソースがどのように作られたかに関係なく公開を制限する一元的な仕組みで、組織、アカウント、バケットの各レベルで設定できます。Organizations を使った組織のレベルのポリシーは、選んだメンバーアカウントに自動で広がり、アカウントのレベルの設定より優先されるので、各アカウントの管理者が外すことはできません。毎月点検する案は、点検までの間に公開されたままになり、強制にもなりません。Macie で見つけて手で直す案も事後の対応で、設定ミスそのものを防げません。手順書に書く案は人の注意に頼るだけで、組織としての強制になりません。出典 https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-⁠control-⁠block-⁠public-⁠access.html

問25研究所が実験データを S3 に置き、5 年間は改ざんされないよう守ることにしました。ふつうの研究員は、この 5 年の間に上書きも削除もできないようにします。ただし、誤って個人情報を保存してしまったときに備え、特別な権限を渡した担当者だけは期間中でも削除できる余地を残したいと考えています。最も適切な設定はどれですか。

正解は「Object Lock のガバナンスモードで 5 年の保持を設定し、保持を外す権限を担当者だけに与える」です。ガバナンスモードでは、ふつうの利用者は保持期間中のオブジェクトの版を上書きも削除もできません。ただし BypassGovernanceRetention の権限を持ち、ガバナンスモードを越える指定をリクエストに付けた人だけは、期間中でも保持を外して削除できます。コンプライアンスモードは、ルートユーザーを含めて誰も期間中に削除できず、保持期間も短くできないため、2 つ目の要件に反します。バージョニングとバケットポリシーの組み合わせは、ポリシーを書き換えられる管理者なら誰でも削除できてしまいます。リーガルホールドには期限が無く、明示的に外すまで続くので、5 年という期限を設定する案は成り立ちません。出典 https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-⁠lock.html

問26ある自治体は、窓口システムのアクセスログを、バージョニングを無効にした S3 のバケットに保存しています。条例で「ログは保存から 3 年を過ぎたら速やかに消すこと」と決まっています。要件は「削除の作業を、人の手や自作のプログラムに頼らないこと」です。最も適切な方法はどれですか。

正解は「S3 ライフサイクルの有効期限のアクションで、保存から 1⁠0⁠9⁠5 日後にログを消させる」です。S3 ライフサイクルの設定に有効期限 (Expiration) のアクションを足すと、オブジェクトが決めた寿命に達したときに S3 が自動で削除します。バージョニングを無効にしたバケットでは、期限を迎えたオブジェクトはそのまま削除されるので、人やプログラムに頼らず条例の決まりを守れます。Intelligent-⁠Tiering はアクセスの頻度に応じて保存の層を移す仕組みで、オブジェクトを消しません。コンプライアンスモードの Object Lock は期間中の削除を防ぐ仕組みで、期間が過ぎても自動では消えません。Lambda 関数で消す案は、自作のプログラムに頼らないという要件に反します。出典 https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-⁠expire-⁠general-⁠considerations.html

問27ある会社は監査で「今後このリージョンで作る EBS ボリュームは、すべて暗号化されていること」を求められました。EC2 を起動する担当者は多く、起動のたびに担当者が暗号化の指定を忘れないことに頼りたくありません。既存のボリュームの扱いは別の計画で進めます。最も適切な方法はどれですか。

正解は「そのリージョンで、アカウントの EBS のデフォルトの暗号化を有効にする」です。EBS のデフォルトの暗号化を有効にすると、そのアカウントでこれから作る EBS ボリュームとスナップショットのコピーが必ず暗号化されます。インスタンスの起動で作られるボリュームも対象で、担当者が指定を忘れても暗号化されます。この設定はリージョンごとで、有効にしたリージョンでは個々のボリュームで外せません。既存のボリュームやスナップショットには効かないため、既存分は別の計画で扱う前提とも合います。手順書で周知する案は、担当者の注意に頼るので要件に反します。スナップショットをコピーし直す案は既存分の対応で、今後作るボリュームは暗号化されません。インスタンスストアだけを使う案は、ボリュームを暗号化するという要件の答えになりません。出典 https://docs.aws.amazon.com/ebs/latest/userguide/encryption-⁠by-⁠default.html

問28ある EC サイトの注文テーブル (DynamoDB) に、不具合のあるバッチが誤った値を書き込み、気づいたのは 3 時間後でした。再発に備え、要件は「過去 3⁠5 日以内の任意の時点 (秒の単位) の状態のテーブルに戻せること」と「バックアップの日程を組んで管理する運用をしないこと」です。同じリージョンの中での復旧を想定します。最も適切な方法はどれですか。

正解は「注文テーブルで、ポイントインタイムリカバリ (PITR) を有効にしておく」です。PITR は DynamoDB が自動で取り続けるバックアップで、最大 3⁠5 日分の復旧点を秒の単位で持ちます。バックアップの作成や日程の管理は要らず、誤った書き込みの直前の時点を指定して新しいテーブルに戻せます。毎晩オンデマンドバックアップを取る案は、日程を組む運用が要るうえ、戻せるのは取った時点だけで、秒の単位の要件を満たしません。DynamoDB Streams は変更を後続の処理に渡す仕組みで、テーブルを過去の時点に戻す機能ではありません。グローバルテーブルは書き込みをほかのリージョンにも複製するため、誤った値もそのまま複製され、過去の時点には戻せません。出典 https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Point-⁠in-⁠time-⁠recovery.html

問29ある出版社は、東京リージョンの ALB の前に CloudFront を置き、独自ドメインで利用者と CloudFront の間を HTTPS にしたいと考えています。証明書は ACM で発行する方針です。担当者が東京リージョンで ACM の証明書をリクエストしたところ、CloudFront のディストリビューションの設定でその証明書を選べませんでした。最も適切な対応はどれですか。

正解は「米国東部 (バージニア北部) リージョンで ACM の証明書をリクエストし、CloudFront に付ける」です。利用者と CloudFront の間の HTTPS に ACM の証明書を使うには、その証明書を米国東部 (バージニア北部) リージョン (us-⁠east-⁠1) でリクエストするか、そこにインポートする必要があります。CloudFront はこのリージョンの証明書だけを選べるため、東京で発行した証明書は表示されません。東京でリクエストし直す案は、同じ理由でやはり選べません。ALB にだけ付ける案は、CloudFront と ALB の間は守れても、利用者と CloudFront の間を独自ドメインで HTTPS にするという要件を満たしません。証明書を S3 に置いて読ませる仕組みは CloudFront にはなく、証明書の設定になりません。出典 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-⁠and-⁠https-⁠requirements.html

問30ある会社は、RDS for PostgreSQL の手動スナップショットを、分析用の別の AWS アカウントに共有したいと考えています。この DB は、作成時に RDS の既定の KMS キーで暗号化されており、共有しようとしたところ操作できませんでした。要件は「暗号化したまま共有すること」と「共有の相手を分析用のアカウントだけに限ること」です。最も適切な手順はどれですか。

正解は「カスタマーマネージドキーを作って分析用アカウントに使用を許可し、そのキーでコピーしてから共有する」です。RDS では、共有元のアカウントの既定の KMS キーで暗号化したスナップショットは共有できません。回避の手順は、カスタマーマネージドキーを作って相手のアカウントにそのキーの使用を許可し、そのキーでスナップショットをコピーしてから、コピーを相手のアカウントに共有するというものです。暗号化されたスナップショットはパブリックに共有できず、相手を限る要件にも反します。既定のキーのまま共有先を足し直しても、既定のキーで暗号化されている限り共有はできません。暗号化せずにダンプを置く案は、暗号化したまま共有するという要件に反します。出典 https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/share-⁠encrypted-⁠snapshot.html

ほかの分野

  • 弾力性のある設計

    疎結合とスケール、高可用性と災害対策

    26問解く
  • 高性能な設計

    ストレージの性能、コンピューティングとデータベースの性能、ネットワークとデータ取り込みの性能

    24問解く
  • コスト最適化の設計

    ストレージとネットワークのコスト、コンピューティングとデータベースのコスト

    20問解く

AWS ソリューションアーキテクト アソシエイトの頁に、4分野の入口と試験の案内があります。

続きはゆめさくで

試験の知識を仕事につなげる一歩を、ここにまとめています。