다른 계정의 Amazon SQS 대기열로 Amazon SNS 메시지 보내기 - Amazon Simple Notification Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

다른 계정의 Amazon SQS 대기열로 Amazon SNS 메시지 보내기

이 문서에서는 다른 계정의 Amazon SQS 대기열에 하나 이상의 구독이 있는 상태에서 Amazon SNS 주제에 알림을 게시하는 방법을 설명합니다. 동일한 계정에서와 같은 방법으로 주제 및 대기열을 설정합니다(비동기 처리를 위해 Amazon SNS 알림을 Amazon SQS 대기열로 팬아웃합니다. 참조). 주요 차이점은 구독 확인을 처리하는 방법이며 주제에 대한 대기열을 구독하는 방법에 따라 다릅니다.

대기열 소유자가 구독을 생성할 때 확인이 자동으로 이루어지므로, 가능하다면 대기열 소유자가 구독 생성 섹션에서 참조하는 단계를 따르는 것이 좋습니다.

참고

Amazon SQS 대기열의 메시지 양이 많은 경우 대기열 소유자가 구독을 생성하는 것이 좋습니다.

대기열 소유자 구독 생성

Amazon SQS 대기열을 생성한 계정이 대기열 소유자입니다. 대기열 소유자가 구독을 생성할 경우 구독 확인은 필요하지 않습니다. 대기열은 Subscribe 작업이 완료되자마자 주제로부터의 알림 수신을 시작합니다. 대기열 소유자가 주제 소유자의 주제를 구독하려면 해당 주제 소유자가 대기열 소유자의 계정에 해당 주제에 대한 Subscribe 작업을 호출할 수 있는 권한을 부여해야 합니다.

1단계: AWS Management Console을 사용하여 주제 정책을 설정하려면

  1. Amazon SNS 콘솔에 로그인합니다.

  2. 탐색 창에서 주제(Topics)를 선택합니다.

  3. 주제를 선택한 다음 편집을 선택합니다.

  4. 편집 시 MyTopic페이지에서 액세스 정책 섹션을 확장합니다.

  5. 다음 정책을 입력합니다.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "sns:Subscribe", "Resource": "arn:aws:sns:us-east-2:123456789012:MyTopic" } ] }

    이 정책은 계정 111122223333에 계정 123456789012에서 MyTopic에 대해 sns:Subscribe를 호출할 수 있는 권한을 부여합니다.

    계정 111122223333에 대한 자격 증명을 가진 사용자가 MyTopic을 구독할 수 있습니다. 이 권한을 통해 계정 ID는 해당 IAM 사용자/역할에 권한을 위임할 수 있습니다. 루트 계정 또는 관리자 사용자만 sns:Subscribe를 호출할 수 있습니다. 또한 IAM 사용자/역할은 해당 대기열에 sns:subscribe 가입할 수 있도록 허용해야 합니다.

  6. Save changes(변경 사항 저장)를 선택합니다.

    계정 자격 증명이 있는 사용자만 111122223333 구독할 수 있습니다. MyTopic

2단계: 다음을 AWS 계정 사용하여 다른 주제에 Amazon SQS 대기열 구독을 추가하려면 AWS Management Console

시작하기 전에 주제 및 대기열에 ARNs 대한 권한이 있는지, 그리고 해당 주제에 대해 대기열로 메시지를 보낼 수 있는 권한을 부여했는지 확인하십시오.

  1. Amazon SQS 콘솔에 로그인합니다.

  2. 탐색 창에서 대기열(Queues)을 선택합니다.

  3. 대기열 목록에서 Amazon SNS 주제를 구독할 대기열을 선택합니다.

  4. Amazon SNS 주제 구독을 선택합니다.

  5. 이 대기열 메뉴에서 사용할 수 있는 Amazon SNS 주제 지정에서 대기열에 SNS 해당하는 Amazon 주제를 선택합니다.

  6. Amazon SNS 주제 ARN 입력을 선택한 다음 해당 주제의 Amazon 리소스 이름 (ARN) 을 입력합니다.

  7. 저장(Save)을 선택합니다.

    참고
    • 서비스와 통신할 수 있으려면 대기열에 Amazon에 대한 권한이 있어야 합니다SNS.

    • 사용자가 대기열의 소유자이므로 구독을 확인할 필요가 없습니다.

대기열을 소유하지 않지만 구독을 생성하는 사용자

구독을 생성하지만 대기열 소유자가 아닌 사용자는 구독을 확인해야 합니다.

Subscribe작업을 사용하면 Amazon에서 구독 확인을 대기열로 SNS 보냅니다. 구독 ID가 확인 보류 중으로 설정된 상태로 Amazon SNS 콘솔에 구독이 표시됩니다.

구독을 확인하려면 대기열에서 메시지를 읽을 권한이 있는 사용자가 구독 확인을 URL 검색하고 구독 소유자가 구독 확인을 사용하여 구독을 확인해야 합니다URL. 구독이 확인되기 전에는 주제에 게시된 알림은 대기열로 전송되지 않습니다. Amazon SQS 콘솔 또는 ReceiveMessage 작업을 사용하여 구독을 확인할 수 있습니다.

