다른 계정의 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 주제 지정 메뉴 에서 대기열의 Amazon SNS 주제를 선택합니다.

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

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

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

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

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

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

Subscribe 작업을 사용하면 Amazon은 구독 확인을 대기열로 SNS 보냅니다. 구독은 Amazon SNS 콘솔에 표시되며 구독 ID는 확인 보류 중으로 설정됩니다.

구독을 확인하려면 대기열에서 메시지를 읽을 수 있는 권한이 있는 사용자가 구독 확인 를 검색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. 주제 ARN에 주제ARN의 를 입력합니다.

    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 참조ConfirmSubscription의 섹션을 참조하세요.

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

  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로 설정할 수 없습니다.