構成
Amazon EventBridge Events ルール → Amazon SNS → Eメール
発生した問題
Eventsルールが発火した後も, Eメールが送信されない
原因
SNSトピックがEvents ルールからのアクションを許可していなかった
(プリンシパルの設定がなかった)
対処方法
SNSトピックに関連付けられているIAMリソースポリシーに, Events ルールからのアクションを許可するステートメントを追加する
例: AWS CDKの場合 (Python)
target_topic.add_to_resource_policy(
iam.PolicyStatement(
actions=["sns:Publish"],
effect=iam.Effect.ALLOW,
resources=[target_topic.topic_arn],
principals=[iam.ServicePrincipal("events.amazonaws.com")]
)
)
参考文献
- https://aws.amazon.com/jp/premiumsupport/knowledge-center/sns-not-getting-eventbridge-notification/
- https://docs.aws.amazon.com/cdk/api/v1/python/aws_cdk.aws_sns/Topic.html
- https://stackoverflow.com/questions/59172919/aws-cdk-how-to-include-principals-in-iam-policy
[appendix] Events ルールが発火したかどうかを確認する方法
[Amazon EventBridge] → [ルール] → [ルールのメトリクス]
メトリクスを選択し, 統計を[合計], 期間は見やすい期間に変更する