Amazon SNS トピックのサブスクリプションを削除できないのはなぜですか?

最終更新日: 2021 年 9 月 3 日

Simple Notification Service (Amazon SNS) トピックのサブスクリプションを削除しようとしています。しかし、エラーメッセージが表示されるか、サブスクリプションを削除するオプションがコンソールで無効になります。Amazon SNS トピックの購読を削除できないのはなぜですか。サブスクリプションを解除するにはどうすればよいですか?

簡単な説明

Amazon SNS で Amazon SNS トピックのサブスクリプションを削除できない場合、3 つの状況が考えられます。

  • トピックのサブスクリプションが [ 保留中の確認 ] ステータスである。
  • トピックサブスクリプションが [ 削除済み ] ステータスである。
  • トピックのサブスクリプションを削除しようとしている AWS Identity and Access Management (IAM) エンティティにサブスクリプションを解除するための必要なアクセス許可がない。

注: Amazon SNS は、[ 削除済み ] および [保留中の確認] ステータスのサブスクリプションを 3 日後にアカウントから自動的に削除します。

トピックのサブスクリプションが [保留中の確認] ステータスである場合、Amazon SNS コンソールの [削除] ボタンは無効になります。

トピックのサブスクリプションが [削除済み] ステータスの場合にサブスクリプションを削除しようとすると、Amazon SNS は次のエラーメッセージを返します。

"Error code: InvalidParameter - Error message: Invalid parameter: SubscriptionArn Reason: An ARN must have at least 6 elements, not 1”

サブスクリプションを削除しようとしている IAM エンティティに、登録解除に必要なアクセス許可がない場合、Amazon SNS は Permissions Denied (アクセス許可の拒否) エラーを返します。

解決方法

Amazon SNS トピックサブスクリプションのステータスが [削除済み] または [保留中の確認] であるかどうかを確認します

重要: Amazon SNS トピックに、トピックを削除したときに [削除済み] または [確認保留中] ステータスのサブスクリプションがある場合、サブスクリプションをアカウントから手動で削除することはできません。Amazon SNS がアカウントからサブスクリプションを自動的に削除するまで、3 日間待つ必要があります。 

1.    Amazon SNS コンソールを開きます。

2.    左側のナビゲーションパネルで、[サブスクリプション] を選択します。

3.    [ サブスクリプション ] ページで、削除するサブスクリプションを見つけます。次に、[ステータス] 列で、サブスクリプションが [ 削除済み ] または [保留中の確認 ] の状態かどうかを確認します。

4.    サブスクリプションのステータスが [ 削除済み ] または [保留中の確認] のどちらになっているかに応じて、次の手順を実行します。サブスクリプションのステータスが [削除済み ] または [保留中の確認] でない場合は、「アクセス許可が拒否されたエラーのトラブルシューティングを行うには」セクションの手順に従います。

Amazon SNS トピックのサブスクリプションのステータスが [削除済み] の場合

トピックのサブスクリプションが、アカウントから削除されずに [削除済み] ステータスになる場合、次の 2 つの理由があります。

トピックメーリングリストのメンバーが、そのトピックから送信されたメールのサブスクリプション解除リンクを選択した場合

次のいずれかを行ってください。

1.    E メールの受信トレイで、「AWS 通知 - サブスクリプション確認」という件名の E メールを開きます。

2.    メールの下部にある [Resubscribe] (再登録) リンクを選択します。[Resubscribe] リンクを選択すると、E メールのサブスクリプションが再確認され、 Amazon SNS コンソールから削除できます。

- または -

削除したメールサブスクリプションを再作成して確認します。サブスクリプションを作成して確認したら、Amazon SNS コンソールから削除できます。

注: また、メールスパムフィルターを使用しても、メーリングリストのメールアドレスのサブスクリプションを解除できます。

トピックをサブスクライブしている別のアカウントの Amazon SQS キューが、クロスアカウントのサブスクリプションを削除した場合

1.    「別の AWS アカウントの Amazon SQS キューの「削除済み」Amazon SNS トピックサブスクリプションを再作成する方法を教えてください。」の手順を参照してください。

2.    サブスクリプションを所有している AWS アカウントを使用して、サブスクリプションを削除します

