AWS設定 · 1 min read · Dec 10, 2025
AWSのS3バケットでイベント通知を設定する方法

AWS S3イベント通知は、S3バケット内で特定のイベントが発生したときに通知を受け取るのに役立ちます。利用可能なAmazon S3バケットイベントを有効にして、通知メッセージを送信できます。したがって、指定されたイベントがS3バケットで発生するたびに、イベントがトリガーされ、通知が送信されます。
この記事では、S3バケットで特定のイベントが発生したときにメールで通知を受け取る方法を見ていきます。
AWS S3イベント通知は、通知/メッセージを送信できる以下の宛先をサポートしています。
- Amazon Simple Notification Service (Amazon SNS) トピック:
メッセージは、サブスクライブされたエンドポイントに送信されます。 - Amazon Simple Queue Service (Amazon SQS) キュー:
メッセージはSQSキューに送信され、そこに保存されます。 - AWS Lambda:
Lambda関数を呼び出し、イベントメッセージを引数として提供するために使用できます。
進む前に、S3バケットとSNSに精通しており、すでにアカウントにS3バケットとSNSトピックが作成されていることを前提とします。これらのリソースがない場合は、こちらをクリックしてAWSコンソールからS3バケットを作成する方法を学び、”AWSでSNSトピックとサブスクライバーを作成する方法”を検索して、メールサブスクライバーを含むSNSトピックを作成してください。
前提条件
- AWSアカウント(持っていない場合は作成してください)。
- S3バケット。
- SNSトピック。
何をするか?
- AWSにログインします。
- S3イベント通知を設定します。
AWSにログイン
こちらをクリックしてAWSログインページに移動します。
上記のリンクをクリックすると、ログイン情報を使用してログインする必要があるウェブページが表示されます。

アカウントに正常にログインすると、次の画面が表示されます。

S3イベント通知を設定する。
サービスをクリックし、S3を検索してS3ダッシュボードに移動します。

S3ダッシュボードで、イベント通知を設定したいS3バケットをクリックします。

「プロパティ」をクリックすると、次の画面が表示されます。ここで「イベント」をクリックします。

「通知を追加」をクリックして通知を作成できます。

作成する通知に名前を付け、通知を受け取りたいイベントを選択し、通知を送信したいSNSトピックを選択して「保存」をクリックします。
特定のフォルダーにファイルが追加されたときのみ通知を受け取るように、プレフィックス/サフィックスフィルターを設定することもできます。これはプレフィックス/サフィックスを追加することで実現できます。今はこれを追加していませんが、試してみることができます。

通知を保存するとエラーが表示されます。これは、選択したSNSトピックがこのバケットから通知を受け取る権限を持っていないためです。このエラーを解決するには、SNSバケットに権限を追加して、このS3バケットから通知を受け取れるようにする必要があります。

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をトリガーする方法を学びました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。