메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

Amazon S3 이벤트 알림 구성

Amazon S3 알림 기능은 버킷에서 특정 이벤트가 발생할 때 알림을 보냅니다. 알림을 설정하려면 먼저 Amazon S3가 게시할 이벤트와 Amazon S3가 이벤트 알림을 보낼 대상을 식별하는 알림 구성을 추가해야 합니다. 버킷에 연결된 알림 하위 리소스(버킷 구성 옵션 참조)에 이 구성을 저장합니다. Amazon S3는 이 하위 리소스를 관리하기 위한 API를 제공합니다.

개요

현재 Amazon S3는 다음과 같은 이벤트를 게시할 수 있습니다.

  • 새 객체 생성 이벤트 - Amazon S3는 여러 객체 생성 API를 지원합니다. 따라서 특정 API(예: s3:ObjectCreated:Put)를 사용할 경우에만 알림을 보내도록 요청하거나, 와일드카드(예: s3:ObjectCreated:*)를 사용하여 API에 관계없이 객체가 생성되면 무조건 알림을 보내도록 요청할 수도 있습니다.

  • 객체 제거 이벤트 - Amazon S3는 버전이 지정된 객체 및 버전이 지정되지 않은 객체의 삭제를 지원합니다. 객체 버전 관리에 대한 자세한 내용은 객체 버전 관리버전 관리 사용를 참조하십시오.

    s3:ObjectRemoved:Delete 이벤트 유형을 사용하여 객체가 삭제되거나 버전이 지정된 객체가 영구적으로 삭제될 경우 알림을 요청할 수 있습니다. 또한 s3:ObjectRemoved:DeleteMarkerCreated를 사용하여 버전이 지정된 객체에 대해 삭제 마커가 생성될 경우 알림을 요청할 수 있습니다. s3:ObjectRemoved:* 와일드카드를 사용하여 객체가 삭제되는 모든 경우에 알림을 요청할 수도 있습니다. 버전 지정된 객체 삭제에 대한 자세한 내용은 객체 버전 삭제를 참조하십시오.

  • RRS(Reduced Redundancy Storage) 객체 손실 이벤트 - Amazon S3가 RRS 스토리지 클래스에서 객체 손실이 확인되면 알림을 보냅니다.

지원되는 이벤트 유형의 전체 목록은 지원되는 이벤트 유형 단원을 참조하십시오.

Amazon S3는 다음과 같은 이벤트 게시 대상을 지원합니다.

  • Amazon Simple Notification Service(Amazon SNS) 주제

    Amazon SNS는 유연하며 완벽하게 관리되는 푸시 메시징 서비스입니다. 이 서비스를 사용하여 모바일 디바이스 또는 분산 서비스로 메시지를 푸시할 수 있습니다. SNS를 사용해 메시지를 한 번 게시하고 한 번 이상 전송할 수 있습니다. SNS 주제는 수신자가 이벤트 알림을 수신하기 위해 동적으로 구독할 수 있는 액세스 지점입니다. SNS에 대한 자세한 내용은 Amazon SNS 제품 페이지를 참조하십시오.

  • Amazon Simple Queue Service(Amazon SQS) 대기열

    Amazon SQS는 확장 가능하며 완벽하게 관리되는 메시지 대기열 서비스입니다. SQS를 사용하면 다른 서비스를 항상 가용 상태로 유지하지 않고도 모든 데이터 볼륨을 전송할 수 있습니다. 알림 구성에서 Amazon S3가 SQS 대기열로 이벤트를 게시하도록 요청할 수 있습니다. SQS에 대한 자세한 내용은 Amazon SQS 제품 세부 정보 페이지를 참조하십시오.

  • AWS Lambda

    AWS Lambda는 간편하게 새 정보에 신속하게 응답하는 애플리케이션을 구축할 수 있는 컴퓨팅 서비스입니다. AWS Lambda는 이미지 업로드, 앱에서의 작업, 웹 사이트 클릭 또는 연결된 디바이스의 출력과 같은 이벤트에 대한 응답으로 사용자가 작성한 코드를 실행합니다. AWS Lambda를 사용하여 맞춤형 로직으로 다른 AWS 서비스를 확장하거나 AWS 규모와 성능, 보안에 따라 작동하는 자체 백엔드 서비스를 만들 수 있습니다. AWS Lambda를 사용하면 손쉽게 필요할 경우에만 실행되며, 하루 몇 번의 요청에서 초당 수천 개의 요청으로 자동 확장되는 분산 이벤트 중심 애플리케이션을 만들 수 있습니다.

    AWS Lambda는 Amazon S3 버킷 이벤트에 대한 응답으로 맞춤형 로직을 실행할 수 있습니다. 맞춤 코드를 AWS Lambda로 업로드하여 Lambda 함수를 만듭니다. Amazon S3가 특정 유형의 이벤트(예: 객체 생성 이벤트)를 감지한 후 AWS Lambda에 이벤트를 게시하고 Lambda 함수를 호출할 수 있습니다. 그 응답으로 AWS Lambda는 함수를 실행합니다. 자세한 내용은 AWS Lambda 제품 세부 정보 페이지를 참조하십시오.

