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 は アクセス許可の拒否エラーを返します。
解決策
Amazon SNS トピックサブスクリプションのステータスが [削除済み] または [保留中の確認] であるかどうかを確認します
重要: トピックを削除した時点でサブスクリプションが「削除済み」または「確認保留中」になっている場合は、サブスクリプションをアカウントから手動で削除することはできません。Amazon SNS がアカウントからサブスクリプションを自動的に削除するまで、3 日間待つ必要があります。
注: 3 日経ってもサブスクリプションが自動的に削除されない場合は、AWS サポートにお問い合わせください。
Amazon SNS コンソールを開きます。
ナビゲーションペインで、[サブスクリプション] を選択します。
「購読」ページで、削除するサブスクリプションを探します。次に、[ステータス] 列で、サブスクリプションが [削除済み] または [保留中の確認] の状態かどうかを確認します。
サブスクリプションのステータスが「削除済み」か「確認保留中」かに応じて、以下のセクションのいずれかの手順を実行してください。サブスクリプションのステータスが「削除済み」または「確認保留中」でない場合は、「アクセス許可が拒否されたエラーのトラブルシューティングを行うには」セクションの手順に従います。
Amazon SNS トピックのサブスクリプションのステータスが [削除済み] の場合
トピックのサブスクリプションが、アカウントから削除されずに「削除済み」ステータスになる場合、次の 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 トピックのサブスクリプションのステータスが [確認保留中] の場合
トピックのサブスクリプションがアカウントから削除されずに「確認保留中」ステータスになる場合、次の 4 つの理由が考えられます。
- サブスクリプションは追加されているが、まだ確認されていない。
- サブスクリプションに追加したメールアドレスが有効ではない。
- E メールメッセージの配信率がデフォルトのクォータである 10 メッセージ/秒を超えている。
- HTTP または HTTPS エンドポイントが、Amazon SNS によって行われたサブスクリプション確認リクエストを自動的に処理しない。
- HTTP または HTTPS エンドポイントが有効でない。
次のいずれかのエンドポイントタイプが SNS トピックをサブスクライブすると、サブスクリプションは確認されるまで確認保留中ステータスのままになります。
- 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 メッセージを処理する準備が完了していることを確認する」を参照してください。
サブスクリプションの状態が「確認済み」の場合は、サブスクリプションを削除します。
注: 電子メール、HTTP、および HTTPS エンドポイントの場合、サブスクリプションを削除した後、サブスクリプションは 3 日後にアカウントから削除されます。
アクセス許可が拒否されたエラーのトラブルシューティングを行うには
サブスクリプション解除の許可を確認
次の手順を実行して、トピックサブスクリプションを削除しようとしている IAM エンティティにサブスクライブを解除するために必要なアクセス許可があることを確認します。
- IAM ポリシーシミュレーターコンソールを開きます。
- 左側の [ユーザー、グループ、ロール] ペインで、トピックサブスクリプションの削除に使用している IAM エンティティを選択します。
- ポリシーシミュレータペインの [サービスの選択] ドロップダウンリストで、[SNS] を選択します。
- [アクションの選択] ドロップダウンリストで、[サブスクリプションの解除] を選択します。
- [シミュレーションを実行] を選択します。
- [アクションの設定と結果] の [権限] 列で、サブスクリプション解除のアクセス許可が [許可] または [拒否] になっているかどうかを確認します。
IAM エンティティが sns:Unsubscribe アクションを許可していない場合は、システム管理者に連絡して、必要なアクセス許可を追加するように依頼してください。詳細については、「IAM ID 権限の追加と削除」を参照してください。
関連するコンテンツ
- 質問済み 17日前lg...
- 質問済み 7年前lg...
- 質問済み 2ヶ月前lg...
- AWS公式更新しました 3年前
- AWS公式更新しました 6ヶ月前