AmazonSESのイベント通知先にAmazonKinesisDataFirehoseを選択すると、送信先の追加が出来ない

0

はじめまして。初めて質問させて頂きます。 AmazonSESを使い始めて1か月くらいの初心者です よろしくお願いいたします。

AmazonSESの送信ログをs3に出力するために、AmazonKinesisdatafirehose経由でのs3出力を検証しています。 Datafirehoseとs3を事前に作成し、イベント通知先の登録で、AmazonKinesisdatafirehoseを指定し、DatafirehosとIAMを指定して保存すると、以下のエラーとなります

Could not assume IAM role arn:aws:iam::●●●:role/nss-kinesis-role. ※nss-kinesis-roleは専用のIAMロールです ※●●●はアカウントIDです

nss-kinesis-roleの信頼ポリシーは以下の通り定義しています

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ses.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
        }
    ]
}

権限ポリシーはエラーが回避できず試行錯誤中のため、とりあえずフル権限付与しています。 アドバイス頂けますと幸いです。 よろしくお願いいたします。

質問済み 3ヶ月前92ビュー
6回答
0
承認された回答

IAMユーザーにはAdministratorAccessをアタッチして試していました。

一般のIAMユーだと作成できました。 rootだと作れない仕様なのだと思います。

諸々ご教示いただきまして、ありがとうございました。

回答済み 3ヶ月前
0

信頼ポリシーを以下のドキュメントに記載されているものに変更してみてはいかがでしょうか?
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/event-publishing-add-event-destination-firehose.html

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ses.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "111122223333",
          "AWS:SourceArn": "arn:aws:ses:delivery-region:111122223333:configuration-set/configuration-set-name"
        }
      }
    }
  ]
}

ちなみにnss-kinesis-roleはKinesis Firehoseでも使用しているIAMロールでしょうか?
その場合は、SES用のIAMロールとKinesis用のIAMロールでそれぞれ分けて設定してみてください。

profile picture
エキスパート
回答済み 3ヶ月前
  • 私の環境で同じIAMロールを作成して設定してみたのですが、同じエラーを再現することができませんでした。 CloudTrailのイベント履歴から詳細な内容を確認することは可能でしょうか? a
    a

    「CreateConfigurationSetEventDestination」イベントで検索ができると思います。 https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/tutorial-event-history.html

  • 私の環境と同じ設定になっているように見受けられます。 エラーの内容的には信頼ポリシーに問題があると思うのですが、私の環境では再現ができません。 念のための確認なのですが、信頼ポリシーで指定している「AWS:SourceAccount」はnspro様のAWSアカウントIDと一致していますか?

  • ルートユーザーだと全部の操作ができるはずなので問題無いと思いますが、私はIAMユーザーで試したので、一度IAMユーザーで設定を行ってみてください。

  • IAMユーザーにはAdministratorAccessをアタッチして試していました。 https://docs.aws.amazon.com/ja_jp/aws-managed-policy/latest/reference/AdministratorAccess.html

0

コメントありがとうございます。

SES側の信頼ポリシーを提示いただいた物にしてみましたが、エラーに変化なく改善しませんでした。 (IDは使用しているアカウントのものに変更しております)

また、SES側とKinesis側でロールを分けましたが、それでもエラーの変化はありませんでした SES側はnss-kinesis-roleを使用し、Kinesis側は、作成時に自動で作成されたロールを割り当てております。

回答済み 3ヶ月前
0

詳細にありがとうございます ワタシの方でも同じように設定して試してみました

以下の考え方で試しております。(そもそもこの考え方に誤りがあれば、ご指摘いただけますと幸いです。)

  • IAMロール(nss-kinesis-role)の信頼関係はSES向けに設定して、許可ポリシーをfirehose側に向ける。
  • SES、firehoseともにResourceでarnまで指定する

◆結果 状況変わらずで「Could not assume IAM role arn:aws:iam::●:●:●:role/nss-kinesis-role.」のエラーが発生します。。

諸々のキャプチャを添付いたします 信頼関係

許可ポリシー

Cloudtrailログ

ご確認いただきまして、アドバイスいただけますと幸いです。

どうぞ、よろしくお願いいたします。

回答済み 3ヶ月前
0

エラーの内容的には信頼ポリシーに問題があると思うのですが、私の環境では再現ができません。 念のための確認なのですが、信頼ポリシーで指定している「AWS:SourceAccount」はnspro様のAWSアカウントIDと一致していますか?

はい。IDと一致しておりました。 rootだと不可とかありますでしょうか?

回答済み 3ヶ月前
0

ルートユーザーだと全部の操作ができるはずなので問題無いと思いますが、私はIAMユーザーで試したので、一度IAMユーザーで設定を行ってみてください。

ありがとうございます。IAMユーザでも試してみます。 お使いのIAMの設定について、可能な範囲で構いませんので、ご教示いただくことは可能でしょうか?

回答済み 3ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン