【CLF-C02 試験対策問題 第29問】EC2 のアプリケーションに権限を与える(IAM ロール)

CLF-C02 試験対策問題 第29問 EC2 のアプリケーションに権限を与える(IAM ロール) クラウド

「EC2 から DynamoDB に書き込むのに、セキュリティグループで通信を許可するだけでは足りないのはなぜですか」
「アクセスキーを設定ファイルに書くのが、いちばん確実だと思っていました」

AWS Certified Cloud Practitioner(試験コード CLF-C02。以下 CLF)では、EC2 のアプリケーションに、アクセスキーを置かずに権限を与える方法を選ぶ問題が出ます。通信の許可と操作の権限の違い、ルートユーザーや IAM ユーザーのアクセスキーがなぜ避けられるかが、選択肢の誤りの論点になります。

この記事は、CLF の練習問題を1問ずつ解説する連載の第29問です。問題は筆者が試験の範囲に合わせて作ったもので、実際の試験の問題ではありません。まず自分で答えを選んでから、解説を読んでください。

▶ この回の内容は、YouTube の動画(約5分)でも見られます(記事の最後にも埋め込んであります)。


問題

ある企業は、Amazon EC2 インスタンスで動くアプリケーションから、Amazon DynamoDB のテーブルにデータを書き込みます。長期間使えるアクセスキーをインスタンスに置かずに、必要な権限だけを与えたいと考えています。最も適切な方法はどれですか。

  • A. セキュリティグループのアウトバウンドルールで、DynamoDB への通信を許可する
  • B. AWS アカウントのルートユーザーのアクセスキーを、インスタンスの環境変数に設定する
  • C. DynamoDB のテーブルへの書き込みだけを許可した IAM ロールを作り、インスタンスにアタッチする
  • D. IAM ユーザーを作ってアクセスキーを発行し、アプリケーションの設定ファイルに書く

答えを決めたら、下を開いてください。

正解を見る(クリックで開きます)

正解:C

書き込みだけを許可した IAM ロールをインスタンスにアタッチすると、アプリケーションは一時的な認証情報を自動で受け取れます。アクセスキーを置かずに、必要な権限だけを与えられます。


正解は C

正解は C です。

書き込みだけを許可した IAM ロールを、インスタンスにアタッチします。アプリケーションは、一時的な認証情報を自動で受け取るので、アクセスキーを置かずに済みます。ここから、選択肢を1つずつ見ていきます。


選択肢ごとの解説

A:通信の許可は権限ではない(誤り)

左上は EC2 インスタンスのアプリケーションから、アウトバウンド通信を許可したセキュリティグループを通って DynamoDB へ向かうが、書き込みは拒否される。左下は、書き込むには2つとも通る必要があり、通信を通すか(セキュリティグループ)は許可して通る、操作してよいか(IAM の権限)は与えていないので拒否。右は「通信の許可と操作の権限は別」「権限は与えない」

セキュリティグループは、通信を通すかどうかを決める、ネットワークの門です。DynamoDB にデータを書き込むには、通信が通ることに加えて、IAM の権限が要ります。

図のように、アウトバウンドルールで通信を許可しても、IAM の権限が無ければ、書き込みは拒否されます。通信の許可と、操作の権限は、別のものです。

B:ルートユーザーのキーは使わない(誤り)

左上は EC2 インスタンスの環境変数にルートユーザーのアクセスキーを置き、アカウントのすべてを操作できるルートユーザーとして動く。このキーでできる操作は、DynamoDB への書き込み(必要なのは緑の枠のこれだけ)のほか、テーブルの削除、EC2 の終了、S3 のデータの削除、IAM ユーザーの作成、請求情報の確認、RDS の DB の削除、アカウントの閉鎖。右は「必要な権限だけにならない」

ルートユーザーは、AWS アカウントのすべてを操作できる、特別なユーザーです。図のように、そのアクセスキーを使うと、アプリケーションはテーブルの削除や、アカウントの閉鎖まで、何でもできてしまいます。必要な権限だけ、という要件に反します。

ルートユーザーのアクセスキーは、作らないのが原則です。長期間使えるキーなので、漏れるとアカウントのすべてが危険になります。

C:IAM ロールをアタッチする(正解)

左上の IAM ロール(ポリシー:DynamoDB のテーブルへの書き込みだけ許可)を、インスタンスプロファイルで EC2 インスタンスにアタッチする。アプリケーション(AWS SDK・CLI)が DynamoDB のテーブルへ書き込む。一時的な認証情報は、インスタンスメタデータから自動で渡され、AWS が自動でローテーションする。右は「最小権限」で、アクセスキーを置かない