참고

주제에 엔드포인트를 구독하기 전에 대기열에 대한 sqs:SendMessage 권한을 설정하여 대기열이 주제로부터 메시지를 받을 수 있는지 확인합니다. 자세한 내용은 2단계: Amazon SNS 주제에 Amazon SQS 대기열로 메시지를 보낼 수 있는 권한을 부여합니다. 단원을 참조하십시오.

1단계: 다음을 AWS 계정 사용하여 다른 주제에 Amazon SQS 대기열 구독을 추가하려면 AWS Management Console

시작하기 전에 주제 및 대기열에 ARNs 대한 권한이 있는지, 그리고 해당 주제에 대해 대기열로 메시지를 보낼 수 있는 권한을 부여했는지 확인하세요.

  1. Amazon SNS 콘솔에 로그인합니다.

  2. 탐색 창에서 구독을 선택합니다.

  3. 구독 페이지에서 구독 생성을 선택합니다.

  4. 구독 생성 페이지의 세부 정보 섹션에서 다음을 수행합니다.

    1. ARNARN주제에는 주제를 입력합니다.

    2. 프로토콜의 경우 Amazon을 선택합니다SQS.

    3. 엔드포인트에 ARN 대기열의 이름을 입력합니다.

    4. 구독 생성을 선택합니다.

      참고
      • 서비스와 통신할 수 있으려면 대기열에 Amazon에 대한 권한이 있어야 합니다SNS.

다음은 Amazon SNS 주제가 Amazon SQS 대기열에 메시지를 보낼 수 있도록 허용하는 예제 정책 설명입니다.

{ "Sid": "Stmt1234", "Effect": "Allow", "Principal": "*", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-west-2:111111111111:QueueName", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-west-2:555555555555:TopicName" } } }

2단계: 다음을 사용하여 구독을 확인하려면 AWS Management Console

  1. Amazon SQS 콘솔에 로그인합니다.

  2. 주제에 대한 대기 중인 구독을 보유한 대기열을 선택합니다.

  3. Send and receive messages(메시지 보내기 및 받기)를 선택한 다음 Poll for messages(메시지 폴링)를 선택합니다.

    대기열에서 구독 확인 메시지가 수신됩니다.

  4. 본문 열에서 다음을 수행합니다.

    1. 추가 정보를 선택합니다.

    2. 메시지 세부 정보 대화 상자에서 구독 URL 값을 찾아 기록해 둡니다. 이 링크는 구독 링크입니다(아래 예). API토큰 검증에 대한 추가 세부 정보는 Amazon SNS API Reference를 참조하십시오 ConfirmSubscription.

      https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-east-2:123456789012:MyTopic&Token=2336412f37fb...
    3. 구독 확인 링크를 기록해 둡니다. 대기열 소유자로부터 구독 소유자에게 URL 전달되어야 합니다. 구독 소유자는 Amazon URL SNS 콘솔에 를 입력해야 합니다.

  5. Amazon SNS 콘솔에 구독 소유자로 로그인합니다. 구독 소유자가 확인을 수행합니다.

  6. 관련 주제를 선택합니다.

  7. 주제의 구독 목록 테이블에서 관련 구독을 선택합니다. '확인 보류 중(Pending confirmation)'으로 표시됩니다.

  8. 구독 확인(Confirm subscription)을 선택합니다.

  9. 구독 확인 링크를 요청하는 모달이 나타납니다. 구독 확인 링크를 붙여넣습니다.

  10. 모달에서 구독 확인(Confirm subscription)을 선택합니다.

    XML응답이 표시됩니다. 예를 들면 다음과 같습니다.

    <ConfirmSubscriptionResponse> <ConfirmSubscriptionResult> <SubscriptionArn>arn:aws:sns:us-east-2:123456789012:MyTopic:1234a567-bc89-012d-3e45-6fg7h890123i</SubscriptionArn> </ConfirmSubscriptionResult> <ResponseMetadata> <RequestId>abcd1efg-23hi-jkl4-m5no-p67q8rstuvw9</RequestId> </ResponseMetadata> </ConfirmSubscriptionResponse>

    구독된 대기열은 주제로부터 메시지를 수신할 준비가 되었습니다.

  11. (선택 사항) Amazon SNS 콘솔에서 주제 구독을 보면 구독 ID ARN 열에서 보류 중인 확인 메시지가 구독으로 대체된 것을 확인할 수 있습니다.

구독 취소 요청에 대한 인증을 요구하도록 구독을 강제하려면 어떻게 해야 합니까?

구독 소유자는 구독 확인 시 AuthenticateOnUnsubscribe 플래그를 true로 설정해야 합니다.

  • AuthenticateOnUnsubscribe는 대기열 소유자가 구독을 생성할 때 자동으로 true로 설정됩니다.

  • 인증 없이 구독 확인 링크로 이동하는 경우 AuthenticateOnUnsubscribe를 true로 설정할 수 없습니다.