내용으로 건너뛰기

Amazon SNS 토픽에서 의도치 않거나 무단으로 이루어지는 이메일 구독 취소를 방지하려면 어떻게 해야 하나요?

4분 분량
0

이메일 주소가 Amazon Simple Notification Service(Amazon SNS) 을 구독하도록 했습니다. 그런데 승인한 적도 없는 내 SNS 토픽을 성공적으로 구독 취소했다는 확인 이메일을 받았습니다.

간략한 설명

이메일 구독자가 있는 Amazon SNS 토픽에 메시지를 게시하면 구독자가 받는 이메일 메시지에 구독 취소 링크가 포함됩니다. 다음과 같은 메시지가 표시됩니다. "이 토픽에 대한 알림 수신을 중지하려면 아래 링크를 클릭하거나 방문하여 구독을 취소하십시오."

구독 취소 작업은 이메일 보안 스캐너나 스팸 필터와 같은 자동화된 시스템에 의해 의도치 않게 발생할 수 있습니다. 이 같은 자동화된 시스템이 검사를 위해 수신한 이메일의 링크를 열어, 의도치 않게 이메일 구독자의 구독 취소 링크를 활성화할 수 있습니다.

Amazon SNS 토픽 메일링 리스트의 이메일 회원 구독자가 구독 취소 링크를 선택한 경우에도 구독 취소 작업이 발생할 수 있습니다. 이 작업은 메일링 리스트의 이메일 주소를 구독 취소합니다. 그러면 메일링 리스트에 있는 모든 사람이 ‘구독 취소 확인’ 메시지를 받습니다.

의도하지 않은 구독 취소 또는 무단 구독 취소를 방지하려면 구독 취소를 위해 인증이 필요한 구독을 생성하세요. 이 구독 인증 요구 사항은 토픽 소유자와 구독 소유자만 구독을 취소할 수 있도록 합니다. 링크를 선택한 다른 모든 구독자는 다음 메시지를 수신합니다.

"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."

해결 방법

기존 이메일 구독을 인증이 필요한 구독으로 바꾸려면 기존 구독을 구독 취소하세요. 그런 다음 Amazon SNS 콘솔 또는 AWS Command Line Interface(AWS CLI)를 사용하여 새 이메일 구독을 생성하세요.

중요: 새 구독을 확인하고 설정을 완료하려면 구독 확인 이메일 메시지에 대한 액세스 권한이 있어야 합니다. 토픽에 대한 메일링 리스트를 구독하는 경우 먼저 메일링 리스트에 이메일 주소를 추가하여 구독을 확인하세요.

Amazon SNS 콘솔을 사용하여, 구독을 취소하는 데 인증이 필요한 이메일 구독 생성

다음 단계를 완료하세요.

  1. Amazon SNS 콘솔을 연 다음, 이메일 주소로 토픽을 구독합니다.
  2. 이메일에서 AWS 알림의 구독 확인 메시지를 찾습니다. 발신자는 보통 no-reply@sns.amazonaws.com입니다.
    중요: 구독 확인 이메일에 있는 링크를 사용하여 구독을 확인하지 마십시오.
  3. 구독 확인 링크에서 URL을 복사합니다.
  4. 콘솔의 탐색 창에서 구독을 선택합니다.
  5. 구독 페이지에서 확인 보류 중인 구독을 선택한 다음, 구독 확인을 선택합니다.
  6. 3단계에서 복사한 구독 확인 URL을 구독 확인 대화 상자에 붙여 넣습니다.
  7. 구독 확인을 선택합니다.

AWS CLI를 사용하여, 구독을 취소하는 데 인증이 필요한 이메일 구독 생성

다음 단계를 완료하세요.

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI 오류 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

  1. Amazon SNS 토픽 목록을 가져오려면 다음 list-topics 명령을 실행합니다.
    aws sns list-topics --region us-east-1
    참고: us-east-1을 사용자 토픽의 AWS 리전으로 바꿉니다.
  2. 출력에서 구독하려는 토픽의 Amazon 리소스 이름(ARN) 값을 복사합니다. 토픽 ARN 값은 arn:aws:sns:us-east-1:012345678901:my-topic과 유사합니다.
  3. 엔드포인트에서 Amazon SNS 토픽을 구독하도록 하려면 다음 subscribe 명령을 실행합니다.
    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:012345678901:my-topic --protocol email --notification-endpoint test@amazon.com --region us-east-1
    참고: topic-arn을 2단계에서 복사한 토픽 ARN으로 바꾸세요. notification-endpoint를 토픽을 구독하려는 이메일 주소로 바꾸세요. us-east-1을 토픽의 리전으로 바꾸세요.
  4. 구독 확인 링크에서 URL을 복사하고 URL을 텍스트 편집기에 붙여넣은 다음, 토큰을 복사합니다. 토큰은 URL 중간(Token= 뒤와 &Endpoint= 앞)에 있는 일련의 긴 숫자와 문자입니다. 이 URL은 다음과 유사합니다.
    https://sns.us-east-1.amazonaws.com/confirmation.html?TopicArn=arn:aws:sns:us-east-1:123456789012:my-topic&Token=2336412f37fb687f5d51e6e241da92fcfd03593fd8dfa4bd75978a2ad7255afb88e71028f6a034d06f469f6c7ef20a609348542a0c68a9561c03a39d59beb02e2b7112c45f7ae26c344819b39cf07f15bef6c6c09766f9caa1fa55c236e77c33a50870bc027c74640ff64a7e99a67117&Endpoint=test@amazon.com
  5. 구독 토큰을 확인하려면 다음 confirm-subscription 명령을 실행합니다.
    aws sns confirm-subscription
    --topic-arn your-topic-arn
    --token your-token
    --authenticate-on-unsubscribe true
    참고: your-topic-arn을 이전에 복사한 토픽 ARN으로 바꾸고, your-token을 복사한 토큰으로 바꾸세요.

구독 요청이 성공적으로 인증되었는지 확인

구독이 인증되었는지 확인하려면 다음 get-subscription-attributes 명령을 실행하세요.

aws sns get-subscription-attributes --subscription-arn your-subscription-arn

참고: your-subscription-arn을 실제 구독 ARN으로 바꾸세요.

출력 예시:

{
    "Attributes": {
        "SubscriptionPrincipal": "arn:aws:iam:: 123456789012:role/Admin",
        "Owner": "123456789012",
        "RawMessageDelivery": "false",
        "TopicArn": "arn:aws:sns:us-east-1:123456789012:mytopic",
        "Endpoint": "test@testmail.com",
        "Protocol": "email",
        "PendingConfirmation": "false",
        "ConfirmationWasAuthenticated": "true",
        "SubscriptionArn": "arn:aws:sns:us-west-2:123456789012:mytopic:8a21d249-4329-4871-acc6-7be709c6ea7f "
    }
}

ConfirmationWasAuthenticated 속성 응답이 true이면 구독 요청이 성공적으로 인증된 것입니다.

AWS 공식업데이트됨 한 달 전