書き込みだけを許可した IAM ロールを、インスタンスにアタッチします。インスタンスプロファイルという仕組みです。

アプリケーションは、インスタンスメタデータから、一時的な認証情報を受け取ります。AWS SDK や CLI は、これを自動で使います。一時的な認証情報は、AWS が自動でローテーションします。ロールのポリシーを変えると、新しい権限の認証情報が自動で渡されます。

アクセスキーを置かずに済み、必要な権限だけにもなります。

D:長期のアクセスキーは置かない(誤り)

IAM ユーザーに発行したアクセスキーを、EC2 インスタンスのアプリケーションの設定ファイル(access_key と secret_key)に書く。コードの公開・バックアップなどから漏れて、第三者が同じ権限でいつでも使える。長期の認証情報は、削除・無効化するまで使い続けられ、自分でローテーションする必要がある。右は「要件に反する」で、EC2 には IAM ロールを使う

IAM ユーザーのアクセスキーは、長期間使える認証情報です。削除や無効化をするまで使い続けられます。

設定ファイルに書くと、図のように、コードの公開やバックアップから漏れたとき、第三者に悪用されるおそれがあります。そもそも、長期間使えるアクセスキーを置かない、という要件に反します。EC2 のアプリケーションには、IAM ロールを使います。


長期の認証情報と一時的な認証情報

長期の認証情報と一時的な認証情報の違いを、表で整理します。大きな違いは、置く必要があるかどうかと、ローテーションをだれが行うかです。

項目長期の認証情報一時的な認証情報
例IAM ユーザー・ルートユーザーのアクセスキーIAM ロール(EC2 のインスタンスプロファイル)
置き場所設定ファイル・環境変数などに自分で置く置かない。インスタンスメタデータから受け取る
使える期間削除・無効化するまで期限がある
ローテーション自分で行うAWS が自動で行う

ポイント

  • EC2 のアプリケーションに権限を与える = IAM ロール をアタッチ
  • 一時的な認証情報が 自動で渡され、自動でローテーション
  • アクセスキーを 設定ファイル・環境変数に置かない
  • セキュリティグループは 通信の許可。操作の権限は IAM

IAM ロールの仕組みと、ルートユーザーのアクセスキーを作らない理由は、講座の記事で詳しく解説しています。

  • 講座の第10回⑤「IAM と最小権限」の「IAM ロール」の節(連載の入口のページから)
  • 講座の第10回④「AWS アカウントとルートユーザー」の「ルートユーザーの守り方」の節(連載の入口のページから)

講座の全14回は、連載の入口のページから順に読めます。


動画で見る

この回の内容を、YouTube の動画(約5分)でも解説しています。

連載の全回は、YouTube の再生リスト「CLF-C02 試験対策問題」にまとめています。

連載「CLF-C02 試験対策問題」

