SAP-C02複雑な組織に対応するソリューションの設計HARD単一選択

ある企業が AWS Organizations で管理するマルチアカウント環境において、AWS Lambda 関数の実行ロールに付与される権限の上限を組織レベルで制限したいと考えています。特定のサービス(例: ec2:TerminateInstances)は Lambda からは絶対に呼び出せないようにし、たとえ開発者が Lambda の実行ロールにその権限を付与しても効果がないようにしたいと考えています。最も適切な実装はどれですか?

  1. A. AWS Lambda のリソースベースのポリシーで ec2:TerminateInstances を Deny する
  2. B. IAM パーミッションバウンダリーを全 Lambda 実行ロールに設定し、ec2:TerminateInstances を含めないようにする
  3. C. Organizations の SCP で ec2:TerminateInstances を Deny する際に、aws:CalledVia 条件キーで Lambda サービスからの呼び出しに限定して Deny する。または、SCP で Lambda が引き受けるロールに対してより広い Deny を設定し、実行ロールへの権限付与自体を組織的に制限する
  4. D. Lambda 関数のコードレビューで ec2:TerminateInstances の呼び出しが含まれていないか確認する
解答と解説を見る

正解: C

SCP は Organizations の OU やアカウントに適用され、配下のすべての IAM プリンシパル(Lambda 実行ロールを含む)の権限の上限を制限します。SCP で ec2:TerminateInstances を Deny すると、たとえ Lambda 実行ロールにその権限が付与されていても実際には呼び出しが拒否されます。aws:CalledVia 条件を使うと Lambda サービスからの呼び出しのみに制限を絞ることも可能です。 A: Lambda のリソースベースポリシーは Lambda を呼び出す権限を制御するものであり、Lambda が他の AWS サービスを呼び出す権限の制限には使えません。 D: コードレビューは人的プロセスで、確実性がなく、デプロイ後の変更には対応できません。 B: パーミッションバウンダリーは有効ですが、全 Lambda 実行ロールに手動で設定するのは管理負荷が高く、設定漏れのリスクがあります。SCP の方が組織全体への強制適用が確実です。

▸ この試験を本気で演習する(全150問・無料)