Amazon SNS トピックのサブスクリプションを削除できないのはなぜですか?
Amazon Simple Notification Service (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 がアカウントからサブスクリプションを自動的に削除するまで、3 日間待つ必要があります。
1. Amazon SNS コンソールを開きます。
2. 左側のナビゲーションパネルで、[サブスクリプション] を選択します。
3. [ サブスクリプション ] ページで、削除するサブスクリプションを見つけます。次に、[ステータス] 列で、サブスクリプションが [ 削除済み ] または [保留中の確認 ] の状態かどうかを確認します。
4. サブスクリプションのステータスが「削除済み」か「確認保留中」かに応じて、以下のセクションのいずれかの手順を実行してください。サブスクリプションのステータスが [削除済み ] または [確認保留中] でない場合は、「アクセス許可が拒否されたエラーのトラブルシューティングを行うには」セクションの手順に従います。
Amazon SNS トピックのサブスクリプションのステータスが [削除済み] の場合
トピックのサブスクリプションが、アカウントから削除されずに [削除済み] ステータスになる場合、次の 2 つの理由があります。
- Amazon SNS トピックメーリングリストのメンバーが、トピックから送信された E メールメッセージのサブスクリプション解除リンクを選択した。
- トピックをサブスクライブしている別の AWS アカウントにある Amazon Simple Queue Service (Amazon SQS) キューがクロスアカウントのサブスクリプションを削除した。
トピックメーリングリストのメンバーが、そのトピックから送信されたメールのサブスクリプション解除リンクを選択した場合
次のいずれかの操作を行います。
1. E メールの受信トレイで、「AWS 通知 - サブスクリプション確認」という件名の E メールを開きます。
2. メールの下部にある [Resubscribe] (再登録) リンクを選択します。[Resubscribe] リンクを選択すると、E メールのサブスクリプションが再確認され、 Amazon SNS コンソールから削除できます。
-または-
削除した E メールサブスクリプションを再作成して確認します。サブスクリプションを作成して確認したら、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 のアクセス許可の追加および削除」参照してください。
発信元の ID がリージョンでサポートされているかどうかを確認してください
メッセージを送信する国または AWS リージョンは、使用している発信元の ID をサポートしている必要があります。
例えば、米国の宛先の電話番号にメッセージを送信するには、お住まいの地域でサポートされている米国の発信者番号(TFN/10DLC/ショートコード) が必要です。または、CA 宛先の電話番号にメッセージを送信するには、お住まいの地域でサポートされている CA 発信者番号 (ロングコード/ショートコード) が必要です。
各タイプの発信元 ID がサポートされている、またはサポートされていない国の完全なリストについては、サポートされている国とリージョン を参照してください。

関連するコンテンツ
- 質問済み 5年前lg...
- 質問済み 3ヶ月前lg...
- 質問済み 4年前lg...
- 質問済み 4年前lg...
- 質問済み 3年前lg...
- AWS公式更新しました 2年前