全回の目次と、読む順番・目的別の読み方は、CLF-C02 試験対策問題の入口のページにまとめています。

  1. 第1問 初期費用をかけずに始めるコストの利点(従量課金・規模の経済)
  2. 第2問 数分でグローバルに展開(世界同時公開と低い遅延)
  3. 第3問 高可用性(EC2 の複数 AZ 配置と RDS マルチ AZ)
  4. 第4問 クラウドの俊敏性(数分で作成・すぐに削除)
  5. 第5問 責任共有モデル(EC2 へのリホストで AWS に任せられること)
  6. 第6問 数時間だけのアクセスのピークに備える(EC2 Auto Scaling・オンデマンド)
  7. 第7問 Well-Architected の6つの柱(信頼性・パフォーマンス効率)
  8. 第8問 信頼性の柱の設計原則(自動で復旧・水平方向のスケール)
  9. 第9問 持続可能性の柱の設計原則(使用率の最大化・マネージドサービス)
  10. 第10問 AWS CAF の変革ジャーニーのフェーズ(構想・連携・ローンチ・スケール)
  11. 第11問 AWS CAF のパースペクティブ(構成管理・パッチ管理はオペレーション)
  12. 第12問 移行のビジネスケース(Migration Evaluator)
  13. 第13問 AWS CAF のパースペクティブ(役割と組織の変化は人材)
  14. 第14問 サーバーをそのまま EC2 に移す(AWS Transform MGN)
  15. 第15問 ファイルの移行(AWS DataSync)
  16. 第16問 移行戦略の7つの R(リパーチェス・SaaS への乗り換え)
  17. 第17問 適切なサイズ設定(CPU は余り、メモリが不足)
  18. 第18問 責任共有モデル(Lambda と RDS)
  19. 第19問 最小権限の原則(IAM のポリシーと SCP)
  20. 第20問 責任共有モデル(EC2 と S3、AWS の責任)
  21. 第21問 共有統制の例(責任共有モデルの IT 統制)
  22. 第22問 コンプライアンスの資料と契約(AWS Artifact)
  23. 第23問 脅威の検出(Amazon GuardDuty)
  24. 第24問 脆弱性の継続的なスキャン(Amazon Inspector)
  25. 第25問 S3 の機密データの検出(Amazon Macie)
  26. 第26問 S3 の保管時の暗号化とキーの管理
  27. 第27問 だれが操作したかを調べる(AWS CloudTrail)
  28. 第28問 IAM ユーザーの認証情報の一覧(認証情報レポート)
  29. 第29問 EC2 のアプリケーションに権限を与える(IAM ロール)(この記事)
  30. 第30問 データベースのパスワードの自動ローテーション(AWS Secrets Manager)
  31. 第31問 社員に一時的な認証情報を発行するサービス(AWS STS)
  32. 第32問 ルートユーザーでなければできない作業(アカウントの閉鎖・メールアドレスの変更)
  33. 第33問 アプリの会員のサインインとソーシャルログイン(Amazon Cognito)
  34. 第34問 同じ IP からの大量のリクエストを止める(AWS WAF のレートベースのルール)
  35. 第35問 追加料金なしの DDoS 保護(AWS Shield Standard)
  36. 第36問 他社のソフトウェアを AMI で使う(AWS Marketplace)
  37. 第37問 インストールなしでブラウザから AWS CLI を使う(AWS CloudShell)
  38. 第38問 同じ構成の環境をコードで何度でも作る(CloudFormation・CDK)
  39. 第39問 工場の中で AWS のサービスを動かすには(AWS Outposts)
  40. 第40問 世界の利用者の近くでキャッシュして配信(Amazon CloudFront)
  41. 第41問 コードを上げるだけで Web アプリを動かすサービス(AWS Elastic Beanstalk)
  42. 第42問 サーバーを管理せずにコンテナを動かす(AWS Fargate)
  43. 第43問 URL のパスで振り分けるロードバランサー(Application Load Balancer)
  44. 第44問 つながりを何段もたどるグラフデータベース(Amazon Neptune)
  45. 第45問 RDS の自動フェイルオーバーと読み取りの分離(マルチ AZ・リードレプリカ)
  46. 第46問 サーバーの管理なしにアクセスの増減に合わせるデータベース(Amazon DynamoDB)
  47. 第47問 セキュリティグループの特徴(ステートフル・インスタンス単位)
  48. 第48問 障害のときだけ別のリージョンへ DNS で切り替え(Route 53 のフェイルオーバールーティング)
  49. 第49問 今あるインターネット回線で、すぐに暗号化してつなぐ(AWS Site-to-Site VPN)
  50. 第50問 一部の管理者だけは解除できる削除の保護(S3 オブジェクトロックのガバナンスモード)
  51. 第51問 めったに見ないがミリ秒で開く画像の保管(S3 Glacier Instant Retrieval)
  52. 第52問 Windows のファイルサーバーを移す(Amazon FSx for Windows File Server)
  53. 第53問 案内文を翻訳して音声で読み上げる(Amazon Translate と Amazon Polly)
  54. 第54問 S3 のデータをカタログにして SQL で照会(AWS Glue と Amazon Athena)
  55. 第55問 依頼をためて、受け付けた順に1回だけ処理(Amazon SQS の FIFO キュー)
  56. 第56問 設備を買わずに電話とチャットの窓口を作る(Amazon Connect)
  57. 第57問 EC2 と自社のサーバーに少しずつ配置し、失敗したら戻す(AWS CodeDeploy)
  58. 第58問 アプリだけをブラウザに配信(WorkSpaces Applications・旧 AppStream 2.0)
  59. 第59問 コア単位のライセンスを持ち込み、同じ物理サーバーで動かす(EC2 の専有ホスト)
  60. 第60問 EC2・Fargate・Lambda と夜間のバッチのコスト削減(Compute Savings Plans・スポット)
  61. 第61問 管理者も外せないリージョンの制限と、請求書の一本化(AWS Organizations の SCP)
  62. 第62問 1つのアカウントの料金をプロジェクトごとに分ける(コスト配分タグ)
  63. 第63問 料金のグラフと予算超えの通知(Cost Explorer・Budgets)
  64. 第64問 アカウントを作る前に料金を見積もる(AWS Pricing Calculator)
  65. 第65問 ベストプラクティスに合わない所を自動で見つける(AWS Trusted Advisor)
  66. 第66問 AWS 側の保守の予定を前もって知る(AWS Health Dashboard)
  67. 第67問 アクセスに合わせて台数を自動で増減する(Amazon EC2 Auto Scaling)
  68. 第68問 パフォーマンス効率の柱の設計原則(高度なテクノロジー・グローバル展開)
  69. 第69問 移行戦略の7つの R(リタイア・使われていないアプリを停止)
  70. 第70問 AWS CAF のパースペクティブ(支出とデータの統制はガバナンス)
  71. 第71問 ライセンスを持たずに SQL Server を使う(RDS のライセンス込み)
  72. 第72問 EC2 と自社のサーバーのパッチを自動で当てる(AWS Systems Manager Patch Manager)
  73. 第73問 障害の教訓を共有し、運用の手順を見直す(運用上の優秀性の設計原則)
  74. 第74問 設定の履歴を記録し、社内ルールに合わないリソースを「非準拠」にする(AWS Config)
  75. 第75問 S3 へのアップロードごとに短い処理をサーバーレスで動かす(AWS Lambda)
  76. 第76問 12のアカウントと SaaS に1回でサインイン(AWS IAM Identity Center)
  77. 第77問 インターネットを通らずに、帯域とレイテンシーを安定させる(AWS Direct Connect)
  78. 第78問 途中でファミリーを変え、前払いできない RI の選び方(コンバーティブル・前払いなし)
  79. 第79問 セキュリティの検出結果を集めて設定もチェック(AWS Security Hub CSPM)
  80. 第80問 AWS CAF のパースペクティブ(イノベーションとデータの収益化はビジネス)
  81. 第81問 特定の IP アドレスの範囲を、サブネットの入り口で拒否する(ネットワーク ACL)
  82. 第82問 組織の外と共有・一般に公開されているリソースを一覧にする(IAM Access Analyzer)
  83. 第83問 複数の AZ の EC2 から NFS で同じファイルを共有する(Amazon EFS)
  84. 第84問 ルートユーザーの守り方と日常の作業(MFA・IAM Identity Center)
  85. 第85問 一括請求の料金の利点(ボリューム料金の階層・リザーブドインスタンスの割引の共有)
  86. 第86問 数ペタバイトの販売データをまとめて毎日集計する(Amazon Redshift)
  87. 第87問 OS のパッチを自社で当てなくてよい移行先(Amazon RDS・AWS Lambda)
  88. 第88問 移行戦略の7つの R(リプラットフォーム・VM をコンテナにして ECS と Fargate へ)
  89. 第89問 GPU の学習と CPU のバッチ処理に合うインスタンスファミリー(高速コンピューティング・コンピューティング最適化)
  90. 第90問 アプリのエラーの件数と CPU 使用率をしきい値で見張り、E メールで知らせる(Amazon CloudWatch)
  91. 第91問 1回の発行で SQS・Lambda・E メールに届ける(Amazon SNS のトピック)
  92. 第92問 部署の人の権限を追加料金なしでまとめて管理(IAM ユーザーグループ)
  93. 第93問 最も詳しいコストのデータを S3 へ(AWS Data Exports の CUR 2.0)
  94. 第94問 視聴履歴とクリックから利用者ごとの動画のおすすめ(Amazon Personalize)
  95. 第95問 攻撃中の専門チームの支援と DDoS のコスト保護(AWS Shield Advanced)
  96. 第96問 AWS CAF のトランスフォーメーションの分野(業務のデジタル化はプロセス)
  97. 第97問 パブリックとプライベートのサブネットに必要な部品(インターネットゲートウェイ・NAT ゲートウェイ)
  98. 第98問 SSH・コンソール・CLI の認証情報の使い分け(キーペアとアクセスキー)
  99. 第99問 よくある質問の解決の記事を読む(AWS re:Post のナレッジセンター)
  100. 第100問 設定値を階層でまとめて追加料金なしで保管(Parameter Store)
seichan

プロフィール詳細は「プロフィール」をご覧ください。
AWS Certified Solutions Architect – Professional (https://www.credly.com/badges/fd8feb88-6f1f-42ff-a94b-445bb6661cb8/public_url)
Nutanix Certified Professional - Multicloud Infrastructure 6 (https://www.credly.com/badges/5c081bef-a425-42e4-809c-85138e676630/public_url)
Palo Alto Networks System Engineer (PSE) - Hardware Firewall Professional (https://www.credly.com/badges/69dc3880-4a51-47eb-8843-47ba6ea7d013/public_url)

seichanをフォローする
クラウド資格
シェアする
seichanをフォローする

コメント

タイトルとURLをコピーしました