スキップしてコンテンツを表示

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

所要時間2分
0

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

簡単な説明

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

  • トピック購読のステータスが「確認待ち」になっている。
  • トピック購読のステータスが「削除済み」になっている。
  • トピックのサブスクリプションを削除しようとしている 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 は Permissions Denied エラーを返します。

解決策

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

重要: トピックを削除する際、サブスクリプションのステータスが Deleted または Pending Confirmation である場合、そのサブスクリプションをアカウントから手動で削除することはできません。Amazon SNS がアカウントからサブスクリプションを自動的に削除するまで、2 日間待つ必要があります。
注: 2 日経過後にサブスクリプションが自動的に解除されない場合は、AWS サポートにお問い合わせください。

  1. Amazon SNS コンソールを開きます。
  2. ナビゲーションペインで、[サブスクリプション] を選択します。
  3. 購読」ページで、削除するサブスクリプションを探します。次に、[ステータス] 列で、サブスクリプションが [削除済み] または [保留中の確認] の状態かどうかを確認します。
  4. サブスクリプションのステータスが「削除済み」か「確認保留中」かに応じて、以下のセクションのいずれかの手順を実行してください。サブスクリプションのステータスが「削除済み」または「確認保留中」でない場合は、「アクセス許可が拒否されたエラーのトラブルシューティングを行うには」セクションの手順に従います。

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

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

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

次のいずれかの操作を行います。

  1. メールの受信トレイで、次の件名のメールを開きます: AWS 通知 - 登録解除の確認
  2. メールの下部にある [再登録] リンクを選択します。[再登録] リンクを選択すると、E メールのサブスクリプションが再確認され、Amazon SNS コンソールから削除できます。

-または-

削除したサブスクリプションを再作成するには、次の手順に従います:

  1. 削除した E メールサブスクリプションを再作成して確認します
  2. サブスクリプションを作成して確認したら、Amazon SNS コンソールから削除できます。
    注: また、メールスパムフィルターを使用しても、メーリングリストのメールアドレスのサブスクリプションを解除できます。

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

次の手順を実行します。

  1. 別の AWS アカウント内の Amazon SQS キューに対する Amazon SNS トピックサブスクリプション を再構成する方法を教えてください"Deleted"」の手順に従います。
  2. サブスクリプションの所有者である AWS アカウントでサブスクリプションを削除します。

Amazon SNS トピックのサブスクリプションのステータスが Pending Confirmation である場合

トピックのサブスクリプションがアカウントから削除されず、Pending Confirmation ステータスになる 5 通りの原因を次に示します。

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

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

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

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

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

  1. Amazon SNS コンソールを開きます。
  2. ナビゲーションペインで、[サブスクリプション] を選択します。
  3. 購読」ページで、削除するサブスクリプションを探します。次に、[リクエストの要求] を選択します。指定されたエンドポイントに確認リクエストが送信されます。
  4. 使用しているエンドポイントのタイプに応じて次のいずれかの操作を行って、サブスクリプションを確認します。
  5. 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 エンティティにサブスクライブを解除するために必要なアクセス許可があることを確認します。

  1. IAM ポリシーシミュレーターコンソールを開きます。
  2. 左側の [ユーザー、グループ、ロール] ペインで、トピックサブスクリプションの削除に使用している IAM エンティティを選択します。
  3. ポリシーシミュレータペインの [サービスの選択] ドロップダウンリストで、[SNS] を選択します。
  4. [アクションの選択] ドロップダウンリストで、[サブスクリプションの解除] を選択します。
  5. [シミュレーションを実行] を選択します。
  6. [アクションの設定と結果][権限] 列において、サブスクリプション解除権限が AllowedDenied かを確認します。

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

AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