CloudWatch Logs をS3 へ転送する際にKinesis Data Firehoseのデータ転送が失敗しました、解決方法を教えてください。

2023.08.23

困っていた内容

CloudWatch logsからKinesis Data Firehoseの配信ストリームへのデータ転送を実施するため、サブスクリプションフィルダーの設定を行っています。
サブスクリプションフィルダーの設定にて以下のエラーメッセージが出力されて設定が完了しません。
解決方法を教えてください。

Could not deliver test message to specified Firehose stream. Check if the given Firehose stream is in ACTIVE state.

現状確認

CloudTrailイベント履歴でエラー発生時刻のPutSubscriptionFilterというイベント名を調査した結果、上記のエラーメッセージが表示されました。
また、roleArnで対象ロール名が特定できました。
対象ロールを確認ましたところ、kinesis firehose サブスクリプションフィルターで設定するIAMロールは必要な権限が付与されていない状況です。

どう更新すればいいの?

対象IAMロールには、logs.ap-northeast-1.amazonaws.comの信頼ポリシーを付与することでエラーが解消されるかご確認ください。
注記
※ap-northeast-1の部分は対象リージョンに書き換えてください。

参考資料

[1]CloudWatch Logs サブスクリプションフィルターの使用 - Amazon CloudWatch Logs
[2]put-subscription-filter — AWS CLI 1.29.32 Command Reference