다음 단원에서는 버킷의 이벤트 알림을 활성화하는 자세한 방법을 설명합니다. 하위 주제에서는 알림 기능을 살펴보는 데 도움이 되는 실제 예제도 제공합니다.

이벤트 알림을 활성화하는 방법

알림 활성화는 버킷 수준의 작업이며, 버킷에 연결된 알림 하위 리소스에 알림 구성 정보를 저장합니다. 다음과 같은 메서드를 사용하여 알림 구성을 관리할 수 있습니다.

  • Amazon S3 콘솔 사용

    콘솔 UI를 사용하면 코드를 작성하지 않고도 버킷에 알림 구성을 설정할 수 있습니다. 지침은 S3 버킷에 대한 이벤트 알림을 활성화하고 구성하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

  • AWS SDK를 사용한 프로그래밍 방식

    참고

    필요한 경우 코드에서 직접 Amazon S3 REST API를 호출하게 할 수도 있습니다. 하지만 이 방법은 요청 인증을 위한 코드를 작성해야 하므로 번거로울 수 있습니다.

    내부적으로는 콘솔이나 SDK 모두 Amazon S3 REST API를 호출하여 버킷과 연결된 알림 하위 리소스를 관리합니다. AWS SDK를 사용하여 알림을 구성하는 예제는 위 단원에 제공된 예제 링크를 참조하십시오.

    사용하는 메서드에 관계없이 Amazon S3는 버킷과 연결된 알림 하위 리소스에 XML로 알림 구성을 저장합니다. 버킷 하위 리소스에 대한 자세한 내용은 버킷 구성 옵션 단원을 참조하십시오. 기본적으로 모든 유형의 이벤트에 대해 알림이 비활성화되어 있습니다. 따라서 처음에 알림 하위 리소스에는 빈 구성이 저장되어 있습니다.

    Copy
    <NotificationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </NotificationConfiguration>

    특정 유형의 이벤트에 대해 알림을 설정하려면 먼저 Amazon S3가 게시할 이벤트 유형 및 게시된 이벤트에 대한 알림을 보낼 대상을 지정한 구성으로 이 XML을 교체하십시오. 각 대상에 대해 해당 XML 구성을 추가해야 합니다. 예:

    • SQS 대기열로 이벤트 메시지 게시 - 하나 이상의 이벤트 유형에 대해 알림 대상으로 SQS 대기열을 설정하려면 QueueConfiguration을 추가합니다.

      Copy
      <NotificationConfiguration> <QueueConfiguration> <Id>optional-id-string</Id> <Queue>sqs-queue-arn</Queue> <Event>event-type</Event> <Event>event-type</Event> ... </QueueConfiguration> ... </NotificationConfiguration>
    • 이벤트 메시지를 SNS 주제로 게시 - 특정 이벤트 유형의 알림 대상으로 SNS 주제를 설정하려면 TopicConfiguration을 추가합니다.

      Copy
      <NotificationConfiguration> <TopicConfiguration> <Id>optional-id-string</Id> <Topic>sns-topic-arn</Topic> <Event>event-type</Event> <Event>event-type</Event> ... </TopicConfiguration> ... </NotificationConfiguration>
    • AWS Lambda 함수를 호출하고 그 인수로 이벤트 메시지를 제공 - 특정 이벤트 유형의 알림 대상으로Lambda 기능을 설정하려면 CloudFunctionConfiguration을 추가합니다.

      Copy
      <NotificationConfiguration> <CloudFunctionConfiguration>    <Id>optional-id-string</Id>    <Cloudcode>cloud-function-arn</Cloudcode>         <Event>event-type</Event>       <Event>event-type</Event>       ...   </CloudFunctionConfiguration> ... </NotificationConfiguration>

    버킷에 구성된 모든 알림을 삭제하려면 알림 하위 리소스에 빈 <NotificationConfiguration/> 요소를 저장합니다.

    Amazon S3는 특정 유형의 이벤트를 감지하면 이벤트 정보와 함께 메시지를 게시합니다. 자세한 내용은 이벤트 메시지 구조 단원을 참조하십시오.

