こんにちは、こんです🦧
今回は、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です。
やり方はこちら👇
設定手順:
Cloud Runの管理画面にアクセス
対象のサービス(例:workpulse-app)をクリック
上部の「セキュリティ」タブを開く
「受信リクエストの認証」を「認証不要」に変更
保存して完了!
これで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実験記録