Amazon SNS トピックのサブスクリプションのステータスが [保留中の確認] の場合

トピックのサブスクリプションがアカウントから削除されずに [確認を保留] ステータスになる場合、次の 4 つの理由が考えられます。

  • サブスクリプションは追加されているが、まだ確認されていない。
  • サブスクリプションに追加したメールアドレスが有効ではない。
  • E メールメッセージの配信率がデフォルトのクォータである 10 メッセージ/秒を超えている。
  • HTTP または HTTPS エンドポイントが、Amazon SNS によって行われたサブスクリプション確認リクエストを自動的に処理しない。
  • HTTP または HTTPS エンドポイントが有効でない。

次のいずれかのエンドポイントタイプが SNS トピックをサブスクライブすると、サブスクリプションは確認されるまで保留中の確認ステータスのままになります。

  • E メール
  • HTTP
  • HTTPS
  • クロスアカウント Amazon SQS アクセス

これらのタイプのエンドポイントに関連付けられているサブスクリプションを確認するには、エンドポイントに送信された [サブスクリプションの確認] リンクを選択します。サブスクリプションが確認されたら、 Amazon SNS コンソールから削除できます。

その他のすべてのシナリオでは、エンドポイントで SNS トピックを再度サブスクライブし、次の手順を実行して削除する必要があります。

1.    Amazon SNS コンソールを開きます。

2.    左側のナビゲーションパネルで、[サブスクリプション] を選択します。

3.    [ サブスクリプション ] ページで、削除するサブスクリプションを見つけます。次に、[リクエストの要求] を選択します。指定されたエンドポイントに確認リクエストが送信されます。

4.    使用しているエンドポイントのタイプに応じて次のいずれかの操作を行って、サブスクリプションを確認します。

E メールエンドポイントの場合

E メールの受信トレイで「 AWS 通知 - サブスクリプション確認 」という件名の E メールを開きます。[Confirm subscription] (サブスクリプションを確認) を選択します。
注: サブスクリプションの確認メールが表示されない場合は、E メールのスパムフォルダや迷惑メールフォルダも確認してください。

クロスアカウント Amazon SQS エンドポイントの場合

Amazon SQS キューでサブスクリプションの確認メッセージを見つけます。次に、メッセージ本文にある subscribeURL に HTTP GET リクエストを送信します。詳細については、「別のアカウントの Amazon SQS キューへの Amazon SNS メッセージの送信」を参照してください。

HTTP および HTTPS エンドポイントの場合

Amazon SNS がサブスクリプションの確認メッセージと通知メッセージの送信に使用する HTTP POST リクエストをエンドポイントが処理できることを確認します。詳細については、「エンドポイントで Amazon SNS メッセージを処理する準備が完了していることを確認する」を参照してください。

5.    サブスクリプションの状態が [確認済み] の場合は、サブスクリプションを削除します。

注: 電子メール、HTTP、および HTTPS エンドポイントの場合、サブスクリプションを削除した後、サブスクリプションは 3 日後にアカウントから削除されます。

アクセス許可が拒否されたエラーのトラブルシューティングを行うには

次の手順を実行して、トピックサブスクリプションを削除しようとしている IAM エンティティに サブスクライブを解除するために必要なアクセス許可があることを確認します。

1.    IAM Policy Simulator コンソールを開きます。

2.    左側の [Users, Groups, and Roles] (ユーザー、グループ、およびロール) ペインで、トピックサブスクリプションを削除するために使用している IAM エンティティを選択します。

3.    [Policy Simulator] ペインの [Select service] (サービスの選択)ドロップダウンリストで、[SNS] を選択します。

4.    [Select actions] (アクションの選択) ドロップダウンリストで、[Unsubscribe] (サブスクリプションの解除) を選択します。

5.    [Run Simulation] (シミュレーションを実行) を選択します。

6.    [Action Settings and Results] (アクションの設定と結果) の [Permission] (アクセス許可) 列で、サブスクリプション解除のアクセス許可が [Allowed] (許可) または [Denied] (拒否) かを確認します。

IAM エンティティで sns:Unsubscribe アクションが許可されていない場合は、システム管理者に連絡して、必要なアクセス許可を追加するように依頼します。詳細については、「IAM ID のアクセス許可の追加および削除」参照してください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?