이벤트 알림 유형 및 대상

이 단원에서는 Amazon S3에서 지원하는 이벤트 알림 유형과, 알림을 게시할 수 있는 대상 유형에 대해 설명합니다.

지원되는 이벤트 유형

Amazon S3는 다음과 같은 유형의 이벤트를 게시할 수 있습니다. 알림 구성에 이러한 이벤트 유형을 지정합니다.

이벤트 유형 설명

s3:ObjectCreated:*

s3:ObjectCreated:Put

s3:ObjectCreated:Post

s3:ObjectCreated:Copy

s3:ObjectCreated:CompleteMultipartUpload

PUT, POST 및 COPY와 같은 Amazon S3 API는 객체를 생성할 수 있습니다. 이러한 이벤트 유형을 사용하면 특정 API를 사용하여 객체가 생성될 때 알림을 활성화할 수 있습니다. 또는 s3:ObjectCreated:* 이벤트 유형을 사용하여 사용된 API에 관계없이 객체가 생성될 때마다 알림을 제공하도록 요청할 수 있습니다.

실패한 작업으로부터는 이벤트 알림이 수신되지 않습니다.

s3:ObjectRemoved:*

s3:ObjectRemoved:Delete

s3:ObjectRemoved:DeleteMarkerCreated

ObjectRemoved 이벤트 유형을 사용하여 객체나 객체 그룹이 버킷에서 삭제될 경우 알림을 활성화할 수 있습니다.

s3:ObjectRemoved:Delete 이벤트 유형을 사용하여 객체가 삭제되거나 버전이 지정된 객체가 영구적으로 삭제될 경우 알림을 요청할 수 있습니다. 또한 s3:ObjectRemoved:DeleteMarkerCreated를 사용하여 버전이 지정된 객체에 대해 삭제 마커가 생성될 경우 알림을 요청할 수 있습니다. 버전 지정된 객체 삭제에 대한 자세한 내용은 객체 버전 삭제를 참조하십시오. s3:ObjectRemoved:* 와일드카드를 사용하여 객체가 삭제되는 모든 경우에 알림을 요청할 수도 있습니다.

수명 주기 정책에 따른 자동 삭제 또는 작업이 실패한 경우에는 이벤트 알림이 수신되지 않습니다.

s3:ReducedRedundancyLostObject 이 이벤트 유형을 사용하여 Amazon S3가 RRS 스토리지 클래스에서 객체가 손실된 것을 확인할 때 Amazon S3가 알림 메시지를 보내도록 요청할 수 있습니다.

지원되는 대상

Amazon S3는 다음과 같은 대상으로 이벤트 알림 메시지를 보낼 수 있습니다. 알림 구성에 이러한 대상의 ARN 값을 지정합니다.

  • Amazon Simple Notification Service(Amazon SNS) 주제에 이벤트 메시지 게시

  • Amazon Simple Queue Service(Amazon SQS) 대기열에 이벤트 메시지 게시

    참고

    현재 S3는 서버측 암호화(SSE)가 활성화되지 않은 표준 SQS 대기열만 지원하고 있습니다.

  • Lambda 함수를 호출하고 이벤트 메시지를 인수로 제공하여 AWS Lambda에 이벤트 메시지 게시

