この記事は生成AIの助けを借りて書いています。
はじめに
AWS認定試験の勉強をしていると、IAMロール、リソースベースポリシー
のどちらを使えばよいのか迷うことがあります。私も何度も間違えました。
しかし、「誰が、どのAWSリソースに対して操作するのか」を整理すると、かなり判断しやすくなります。
この記事では、AWS認定試験でよく出てくる8パターンを使って整理します。
基本的な考え方
※本記事の「→」は、サービス間の呼び出し・アクセスの方向を表しています。ネットワーク経路やリージョン間通信を表すものではありません。サービスの組み合わせによってはリージョン制約があります。
・LambdaやEC2がAWSサービスを操作するときは、
操作する側の実行ロール
例)
Lambda → S3
Lambda → SNS
Lambda → SQS
EC2 → S3
・AWSサービスがLambdaやSQSなどを操作ときは、
操作される側のリソースベースポリシー
例)
S3 → Lambda
SNS → Lambda
SNS → SQS
パターン① S3→Lambda
Lambdaのリソースベースポリシー
パターン② Lambda→S3
Lambdaの実行ロール
パターン③ SNS→Lambda
Lambdaのリソースベースポリシー
パターン④ Lambda→SNS
Lambdaの実行ロール
パターン⑤ SNS→SQS
SQSのリソースベースポリシー
パターン⑥ Lambda→SQS
Lambdaの実行ロール
パターン⑦ SQS→Lambda
Lambdaの実行ロール
※実際にはLambda側がSQSを読み取る。
パターン⑧ EC2→S3
EC2に割り当てるIAMロール
さいごに
これらのパターンを覚えるだけで、IAMロールとリソースベースポリシーの問題は大体正解可能となります。