【正解】A、C
【0からの解説】
IAM の最小権限の原則では、アプリケーションが実際に行う操作に対応するアクションだけを許可します。本問のアプリケーションの動作を分解すると、必要な権限が見えてきます。
(1) SQS キューからメッセージを読み取る → sqs:ReceiveMessage
(2) Amazon Bedrock のモデル(Titan Image Generator)を呼び出して画像を生成する → bedrock:InvokeModel(リソースには該当の基盤モデル ARN を指定)
(3) SQS キューからメッセージを削除する → sqs:DeleteMessage
したがって、A(bedrock:InvokeModel)と C(sqs:ReceiveMessage + sqs:DeleteMessage)の組み合わせが、3 つの動作すべてをちょうどカバーします。
【誤りの選択肢】
B:bedrock:Get* はモデル情報の取得などの読み取り系アクションであり、モデルを呼び出して推論(画像生成)を実行する権限ではありません。推論の実行には InvokeModel が必要です。
D:sqs:GetQueueAttributes はキューの属性(メッセージ数など)を取得するアクションであり、メッセージの受信(ReceiveMessage)ができないため、アプリケーションはそもそもメッセージを読み取れません。
E:sagemaker:PutRecord* は SageMaker Feature Store などに関する別サービスのアクションであり、Bedrock のモデル呼び出しとは無関係です。
【参考】
Amazon Bedrock の IAM アクションAmazon SQS の IAM アクション