Amazon SNS 주제 또는 Amazon SQS 대기열에 메시지를 게시할 수 있는 권한을 Amazon S3에 부여해야 합니다. 또한 Amazon S3에 사용자를 대신하여 AWS Lambda 함수를 호출할 수 있는 권한도 부여해야 합니다. 이러한 권한 부여에 대한 자세한 내용은 대상에 이벤트 알림 메시지를 게시할 권한 부여를 참조하십시오.

객체 키 이름 필터링으로 알림 구성

객체 키 이름의 접두사 및 접미사로 알림을 필터링하도록 구성할 수 있습니다. 예를 들어 ".jpg" 확장명을 갖는 이미지 파일이 버킷에 추가될 경우에만 알림을 받도록 구성할 수 있습니다. 또는 접두사가 "images/"인 객체가 버킷에 추가될 때에는 Amazon SNS 주제에 알림을 전송하고, 동일한 버킷에서 접두사가 "logs/"인 객체에 대한 알림은 AWS Lambda 함수로 알림을 전송하도록 구성할 수도 있습니다.

Amazon S3 콘솔에서 그리고 AWS SDK 또는 REST API를 통해 직접 Amazon S3 API를 사용하여 객체 키 이름 필터링을 사용하는 알림 구성을 설정할 수 있습니다. 콘솔 UI를 사용하여 버킷에 대한 알림 구성을 설정하는 방법에 대한 자세한 내용은 S3 버킷에 대한 이벤트 알림을 활성화하고 구성하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

이벤트 알림을 활성화하는 방법 에서 설명한 대로, Amazon S3는 버킷과 연결된 알림 하위 리소스에 XML로 알림 구성을 저장합니다. 알림의 규칙을 정의하여 객체 키 이름의 접두사 및/또는 접미사로 알림을 필터링하려면 Filter XML 구조를 사용합니다. Filter XML 구조에 대한 자세한 내용은 Amazon Simple Storage Service API ReferencePUT 버킷 알림을 참조하십시오.

Filter를 사용하는 알림 구성은 중첩 접두사, 중첩 접미사 또는 접두사 및 접미사 중첩을 포함하는 필터링 규칙을 정의할 수 있습니다. 다음 단원에는 객체 키 이름 필터링을 포함하는 유효한 알림 구성의 예와, 접두사/접미사 중첩으로 인해 유효하지 않은 알림 구성의 예가 나와 있습니다.

객체 키 이름 필터링을 포함하는 유효한 알림 구성 예제

다음 알림 구성에는 s3:ObjectCreated:Put 유형의 이벤트를 게시하기 위해 Amazon S3에 대한 Amazon SQS 대기열을 식별하는 대기열 구성이 포함되어 있습니다. 이 이벤트는 접두사가 images/이고 접미사가 jpg인 객체가 버킷에 추가(PUT)될 때마다 게시됩니다.

Copy
<NotificationConfiguration> <QueueConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images/</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> <Queue>arn:aws:sqs:us-west-2:444455556666:s3notificationqueue</Queue> <Event>s3:ObjectCreated:Put</Event> </QueueConfiguration> </NotificationConfiguration>

다음 알림 구성에는 여러 개의 비중첩 접두사가 있습니다. 이 구성은 images/ 폴더에서 PUT 요청에 대한 알림을 대기열 A로 보내고, logs/ 폴더에서 PUT 요청에 대한 알림은 대기열 B로 보내도록 정의합니다.

Copy
<NotificationConfiguration> <QueueConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images/</Value> </FilterRule> </S3Key> </Filter> <Queue>arn:aws:sqs:us-west-2:444455556666:sqs-queue-A</Queue> <Event>s3:ObjectCreated:Put</Event> </QueueConfiguration> <QueueConfiguration> <Id>2</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>logs/</Value> </FilterRule> </S3Key> </Filter> <Queue>arn:aws:sqs:us-west-2:444455556666:sqs-queue-B</Queue> <Event>s3:ObjectCreated:Put</Event> </QueueConfiguration> </NotificationConfiguration>

