Udemy講師クーポン配布中。詳しくはこちら

【無料】AWS DOP-C02練習問題15問|Udemy講師作成

AWS DOP無料問題集です。正解と解説を確認する際は右側のボタンを押下してください。

問題集の完全版は以下Udemyにて発売しているためお買い求めください。問題集への質問はUdemyのQA機能もしくはUdemyのメッセージにて承ります。Udemyの問題1から15問抜粋しております。

多くの方にご好評いただき、講師評価 4.5/5.0 を獲得できております。ありがとうございます。

特別価格: 通常2,600円1,500円

講師クーポン適用で42%OFF

講師クーポン【全出題範囲網羅+詳細解説】AWS DOP-C02日本語実践問題225問(DevOps Engineer Pro)

【全出題範囲網羅+詳細解説】AWS DOP-C02日本語実践問題225問(DevOps Engineer Pro)

問題文:
開発者がAWS Organizationsの組織に含まれる共有AWS開発アカウント内で、Software as a Service (SaaS)アプリのPoC(概念実証)に取り組んでいます。このプロジェクトでは、サービスにリンクされたIAMロールを作成する必要があります。開発者が最小限の権限を保持してでこれらのサービス専用ロールのみを作成および管理できるようにするには、どのようなアプローチが最適でしょうか?
選択肢:
A. 開発者がポリシーやロールを生成するために必要なIAM権限を持つIAMロールを作成する。このロールに制限を定義する権限境界を適用する。このロールを開発者が引き受けられるようにする。
B. 開発者をIAMグループに追加し、PowerUserAccessの管理ポリシーを関連付ける。ユーザーアカウントに多要素認証 (MFA) を強制する。
C. 組織の管理アカウントに開発者用のIAMユーザーを作成し、開発アカウントに制限されたアクセススコープを持つクロスアカウントロールを設定する。
D. AWS Organizations内の開発アカウントに対して、iam:*を対象としたDenyルールを含むサービスコントロールポリシー (SCP) を実装して、開発者のアクセスを最小限に抑える。

正解:A

A. 開発者がポリシーやロールを生成するために必要なIAM権限を持つIAMロールを作成する。このロールに制限を定義する権限境界を適用する。このロールを開発者が引き受けられるようにする。

正解 この方法は、最小権限の原則を維持しながら、開発者が必要なサービスリンクロールを作成・管理できるようにする最適な方法です。IAM権限境界(permissions boundary)は、ユーザーやロールが持つことのできる最大権限を定義するポリシーで、権限の昇格や意図しない権限の付与を防止する仕組みです。具体的には、以下の理由からこの方法が最適です:

  1. 最小権限の実現: 必要なIAM権限(サービスリンクロール作成と管理)のみを持つIAMロールを作成し、それを開発者が引き受けられるようにすることで、必要最小限の権限を提供できます。
  2. 権限の境界設定: 権限境界を適用することで、ロールが持つ権限の上限を設定でき、特定のサービスリンクロールの作成・管理以外の操作を防止できます。
  3. 柔軟性と安全性のバランス: 開発者はロールを引き受けることで必要な作業を行えますが、権限境界によって制限されているため、意図しない操作や権限の昇格のリスクが軽減されます。
  4. 共有開発アカウントでの作業に適合: 共有アカウント内で他の開発者に影響を与えることなく、特定のサービスリンクロールに関連する作業を行うことができます。

この方法は、「最小限の権限を保持してサービス専用ロールのみを作成および管理できるようにする」という要件を正確に満たしています。

B. 開発者をIAMグループに追加し、PowerUserAccessの管理ポリシーを関連付ける。ユーザーアカウントに多要素認証 (MFA) を強制する。

