Amazon SNS トピックのサブスクリプションを削除できない理由を教えてください。
Amazon Simple Notification Service (Amazon SNS) トピックのサブスクリプションを削除しようとしています。しかし、エラーメッセージが表示されるか、サブスクリプションを削除するオプションがコンソールで無効になります。
簡単な説明
Amazon SNS で Amazon SNS トピックのサブスクリプションを削除できない場合、3 つの状況が考えられます。
- トピック購読のステータスが Pending Confirmation になっている。
- トピック購読のステータスが Deleted になっている。
- トピックのサブスクリプションを削除しようとしている AWS Identity and Access Management (IAM) エンティティにサブスクリプションを解除するための必要なアクセス許可がない。
注: Amazon SNS は、ステータスが Deleted または Pending Confirmation であるサブスクリプションを 2 日後にアカウントから自動的に削除します。
トピックのサブスクリプションステータスが Pending Confirmation である場合、Amazon SNS コンソールの [削除] ボタンは無効化されます。
トピックのサブスクリプションが Deleted ステータスの場合にサブスクリプションを削除しようとすると、Amazon SNS は次のエラーメッセージを返します。
"Error code: InvalidParameter - Error message: Invalid parameter: SubscriptionArn Reason: An ARN must have at least 6 elements, not 1"
サブスクリプションを削除しようとしている IAM エンティティに、登録解除に必要なアクセス許可がない場合、Amazon SNS は アクセス許可の拒否エラーを返します。
解決策
Amazon SNS トピックサブスクリプションのステータスが Deleted または Pending Confirmation であるかどうかを確認します
重要: トピックを削除する際、サブスクリプションのステータスが Deleted または Pending Confirmation である場合、そのサブスクリプションをアカウントから手動で削除することはできません。Amazon SNS がアカウントからサブスクリプションを自動的に削除するまで、2 日間待つ必要があります。
注: 2 日経過後にサブスクリプションが自動的に解除されない場合は、AWS サポートにお問い合わせください。
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで、[サブスクリプション] を選択します。
- [購読] ページで、削除するサブスクリプションを探します。次に、[ステータス] 列で、サブスクリプションが Deleted または Pending Confirmation の状態かどうかを確認します。
- サブスクリプションのステータスが Deleted か Pending Confirmation かに応じて、以下のセクションのいずれかの手順を実行してください。サブスクリプションのステータスが Deleted または Pending Confirmation でない場合は、「アクセス許可が拒否されたエラーのトラブルシューティングを行うには」セクションの手順に従います。
Amazon SNS トピックのサブスクリプションのステータスが Deleted の場合
トピックのサブスクリプションが、アカウントから削除されずに Deleted ステータスになる場合、次の 2 つの理由があります。
- Amazon SNS トピックメーリングリストのメンバーが、トピックから送信された E メールメッセージのサブスクリプション解除リンクを選択した。
- トピックをサブスクライブしている別の AWS アカウントにある Amazon Simple Queue Service (Amazon SQS) キューがクロスアカウントのサブスクリプションを削除した。
トピックメーリングリストのメンバーが、そのトピックから送信されたメールのサブスクリプション解除リンクを選択した場合
次のいずれかの操作を行います。
- メールの受信トレイで、次の件名のメールを開きます。 AWS 通知 - 登録解除の確認。
- メールの下部にある [再登録] リンクを選択します。[再登録] リンクを選択すると、E メールのサブスクリプションが再確認され、Amazon SNS コンソールから削除できます。
または、
削除したサブスクリプションを再作成するには、次の手順に従います:
- 削除した E メールサブスクリプションを再作成して確認します。
- サブスクリプションを作成して確認したら、Amazon SNS コンソールから削除できます。
注: メールスパムフィルターを使用しても、メーリングリストのメールアドレスのサブスクリプションを解除できます。
トピックをサブスクライブしている別のアカウントの Amazon SQS キューが、クロスアカウントのサブスクリプションを削除した場合
次の手順を実行します。
- 別の AWS アカウントの Amazon SQS キューの「削除済み」Amazon SNS トピックサブスクリプションを再作成するにはどうすればいいでしょうか?」の手順を参照してください。
- サブスクリプションを所有している AWS アカウントを使用して、サブスクリプションを削除します。
Amazon SNS トピックのサブスクリプションのステータスが Pending Confirmation である場合
トピックのサブスクリプションがアカウントから削除されず、Pending Confirmation ステータスになる 5 通りの原因を次に示します。
- サブスクリプションは追加されたものの、未検証である場合。
- サブスクリプションに追加したメールアドレスが有効ではない。
- E メールメッセージの配信率がデフォルトのクォータである 10 メッセージ/秒を超えている。
- HTTP または HTTPS エンドポイントが、Amazon SNS によって行われたサブスクリプション確認リクエストを自動的に処理しない。
- HTTP または HTTPS エンドポイントが有効でない。
次のいずれかのエンドポイントタイプが SNS トピックをサブスクライブすると、サブスクリプションは確認されるまで Pending Confirmation ステータスのままになります。
- E メール
- HTTP
- HTTPS
- クロスアカウント Amazon SQS
上記のタイプのエンドポイントに関連付けられているサブスクリプションを確認するには、エンドポイントに送信された [サブスクリプションの確認] リンクを選択します。サブスクリプションが確認されたら、Amazon SNS コンソールから削除できます。
その他のすべてのシナリオでは、エンドポイントで SNS トピックを再度サブスクライブし、次の手順を実行して削除する必要があります。
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで、[サブスクリプション] を選択します。
- [購読] ページで、削除するサブスクリプションを探します。次に、[リクエストの要求] を選択します。指定されたエンドポイントに確認リクエストが送信されます。
- 使用しているエンドポイントのタイプに応じて次のいずれかの操作を行って、サブスクリプションを確認します。
- E メールエンドポイントの場合
メールの受信トレイで、次の件名のメールを開きます。 AWS 通知 — サブスクリプションの確認。[サブスクリプションを確認] を選択します。
注: サブスクリプションの確認メールが表示されない場合は、E メールのスパムフォルダや迷惑メールフォルダも確認してください。
クロスアカウントの Amazon SQS エンドポイントの場合
Amazon SQS キューでサブスクリプションの確認メッセージを見つけます。次に、メッセージ本文に表示された SubscribeURL に HTTP GET リクエストを送信します。詳細については、「別のアカウントの Amazon SQS キューへの Amazon SNS メッセージの送信」を参照してください。
HTTP および HTTPS エンドポイントの場合
Amazon SNS がサブスクリプションの確認メッセージと通知メッセージの送信に使用する HTTP POST リクエストをエンドポイントが処理できることを確認します。詳細については、「エンドポイントで Amazon SNS メッセージを処理する準備が完了していることを確認する」を参照してください。
サブスクリプションの状態が Confirmed の場合は、サブスクリプションを削除します。
注: 電子メール、HTTP、および HTTPS エンドポイントでは、サブスクリプションを削除した後、アカウントから解除されるまで 3 日間待機する必要があります。
アクセス許可が拒否されたエラーのトラブルシューティングを行うには
サブスクリプション解除の許可を確認
次の手順を実行して、トピックサブスクリプションを削除しようとしている IAM エンティティにサブスクライブを解除するために必要なアクセス許可があることを確認します。
- IAM ポリシーシミュレーターコンソールを開きます。
- 左側の [ユーザー、グループ、ロール] ペインで、トピックサブスクリプションの削除に使用している IAM エンティティを選択します。
- ポリシーシミュレーターペインの [サービスの選択] ドロップダウンリストで、[SNS] を選択します。
- [アクションの選択] ドロップダウンリストで、[サブスクリプションの解除] を選択します。
- [シミュレーションを実行] を選択します。
- [アクションの設定と結果] の [権限] 列において、サブスクリプション解除権限が Allowed か Denied かを確認します。
IAM エンティティが Unsubscribe アクションを許可していない場合は、システム管理者に必要な権限を追加するよう依頼してください。詳細については、「IAM ID の権限を追加、削除する」を参照してください。
- 言語
- 日本語
