Kon's DX Lab - Case Study

Day 82 │ Slack Appの認証で403?「IAM認証を外す」ってどういうこと?

Published on 2025-06-22

🔬 Case Study Summary
Problem

(ここに課題を記述)

Result

(ここに具体的な成果を記述)


Tech & Process

(ここに採用技術とプロセスを記述) コードを詳しく見る »

こんにちは、こんです🦧
今回は、SlackとCloud Runをつないだときに起きがちな「403エラー」について、実際に自分が詰まったポイントと対処法をシェアしてみます。


🧯 Slackのリクエストが403で止まる…

Cloud RunでSlackボットを作って、/slack/events や /slack/commands にPOSTが来るはずなのに、なぜかこんなエラーが出ることがあります。

❌ 403 Forbidden

Cloud Run側のログにも Slack リクエストが届いてるっぽいのに処理されてない…
最初は「コードが悪いのかな?」と思いましたが、原因は設定側でした。


🔍 原因は「Cloud Runの認証設定」

Cloud Runはデフォルトで「IAMで認証されたリクエストだけを受け付ける」ようになっています。

つまり、Slackのような外部サービスからのリクエストは、何もしないとブロックされちゃうんです。


✅ 解決策:「IAM認証をオフ」にする

Cloud Runの管理画面で、認証のチェックを外せばOKです。
やり方はこちら👇

設定手順:

  1. Cloud Runの管理画面にアクセス

  2. 対象のサービス(例:workpulse-app)をクリック

  3. 上部の「セキュリティ」タブを開く

  4. 「受信リクエストの認証」を「認証不要」に変更

  5. 保存して完了!

これでSlackからのリクエストがちゃんと通るようになりました。


🤔 なぜ最初からオフじゃないの?

Cloud Runはセキュリティ重視で設計されているので、最初は「外部からのアクセス禁止」になっているようです。

でも、SlackやLINEみたいな外部サービスとつなぐときは、この設定変更が必要になるということですね。


🔁 再デプロイで設定が消える?

Cloud Runの設定はサービス単位で保存されるので、同じ名前で再デプロイする限りは「IAM認証オフ」の状態が引き継がれます。
ただし、新しいサービスを作るときはまた設定が初期状態になるので要注意です。


📝 ログでの気づきポイント

Cloud Runのログに以下のような記録が出てたら、リクエストが弾かれてるサインです。

"POST /slack/events" 403

Slack側で Event Subscription が「未検証」状態になっているときも、ここが原因だったりします。


🧩 まとめ

状況確認ポイントSlackからのリクエストが403Cloud Runの認証設定が「オン」になっていないか確認Event Subscriptionが未検証/slack/events にアクセスできていない可能性あり

はじめてのときはちょっと分かりづらいところですが、一度設定すれば安定して動くようになります🙌
SlackボットをCloud Runで作るときは、この設定だけは最初に見ておくとスムーズです!


#100日チャレンジ
#Slackボット開発
#CloudRun
#Flask
#認証設定
#403エラー
#MVP開発
#DX実験記録