웹사이트 검색

AWS의 S3 버킷에서 이벤트 알림을 구성하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. AWS에 로그인
  4. S3 이벤트 알림을 구성합니다.\n
  5. 결론

AWS S3 이벤트 알림은 S3 버킷에서 특정 이벤트가 발생할 때 알림을 받는 데 도움이 됩니다. 사용 가능한 Amazon S3 버킷 이벤트를 활성화하여 알림 메시지를 보낼 수 있습니다. 따라서 S3 버킷에서 지정된 이벤트가 발생할 때마다 이벤트가 트리거되고 알림이 전송됩니다.

이 기사에서는 S3 버킷에서 특정 이벤트가 발생할 때 이메일로 알림을 받는 방법을 살펴봅니다.

AWS S3 이벤트 알림은 알림/메시지를 보낼 수 있는 다음 대상을 지원합니다.

  1. Amazon Simple Notification Service(Amazon SNS) 주제:
    메시지는 구독한 엔드포인트로 전송됩니다.\n
  2. Amazon Simple Queue Service(Amazon SQS) 대기열:
    메시지가 저장될 수 있는 SQS 대기열로 전송됩니다.
  3. AWS Lambda:
    Lambda 함수를 호출하고 이벤트 메시지를 인수로 제공하는 데 사용할 수 있습니다.\n

계속 진행하기 전에 귀하가 S3 버킷과 SNS에 익숙하고 귀하의 계정에 S3 버킷과 SNS 주제가 이미 생성되어 있다고 가정합니다. 이러한 리소스가 없는 경우 여기를 클릭하여 AWS 콘솔에서 S3 버킷을 생성하는 방법을 알아보고 "How to create an SNS Topic and a Subscriber on AWS?"를 검색하여 이메일 구독자가 포함된 SNS 주제를 생성하십시오. .

전제 조건

  1. AWS 계정(계정이 없는 경우 생성).
  2. S3 버킷.
  3. SNS 주제.

우리는 무엇을 할 것인가?

  1. AWS에 로그인합니다.\n
  2. S3 이벤트 알림을 구성합니다.\n

AWS에 로그인

AWS 로그인 페이지로 이동하려면 여기를 클릭하십시오.

위의 링크를 누르면 로그인 세부 정보를 사용하여 로그인해야 하는 다음과 같은 웹 페이지가 표시됩니다.

계정에 성공적으로 로그인하면 다음과 같은 화면이 표시됩니다.

S3 이벤트 알림을 구성합니다.

서비스를 클릭하고 S3를 검색하여 S3 대시보드로 이동합니다.

S3 대시보드에서 이벤트 알림을 구성하려는 S3 버킷을 클릭합니다.

"속성"을 클릭하면 다음과 같은 화면이 표시됩니다. 여기에서 "이벤트"를 클릭하십시오.

이제 "알림 추가"를 클릭하여 알림을 만들 수 있습니다.

생성할 알림에 이름을 지정하고 알림을 받을 이벤트를 선택한 다음 알림을 보낼 SNS 주제를 선택하고 "저장"을 클릭합니다.

파일이 특정 폴더에 추가될 때만 알림을 받도록 접두사/접미사 필터를 설정할 수도 있습니다. Prefix/Suffix를 추가하면 됩니다. 지금은 이것을 추가하지 않고 원하는 경우 시도해 볼 수 있습니다.

알림을 저장하면 오류가 표시됩니다. 알림을 보내도록 선택한 SNS 주제에 이 버킷의 알림을 받을 수 있는 권한이 없기 때문입니다. 따라서 이러한 유형의 오류가 발생합니다. 이 오류를 해결하려면 이 S3 버킷에서 알림을 받을 수 있도록 SNS 버킷에 권한을 추가해야 합니다.

SNS로 이동하려면 SNS를 검색하고 결과를 클릭합니다.

기본 대시보드에서 왼쪽 패널의 "주제"를 클릭합니다.

SNS 주제를 클릭합니다.

"액세스 정책"에서 SNS의 현재 정책을 확인할 수 있습니다. 이 정책을 수정해야 합니다. "편집"을 클릭합니다.

SNS 정책을 다음 정책으로 바꿉니다.

{
  "Version": "2012-10-17",
  "Id": "__default_policy_ID",
  "Statement": [
    {
      "Sid": "__default_statement_ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "SNS:GetTopicAttributes",
        "SNS:SetTopicAttributes",
        "SNS:AddPermission",
        "SNS:RemovePermission",
        "SNS:DeleteTopic",
        "SNS:Subscribe",
        "SNS:ListSubscriptionsByTopic",
        "SNS:Publish",
        "SNS:Receive"
      ],
      "Resource": "arn:aws:sns:eu-west-3:064827688814:rahul-test",
      "Condition": {
        "StringEquals": {
          "AWS:SourceOwner": "064827688814"
        }
      }
    },
    {
      "Sid": "AWSEvents_all-events_Id2377506854031",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:eu-west-3:064827688814:rahul-test"
    },
    {
      "Sid": "AWSEvents_S3_Event",
      "Effect": "Allow",
      "Principal": {
        "Service": "s3.amazonaws.com"
      },
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:eu-west-3:064827688814:rahul-test"
    }
  ]
}

SNS 정책에는 볼드+이탤릭체 문구만 추가했습니다. 또한 빨간색으로 강조표시된 필드를 교체하는 것을 잊지 마세요.

변경 사항을 SNS에 저장합니다.

S3 이벤트로 돌아와서 이제 동일한 이벤트를 다시 생성하고 저장해 봅니다. 이제 1개의 이벤트가 생성된 것을 볼 수 있습니다.

S3 버킷의 기본 페이지로 이동하여 이벤트가 알림을 받고 있는지 여부를 테스트합니다.

S3 버킷에 샘플 객체를 업로드하면 S3 버킷에서 "PUT" 작업이 됩니다. 이렇게 하면 이벤트 알림이 트리거되고 알림이 전송됩니다.

그래서 객체를 업로드하면 우리가 만든 이벤트 알림이 트리거되고 SNS에 내가 포함된 이메일 구독에 대한 알림이 전송되었습니다.

결론

이 기사에서는 S3 버킷에서 PUT/COPY/POST와 같은 지정된 이벤트가 발생할 때 S3에서 이벤트 알림을 생성하고 SNS를 트리거하는 방법을 배웠습니다.