不正解 PowerUserAccessは非常に広範な権限を提供するAWS管理ポリシーであり、IAMリソース以外のほぼすべてのAWSサービスへのフルアクセスを許可します。この選択肢は「最小限の権限」という要件に明らかに違反しています。開発者がサービスリンクロールのみを作成・管理するには、これよりもはるかに限定的な権限セットで十分です。MFAの強制は良いセキュリティプラクティスですが、それ自体では権限を制限するものではなく、認証手順を強化するだけです。また、PowerUserAccessポリシーはIAMロールやポリシーの作成を制限しているため、サービスリンクロールの作成にも制限がかかる可能性があります。この方法は要件を満たしておらず、過剰な権限を付与するリスクがあります。

C. 組織の管理アカウントに開発者用のIAMユーザーを作成し、開発アカウントに制限されたアクセススコープを持つクロスアカウントロールを設定する。

不正解 この方法には複数の問題があります。まず、AWS Organizationsの管理アカウントに直接IAMユーザーを作成することは、セキュリティのベストプラクティスに反します。管理アカウントは組織全体に影響を与える特権的なアカウントであり、日常的な開発作業のためのユーザーを作成すべきではありません。また、クロスアカウントロールを使用すると、開発者が管理アカウントの権限で開発アカウントにアクセスすることになり、権限の昇格リスクが生じます。さらに、この方法ではサービスリンクロールの作成と管理に特化した「最小限の権限」を提供するという要件を満たしていません。クロスアカウントアクセスでは通常、より広範な権限セットが必要になり、権限の過剰付与につながる可能性があります。

D. AWS Organizations内の開発アカウントに対して、iam:*を対象としたDenyルールを含むサービスコントロールポリシー (SCP) を実装して、開発者のアクセスを最小限に抑える。

不正解 この方法は、根本的な問題を抱えています。サービスコントロールポリシー(SCP)でiam:*アクションをDeny(拒否)すると、IAMに関連するすべてのアクションが禁止されてしまいます。これには当然、サービスリンクロールの作成も含まれるため、開発者は必要な作業を行うことができなくなります。SCPは組織全体またはアカウントレベルで適用される広範な制限であり、特定のユーザーやロールに対して選択的な権限を付与するためのものではありません。

全体的な説明

問われている要件

この問題では、AWS Organizationsの組織構造内にある共有開発アカウントで作業している開発者が、SaaSアプリのPoCに必要なサービスリンクロールを作成・管理できるようにする最適な方法を選択する必要があります。主な要件は:

  1. 開発者はサービスリンクロール(AWS Services専用のIAMロール)を作成・管理できる必要がある
  2. 最小限の権限で作業を行えるようにする必要がある
  3. 共有開発アカウント内での作業であるため、他の開発者やリソースへの影響を最小限に抑える必要がある

これらの要件を満たすには、適切なIAMアクセス制御方法を選択する必要があります。

前提知識

サービスリンクロール(Service-Linked Role)

サービスリンクロールは、AWS サービスがユーザーに代わって他のAWSサービスにアクセスするために使用する特殊なタイプのIAMロールです:

  1. 特徴
    • 事前定義された権限を持ち、サービスによって管理される
    • ロール名は通常 AWSServiceRoleFor[ServiceName] という形式
    • 特定のサービスに紐付けられており、そのサービスによってのみ引き受けられる
  2. 作成方法
    • サービスのコンソール、API、CLI、または CloudFormation を使用して作成
    • 作成には iam:CreateServiceLinkedRole 権限が必要
    • サービスによっては、そのサービスを初めて使用する際に自動的に作成される場合もある

IAM権限境界(Permissions Boundary)

IAM権限境界は、アイデンティティベースのポリシーによってIAMユーザーまたはロールに付与できる最大権限を設定するための仕組みです:

  1. 機能
    • IAMエンティティ(ユーザーやロール)に設定できる最大権限を制限する
    • エンティティに付与されている権限がどれだけ広範であっても、権限境界を超えることはできない
  2. 設定方法
    • 管理ポリシーまたはカスタムポリシーを使用して権限境界を設定
    • ユーザーまたはロールの作成時、または既存のエンティティに対して設定可能
  3. 評価ロジック
    • IAMが権限を評価する際、アイデンティティベースのポリシーと権限境界の共通部分のみが有効となる
    • つまり、両方のポリシーで許可されているアクションのみが実行可能
  4. 利点
    • 権限の昇格を防止できる
    • 特定の業務に必要な権限のみを付与することが容易になる
    • 共有環境での権限管理が容易になる

