Amazon SNS コンソールでクロスアカウント SQS サブスクリプションの属性を表示または変更しようとした場合の「認証エラー」はどのように解決するのでしょうか?

所要時間1分
0

Amazon Simple Queue Service (Amazon SQS) キューを別の AWS アカウントの Amazon Simple Notification Service (Amazon SNS)トピックに登録しました。Amazon SNS コンソールからクロスアカウントサブスクリプションの属性を表示または編集する場合、解決する必要がある「認証エラー」が表示されます。

簡単な説明

トピックを所有していないアカウントから SQS キューの SNS トピックサブスクリプションを作成した場合、SQS キューを所有するアカウントがサブスクリプションを所有します。その後、SNS トピックを作成したアカウントの SNS サブスクリプション属性を表示または編集すると、認証エラーが発生します。

**注:**購読関連の閲覧および編集権限をSNS トピックポリシーアクションに含めることはできません。代わりに以下の解決策を使用してください。

解決策

AWS コンソールを使用する

  1. SNS](https://console.aws.amazon.com/sns/home) トピックを所有するアカウントで[Amazon SNS コンソールを開きます。
  2. ナビゲーションペインで [Topics] を選択します。
  3. トピックの名前を選択します。次に、[サブスクリプション] タブから、SQS キューサブスクリプションの [サブスクリプション ID] をコピーします。
  4. SQSキューを所有するアカウントでAmazon SNS コンソールを開きます。
  5. [サブスクリプション] メニューオプションで、手順 3でコピーした**サブスクリプション ID **を選択します。
  6. 必要に応じてサブスクリプション属性を表示および編集します。

GetSubscription アトリビュートの使用

: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLIバージョンを使用していることを確認してください

サブスクリプション属性を表示するには、AWS コマンドラインインターフェイス (AWS CLI) または SDK を使用してサブスクリプションを作成したときに使用したアカウントのGetSubscriptionAttributes を使用します。このコマンドを実行するには、IAM ユーザーまたはロールに SNS アクションの SetSubscriptionAttributes と getSubscriptionAttributes のアクセス権限が必要です。

次の例では、リクエストパラメータとして **SubscriptionAm **を使用して AWS CLIの [GetSubscriptionAttributes] を使用しています。[SubscriptionArn] を取得するには、ListSubscriptionsByTopicを使用します。

aws sns get-subscription-attributes --subscription-arn arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{
  "Attributes": {
    "Owner": "9876543210",
    "RawMessageDelivery": "false",
    "TopicArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS",
    "Endpoint": "example@amazon.com",
    "Protocol": "email",
    "PendingConfirmation": "false",
    "ConfirmationWasAuthenticated": "false",
    "SubscriptionArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
   }
}

サブスクリプションを削除して再作成する

SNS トピックを所有する AWS アカウントに SNS トピックサブスクリプションの属性を制御させたい場合は、

  1. 既存のサブスクリプションを削除します。
  2. SNSトピックを所有するアカウントから同じサブスクリプションを作成します。

SNS トピックを所有する AWS アカウントが、作成されたサブスクリプションリソースの所有者になりました。

関連情報

別の AWS アカウントの Amazon SQS キューの「削除済み」Amazon SNS トピックサブスクリプションを再作成するにはどうすればいいでしょうか?

Amazon SNS トピックに購読者を追加しようとしたときの認証エラーを解決するにはどうすればいいでしょうか?。

Amazon SNS からの HTTP 400「アクセス拒否例外」エラーを解決するにはどうればいいでしょうか?

Amazon SNS トピックからの通知を正常に受け取るには、Amazon SQS サブスクリプションを取得するにはどうすればいいでしょうか?

Lambda 関数を Amazon SNS トピックにサブスクライブしようとすると認証エラーが発生するのはなぜですか?

コメントはありません

関連するコンテンツ