メーリングリストの受信者は、自分の Amazon SNS トピックの Eメールから、リスト上の全員をサブスクリプション解除することができます。サブスクリプション解除されないようにするにはどうすればよいですか ?

最終更新日: 2019 年 4 月 17 日

私は E メールアドレスを Amazon Simple Notification Service (Amazon SNS) トピックのメーリングリストに登録しました。リストのメンバーが、メッセージ内にあるサブスクリプション解除リンクを選択しました。それにより、メーリングリストに登録している全員の E メールアドレスがサブスクリプション解除されてしまいました。これを防ぐためにはどうすればよいですか ?

簡単な説明

Amazon SNS トピックの Eメール 受信者にメッセージを発信すると、その受信者たちが受け取る E メールのメッセージには、トピックをサブスクリプション解除するためのリンクが表示されます。(内容は、「このトピックの通知を停止したい場合には、サブスクリプション解除のため以下のリンクをクリックまたは訪問してください」というものです。)

誰かが E メールアドレスをあるトピックに登録していて、その人がサブスクリプション解除のリンクを選択すると、その人の E メールアドレスはサブスクリプション解除されます。しかし、メーリングリストのメンバー、またはメンバーの E メールスパム フィルターがサブスクリプション解除のリンクを選択すると、メーリングリストの E メールアドレスはサブスクリプション解除されます。そのため、メーリングリストの全員が「サブスクリプション解除確認」のメッセージを受け取りますが、突然メッセージを受け取るために、混乱を招く恐れがあります。

このアクションを防止するには、サブスクリプション解除するための認証を必要とするサブスクリプションを作成し、トピックの所有者とサブスクリプションの所有者のみがサブスクリプション解除できるようにします。その場合、サブスクリプション解除のリンクを選択したユーザーは次のエラーを受け取ります。

「サブスクリプションを解除できません。
エラーのため、お客様のサブスクリプションを解除できませんでした。AWS 認証情報がないけれどサブスクリプション解除を希望される場合、またはAmazon SNS についてその他の質問がある場合は、Amazon の sns-question@amazon.com までお問い合わせください。」

解決方法

サブスクリプション解除の認証を必要とするサブスクリプションと既存のサブスクリプションを置き換えるには、最初に既存のサブスクリプションを削除します。次に、次の方法のいずれかを使用して新規サブスクリプションをセットアップします。

重要: 新規サブスクリプションを確認してセットアップを完了するには、サブスクリプション確認メールのメッセージへのアクセスが必要です。お客様のトピックのメーリングリストを登録している場合は、お客様の E メールアドレスを最初にメーリングリストに追加し、まずサブスクリプションを確認できるようにします。

認証を必要とする E メールサブスクリプションをセットアップし、サブスクリプション解除する(Amazon SNS コンソール)

1.    Amazon SNS コンソールを開き、E メールアドレスをトピックにサブスクリプションします。

2.    お客様の E メールの中から、AWS 通知で受信したサブスクリプション確認メッセージを検索します。通常、送信者 ID は「no-reply@sns.amazonaws.com」です。
重要:サブスクリプション確認メールのリンクを使ってサブスクリプションを確認しないでください。

3.    [サブスクリプションを確認] リンクから URL をクリップボードにコピーします。

4.    左のナビゲーションメニューにある Amazon SNS コンソールで、[サブスクリプション] を選択します。

5.    [サブスクリプション] ページで「保留中の確認」のサブスクリプションを選択し、続いて [サブスクリプションを確認] を選択します。

6.    [サブスクリプションを確認] ダイアログで、コピーしたサブスクリプション確認用 URL を貼り付けます。

7.    [サブスクリプションを確認] を選択します。

サブスクリプション解除するための認証を必要とする E メールサブスクリプションをセットアップします (AWS CLI)

1.    AWS コマンドラインインターフェイス (AWS CLI) で、次のコマンドを実行します。

aws sns list-topics --region us-east-1

注意: このコマンドでは、リージョンの値をお客様のトピックの AWS リージョンに置き換えてください。

2.    出力で、サブスクリプションするトピックを検索し、そのトピックのTopicArn 値をクリップボードにコピーします。トピック ARN は次のようなものです : arn:aws:sns:us-east-1:0123456789012:my-topic

3.    このコマンドを実行します。

aws sns subscribe --topic-arn arn:aws:sns:us-east-1:0123456789012:my-topic --protocol email --notification-endpoint test@amazon.com --region us-east-1

注意: このコマンドでは、 topic-arn の値をコピーしたトピック ARN に置き換え、 通知エンドポイント をトピックにサブスクリプションしたい E メールアドレスに置き換え、リージョンをお客様のトピックの AWS リージョンに置き換えます。

4.    お客様の E メールの中から、AWS 通知で受信したサブスクリプション確認メッセージを検索します。通常、送信者 ID は「no-reply@sns.amazonaws.com」です。
重要:サブスクリプション確認メールのリンクを使ってサブスクリプションを確認しないでください。

5.    サブスクリプションを確認 リンクから URL をクリップボードにコピーして、テキストエディタに URL を貼り付け、トークンをコピーします。このトークンは、URL の途中にある ”Token=” の後ろから ”&Endpoint=” の前の部分にある一連の長い数字と文字の列です。例:

https://sns.us-east-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:us-east-1:123456789012:my-topic&Token=2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef2
0a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e7
7c33a50870bc027c74640ff64a7e99a67117
&Endpoint=test@amazon.com

6.    コピーしたトークンとステップ 2 の同じトピック ARNを使用して、このコマンドを実行します。

aws sns confirm-subscription --token 2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef2
0a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e7
7c33a50870bc027c74640ff64a7e99a67117 --topic-arn arn:aws:sns:us-east-1:0123456789012:my-topic --authenticate-on-unsubscribe true --region us-east-1

注意: このコマンドでは、トークン の値をコピーしたトークンに置き換え、topic-arn をステップ 2 の同じトピック ARN に置き換え、リージョンをトピックの AWS リージョンに置き換えてください。


Amazon SNS の開始方法

サブスクリプション (AWS CLI コマンド リファレンス)

サブスクリプションを確認 (AWS CLI コマンド リファレンス)

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

改善できることはありますか?


さらにサポートが必要な場合