CloudWatch Logs をS3 へ転送する際にKinesis Data Firehoseのデータ転送が失敗しました、解決方法を教えてください。
困っていた内容
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