다음 알림 구성에는 여러 개의 비중첩 접미사가 있습니다. 이 구성은 버킷에 새로 추가된 모든 .jpg 이미지를 Lambda 클라우드 함수 A에서 처리하고, 새로 추가된 모든 .png 이미지는 클라우드 함수 B에서 처리하도록 구성합니다. 접미사 .png와 .jpg는 마지막 문자가 같기는 하지만 중첩되지는 않습니다. 한 문자열이 두 접미사로 끝날 수 있으면 두 개의 접미사가 중첩되는 것으로 간주됩니다. 한 문자열이 .png와 .jpg로 끝날 수 없으므로 예제 구성의 접미사는 중첩 접미사가 아닙니다.

Copy
<NotificationConfiguration> <CloudFunctionConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>.jpg</Value> </FilterRule> </S3Key> </Filter> <Cloudcode>arn:aws:lambda:us-west-2:444455556666:cloud-function-A</Cloudcode> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> <CloudFunctionConfiguration> <Id>2</Id> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>.png</Value> </FilterRule> </S3Key> </Filter> <Cloudcode>arn:aws:lambda:us-west-2:444455556666:cloud-function-B</Cloudcode> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> </NotificationConfiguration>

Filter를 사용하는 알림 구성은 동일한 이벤트 유형에 대해 중첩 접두사를 포함하는 필터링 규칙을 정의할 수 없습니다. 단 중첩 접두사가 중첩되지 않는 접미사와 함께 사용될 경우에는 가능합니다. 다음 예제 구성은 일반 접두사를 갖지만 접미사가 중첩되지 않게 생성된 객체가 어떻게 다른 대상으로 전송될 수 있는지를 보여 줍니다.

Copy
<NotificationConfiguration> <CloudFunctionConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>.jpg</Value> </FilterRule> </S3Key> </Filter> <Cloudcode>arn:aws:lambda:us-west-2:444455556666:cloud-function-A</Cloudcode> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> <CloudFunctionConfiguration> <Id>2</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>.png</Value> </FilterRule> </S3Key> </Filter> <Cloudcode>arn:aws:lambda:us-west-2:444455556666:cloud-function-B</Cloudcode> <Event>s3:ObjectCreated:Put</Event> </CloudFunctionConfiguration> </NotificationConfiguration>

유효하지 않은 접두사/접미사 중첩을 포함하는 알림 구성 예제

Filter를 사용하는 알림 구성은 대부분의 경우 동일한 이벤트 유형에 대해 중첩 접두사, 중첩 접미사 또는 접두사와 접미사의 중첩 조합을 포함하는 필터링 규칙을 정의할 수 없습니다. (접미사가 중첩되지 않을 경우에 한해 중첩 접두사를 사용할 수 있습니다. 예를 들면 객체 키 이름 필터링으로 알림 구성을 참조하십시오.)

이벤트 유형이 서로 다른 중첩 객체 키 이름 필터를 사용할 수 있습니다. 예를 들어 ObjectCreated:Put 이벤트 유형에 대해 image/ 접두사를 사용하고, ObjectDeleted:* 이벤트 유형에 대해 image/ 접두사를 사용하는 알림 구성을 만들 수 있습니다.

AWS Amazon S3 콘솔이나 Amazon S3 AP를 사용할 경우 동일한 이벤트 유형에 대해 유효하지 않은 중첩 이름 필터를 가진 알림 구성을 저장하려 하면 오류가 발생합니다. 이 단원에서는 중첩된 이름 필터로 인해 유효하지 않은 알림 구성의 예를 보여 줍니다.

기존의 알림 구성 규칙이 다른 접두사 및 접미사와 각각 일치하는 기본 접두사와 접미사를 갖는다고 가정해 보겠습니다. 다음 알림 구성은 중첩 접두사를 갖기 때문에 유효하지 않습니다. 루트 접두사가 다른 접두사와 중첩됩니다. (이 예에서 접두사 대신 접미사를 사용할 경우에도 마찬가지입니다. 루트 접미사가 다른 접미사와 중첩됩니다.)

Copy
<NotificationConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-notification-one</Topic> <Event>s3:ObjectCreated:*</Event> </TopicConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-notification-two</Topic> <Event>s3:ObjectCreated:*</Event> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> </NotificationConfiguration>