AWS Organizationsとアクセス管理

AWS Organizationsは、複数のAWSアカウントを一括管理するためのサービスです:

  1. 構造
    • 管理アカウント(旧マスターアカウント):組織の作成と管理を行うアカウント
    • メンバーアカウント:組織に属する他のアカウント
    • 組織単位(OU):アカウントを論理的にグループ化する構造
  2. サービスコントロールポリシー(SCP)
    • 組織内のアカウントに対するアクセス許可の上限を設定するポリシー
    • IAMポリシーと同様のJSON形式で記述されるが、直接権限を付与するわけではなく、最大権限を制限する
    • 組織全体、特定のOU、または個別のアカウントに適用可能
  3. ベストプラクティス
    • 管理アカウントは日常的な業務に使用せず、組織の管理専用とする
    • 権限は必要最小限に保ち、最小特権の原則に従う
    • 多要素認証(MFA)を強制するなどのセキュリティ強化策を実装する

解くための考え方

この問題を解決するための最適な方法を選択するには、以下の観点で各選択肢を評価する必要があります:

  1. 最小権限の原則
    • サービスリンクロールの作成・管理に必要な最小限の権限だけを付与しているか
    • 不必要な権限を制限する仕組みがあるか
  2. 共有環境での安全性
    • 共有開発アカウント内での他のリソースやユーザーへの影響を最小限に抑えられるか
    • 権限の昇格や誤用を防止する仕組みがあるか
  3. 実用性
    • 開発者が必要な作業(サービスリンクロールの作成・管理)を効率的に行えるか
    • 管理オーバーヘッドは最小限か

これらの観点から各選択肢を分析すると:

  • 管理アカウントでのIAMユーザー作成とクロスアカウントロール
    • 管理アカウントでのIAMユーザー作成はセキュリティリスクがある
    • クロスアカウントアクセスは必要以上に広範な権限を与える可能性がある
    • 最小権限の原則に反する
  • PowerUserAccessポリシーとMFA強制
    • PowerUserAccessは必要以上に広範な権限を付与する
    • MFAはアクセス権を制限するものではなく、認証を強化するだけ
    • 最小権限の原則に明らかに反する
  • *iam:をDenyするSCP実装
    • すべてのIAMアクションを拒否するため、サービスリンクロールの作成も不可能になる
    • 目的の作業が実行できなくなる
    • 適切なアクセス制御を実現していない
  • IAMロール作成と権限境界の適用
    • 必要なIAM権限のみを持つロールを作成し、開発者が引き受けることで最小権限を実現
    • 権限境界によって最大権限を制限し、誤用や権限昇格を防止
    • 共有環境での安全な作業を可能にし、実用性も確保

以上の分析から、「IAMロール作成と権限境界の適用」が最適な方法であることがわかります。この方法では、開発者はロールを引き受けることで必要な権限を一時的に取得し、サービスリンクロールの作成・管理を行うことができます。同時に、権限境界によって権限の範囲が制限されるため、意図しない操作や権限の昇格のリスクが最小化されます。

参考資料

筆者のUdemy講師ページはこちら。

Udemy
syo @Cloud | AWS,Azure| Udemy syo @Cloud is a Udemy instructor with educational courses available for enrollment. Check out the latest courses taught by syo @Cloud
目次

スポンサーリンク

以下スポンサーリンクです。

この記事がお役に立ちましたら、コーヒー1杯分(300円)の応援をいただけると嬉しいです。いただいた支援は、より良い記事作成のための時間確保や情報収集に活用させていただきます。

目次