AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

メーリングリストの受信者が Amazon SNS トピックに関する E メールから他のメンバーのサブスクライブを解除できないようにするには、どうすればよいですか?

所要時間2分
0

私は、Amazon Simple Notification Service (Amazon SNS) トピックのメーリングリストの E メールアドレスをサブスクライブしました。その後、メーリングリストのメンバーが、メーリングリストの E メールアドレスのサブスクライブを解除してしまい、リストのメンバー全員のサブスクライブも解除されてしまいました。

簡単な説明

E メールのサブスクライバーがいる Amazon SNS トピックに関するメッセージを発行すると、サブスクライバーが受信する E メールメッセージにはサブスクライブを解除するためのリンクが付いています。リンクの近くには次のようなメッセージがあります。 「If you wish to stop receiving notifications from this topic, please click or visit the link below to unsubscribe.」

自分の E メールアドレスで Amazon SNS トピックをサブスクライブしている場合、このリンクをクリックすると E メールのサブスクライブが解除されます。Amazon SNS トピックのメーリングリストのメンバーがサブスクライブ解除リンクをクリックすると、メーリングリストの E メールアドレスがサブスクライブ解除されます。すると、メーリングリストの全員に「Unsubscribe Confirmation」メッセージが届きます。

注: スパム E メールフィルターが、メーリングリストの E メールアドレスのサブスクライブを解除する場合もあります。

このようなサブスクライブ解除アクションを防ぐには、](https://docs.aws.amazon.com/sns/latest/api/API_ConfirmSubscription.html#API_ConfirmSubscription_RequestParameters)サブスクライブ解除に認証が必要なサブスクリプション[を作成します。このようなサブスクリプションでは、トピックの所有者とサブスクリプションの所有者のみがサブスクライブを解除できます。リンクをクリックした他のサブスクライバーには、次のエラーが表示されます。

「Subscription not removed Your subscription could not be removed because of an error.If you wish to unsubscribe but do not have AWS credentials, or have any other questions about Amazon SNS, please contact Amazon at sns-question@amazon.com.」

解決策

既存のサブスクリプションを、認証が必要なサブスクリプションに置き換えるには、既存のサブスクリプションを削除します。次に、以下のいずれかの方法を使用して新しいサブスクリプションを作成します。

重要: 新しいサブスクリプションを確認して作成を完了するには、サブスクリプションの確認を求める E メールメッセージを受信できる必要があります。トピックのメーリングリストをサブスクライブするには、まずメーリングリストに E メールアドレスを登録してから、サブスクリプションを確認します。

サブスクライブ解除に認証が必要な E メールサブスクリプションを設定する (Amazon SNS コンソール)

1.    Amazon SNS コンソールを開き、E メールアドレスでトピックをサブスクライブします。

2.    E メールで、AWS 通知からのサブスクリプション確認メッセージを確認します。送信者は通常、「no-reply@sns.amazonaws.com」です。

重要: サブスクリプション確認 E メール内のリンクを使用してサブスクリプションを確認しないようにしてください。

3.    [サブスクリプションの確認] リンクの URL をコピーします。

4.    コンソールのナビゲーションペインで、[サブスクリプション] を選択します。

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

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

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

サブスクライブ解除に認証が必要な E メールサブスクリプションを設定する (AWS CLI)

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用していることを確認してください

1.    AWS CLI で次のコマンドを実行します。

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

重要: 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 に置き換えます。notification-endpoint は、トピックをサブスクライブする E メールアドレスに置き換えます。region は、トピックのリージョンに置き換えます。

4.    E メールで、AWS 通知からのサブスクリプション確認メッセージを確認します。送信者は通常、「no-reply@sns.amazonaws.com」です。

重要: サブスクリプション確認 E メール内のリンクを使用してサブスクリプションを確認しないようにしてください。

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.    次のコマンドを実行します。

aws sns confirm-subscription --token 2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef20a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e77c33a50870bc027c74640ff64a7e99a67117 --topic-arn arn:aws:sns:us-east-1:0123456789012:my-topic --authenticate-on-unsubscribe true --region us-east-1

重要: tokenは、コピーしたトークンに置き換えます。topic-arn は、コピーしたトピック ARN に置き換えます。region は、トピックのリージョンに置き換えます。

関連情報

Amazon SNS の開始方法

subscribe (AWS CLI Command Reference)

confirm-subscription (AWS CLI Command Reference)

コメントはありません

関連するコンテンツ