다음 알림 구성은 중첩 접미사가 있기 때문에 유효하지 않습니다. 한 문자열이 두 접미사로 끝날 수 있으면 두 개의 접미사가 중첩되는 것으로 간주됩니다. 문자열이 jpgpg로 끝날 수 있으므로 접미사가 중첩됩니다. (접두사의 경우에도 마찬가지로, 한 문자열이 두 접두사로 시작할 수 있을 경우 두 개의 접두사가 중첩되는 것으로 간주됩니다.)

Copy
<NotificationConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-one</Topic> <Event>s3:ObjectCreated:*</Event> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-two</Topic> <Event>s3:ObjectCreated:Put</Event> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>pg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> </NotificationConfiguration

다음 알림 구성은 접두사와 접미사가 중첩되기 때문에 유효하지 않습니다.

Copy
<NotificationConfiguration> <TopicConfiguration> <Topic>arn:aws:sns:us-west-2:444455556666:sns-topic-one</Topic> <Event>s3:ObjectCreated:*</Event> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>images</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> <TopicConfiguration> <Topic>arn:aws:snsus-west-2:444455556666:sns-topic-two</Topic> <Event>s3:ObjectCreated:Put</Event> <Filter> <S3Key> <FilterRule> <Name>suffix</Name> <Value>jpg</Value> </FilterRule> </S3Key> </Filter> </TopicConfiguration> </NotificationConfiguration>

대상에 이벤트 알림 메시지를 게시할 권한 부여

Amazon S3에서 대상으로 메시지를 게시할 수 있으려면 먼저 Amazon S3 보안 주체에 관련 API를 호출하여 SNS 주제, SQS 대기열 또는 Lambda 함수로 메시지를 게시할 수 있는 권한을 부여해야 합니다.

AWS Lambda 함수 호출 권한 부여

Amazon S3는 Lambda 함수를 호출하고 그 인수로 이벤트 메시지를 제공하여 AWS Lambda에 이벤트 메시지를 게시합니다.

Amazon S3 콘솔을 사용하여 Amazon S3 버킷에 Lambda 함수용 이벤트 알림을 구성할 때 Amazon S3 콘솔은 Amazon S3에 버킷에서 함수를 호출하기 위한 권한을 부여하도록 Lambda 함수에 필수 권한을 설정합니다. 자세한 내용은 S3 버킷에 대한 이벤트 알림을 활성화하고 구성하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오.

또한 Amazon S3에 Lambda 함수를 호출할 AWS Lambda의 권한도 부여할 수 있습니다. 자세한 내용은 AWS Lambda Developer Guide에서 Tutorial: Using the AWS Lambda with Amazon S3 단원을 참조하십시오.

SNS 주제 또는 SQS 대기열로 메시지를 게시할 권한 부여

SNS 주제 또는 SQS 대기열 대상에 IAM 정책을 연결하여 Amazon S3에서 SNS 주제 또는 SQS 대기열로 메시지를 게시할 수 있도록 권한을 부여합니다.

SNS 주제 대상에 연결할 IAM 정책의 예제입니다.

Copy
{ "Version": "2008-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SNS:Publish" ], "Resource": "SNS-ARN", "Condition": { "ArnLike": {         "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" } } } ] }

SQS 대기열 대상에 연결할 IAM 정책의 예제입니다.

Copy
{ "Version": "2008-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SQS:SendMessage" ], "Resource": "SQS-ARN", "Condition": { "ArnLike": {         "aws:SourceArn": "arn:aws:s3:*:*:bucket-name" } } } ] }

Amazon SNS 및 Amazon SQS IAM 정책 모두 ArnLike 조건 대신, StringLike 조건을 정책에 지정할 수 있습니다.

Copy
"Condition": {        "StringLike": {         "aws:SourceArn": "arn:aws:s3:*:*:bucket-name"        } }

SNS 주제 또는 SQS 대기열로 정책을 연결하는 자세한 방법은 예제 안내 1: 버킷의 알림 구성(메시지 대상: SNS 주제 및 SQS 대기열) 단원을 참조하십시오.

권한에 대한 자세한 내용은 다음 단원을 참조하십시오.