3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クロスアカウントでSQSキューにSNSトピックをサブスクリプションしたらハマった話

Posted at

はじめに

とある案件で、アカウントAで発報したアラートのメッセージをアカウントBのSQSキューに入れる必要がありました。
なぜかキューにサブスクリプション承認メッセージが飛ばず、ハマりかけたので、皆さんも同じことが無いように共有します。

SQSキューにSNSのメッセージを受けるためのポリシー

SQSキューでSNSのメッセージを受けるには、以下のようなSQSポリシーを許可している必要があります。

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "from-sns",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "sqs:SendMessage",
      "Resource": "arn:aws:sqs:ap-northeast-1:123456789012:SystemName-Env-sqs",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sns:ap-northeast-1:123456789012:SystemName-Env-sqs"
        }
      }
    }
  ]
}

サイ〇リヤ間違え探し難易度MAX

この案件では、SQSポリシーを開発ベンダーで操作できないため、お客様の担当部署に作業依頼を行いました。
その結果、担当者からアタッチされたポリシーがこちらです。

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "from-sns",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "sps:SendMessage",
      "Resource": "arn:aws:sqs:ap-northeast-1:123456789012:SystemName-Env-sqs",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:sns:ap-northeast-1:123456789012:SystemName-Env-sqs"
        }
      }
    }
  ]
}

何が違うのか?

はい、何が変わったかわかりますか?
正直、私も作業者も最初は気づかず、30分間まじまじと眺めていましたが、原因がわかりませんでした。

正解

正解はここです。
以下の部分が誤っていました。

  • 正しい記述: "Action": "sqs:SendMessage"
  • 誤った記述: "Action": "sps:SendMessage"

教訓

皆さんは手打ちで記入せず、コピペを活用するか、大文字を記入しましょう。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?