OpenClaw

OpenClaw と Slack を連携する最新手順 (Socket Mode & Docker) – 2026年版

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

Slack App の作成と Manifest 設定

手順概要

  1. Slack API ポータル「Create New App」「From manifest」 を選択。
  2. 以下の Manifest を貼り付けて Save、続いて Install App to Workspace で Bot User OAuth Token (xoxb-…) を取得。

ポイント
Manifest に必須項目だけを書けば、GUI と設定の乖離が防げます。公式ドキュメントは Slack の App Manifest guide を参照してください。


Socket Mode と最小権限 Scopes の付与

Scope 用途
chat:write メッセージ送信(Bot が回答を返す)
channels:read チャンネル一覧取得(許可対象チャンネル判定に使用)
app_mentions:read Bot へのメンション受信
  • 最小権限の原則:実際に必要な操作だけを列挙し、過剰なスコープは付与しない。
  • スコープ追加後は Reinstall App(または manifest を更新して再インストール)で有効化します。

参考: Slack の OAuth & Permissions documentation


Bot Token の安全な保管・ローテーション手順

1. シークレット管理ツールへの格納

ツール 主な特徴
HashiCorp Vault 動的シークレット、ACL ベースのアクセス制御
AWS Secrets Manager 自動ローテーション(Lambda で実装可能)
GCP Secret Manager IAM による細粒度権限管理

Docker Compose と連携例(AWS Secrets Manager)

2. トークンローテーション手順

  1. 新規トークン発行
  2. Slack の OAuth & Permissions ページで Reinstall App → 新しい xoxb- が生成されます。
  3. シークレットストア更新
  4. 例: aws secretsmanager put-secret-value --secret-id slack/bot-token --secret-string "xoxb‑NEW…"
  5. コンテナ再起動(ロールアウト)
    bash
    docker compose pull openclaw
    docker compose up -d --no-deps --force-recreate openclaw
  6. 旧トークンの無効化(即時反映させる場合)
  7. Slack の App Management で「Remove token」または API auth.revoke を実行。

有効期限対策:Slack の Bot Token は自動失効しないため、上記ローテーションを 90日ごと にスケジュール化するとベストプラクティスです。(CI/CD パイプラインで cron タスクとして実装可)


OpenClaw 側設定(openclaw.json)とチャンネル限定運用

1. 設定ファイル例

  • groupPolicy: "closed" → 許可されたチャンネル以外では Bot が無視します。
  • allowChannelsSlack のチャンネル IDC…)を列挙。

2. チャンネル ID の取得手順

  1. Slack アプリで対象チャンネルを開く。
  2. 右クリック → 「コピー」 > 「リンクをコピー」
  3. コピーされた URL の最後の Cxxxxxxxx 部分がチャンネル ID。

正確な ID が設定されていないと Bot は無反応になるため、必ず確認してください。


Docker Compose によるデプロイ – ベストプラクティス

完全サンプル(2026 年版)

補足ポイント

項目 説明
Healthcheck OpenClaw の組み込み /health エンドポイントはデフォルトで 8000 ポート。コンテナ起動後に 200 が返れば正常です。ポート番号は環境変数 OPENCLAW_HEALTH_PORT で上書き可能です。
外部ロギング AWS CloudWatch (awslogs) を例示。他のプロバイダー(GCP Logging、Azure Monitor)でも同様に設定できます。
Secrets Docker の secrets 機能と外部シークレットストアを組み合わせることで、環境変数ファイルに平文トークンを書かずに済みます。

接続確認・トラブルシューティング

1. テストメッセージでの動作検証

Slack の許可チャンネルで @OpenClaw test と送信。
期待される応答例:

「テストメッセージを受け取りました 🚀」

ログに次のような行が出力されれば接続成功です。

2. よくあるエラーと対処法

エラーメッセージ 主因 解決策
invalid_auth Token が無効、または環境変数未設定 シークレットストアから最新トークンを取得し、コンテナ再起動
missing_scope 必要な Scope が付与されていない Manifest に不足スコープを追加 → Reinstall
socket_mode_error: connection failed Socket Mode が無効かネットワーク制限 Slack App の Socket Mode がオンか、ファイアウォールで wss://*.slack.com が許可されているか確認
rate_limited (HTTP 429) API 呼び出し頻度超過 バックオフ実装(指数的遅延)とリクエスト数削減を検討

運用上の注意点(レートリミット・監査ログ)

Slack API のレートリミット

エンドポイント 1 分間あたりの上限
chat.postMessage 約 20 回/チャンネル
conversations.list 約 100 回/ワークスペース
apps.event.authorizations.list (Socket Mode) 約 50 回/秒(内部で自動制御)
  • 対策
  • 再試行ロジックに Exponential Backoff を実装。
  • バッチ送信は可能な限りまとめ、不要な chat.postMessage 呼び出しを削減。
  • Slack の公式レートリミットガイド(https://api.slack.com/docs/rate-limits)を常に参照。

監査ログとコンプライアンス

項目 推奨設定
Slack API 呼び出し SLACK_APP_LOGGING を有効化し、全リクエスト/レスポンスを CloudWatch / Stackdriver に転送
コンテナ stdout/stderr 前述の外部ロギングドライバで集約。ログ保持期間は最低 90 日(ISO 27001 準拠)
シークレット変更履歴 Vault の audit デバイス、AWS Secrets Manager の Rotation History を有効化
CI/CD 変更レビュー Manifest・docker‑compose の差分は必ず Pull Request でコードレビューし、OPA(Open Policy Agent)で「過剰スコープ」チェックを自動実行

まとめ

  1. Manifest だけで最小構成の Slack App を作成socket_mode と必要 Scopes が一元管理。
  2. 最小権限(chat:write, channels:read, app_mentions:read) を付与し、過剰権限を排除。
  3. Bot Token は Vault/AWS Secrets Manager 等で暗号化保存 → 90 日ごとのローテーションと自動再デプロイを実装。
  4. OpenClaw の groupPolicy:"closed" と正確なチャンネル ID により、Bot が応答する範囲を限定。
  5. Docker ComposeHealthcheck (/health on 8000)、外部ロギング、シークレット注入を組み込み、運用の可観測性と安全性を確保。
  6. テストメッセージで接続確認 → エラーパターンはトークン・スコープ・Socket Mode の設定ミスが主因。
  7. レートリミット対策(バックオフ実装)と 監査ログの集中管理 を徹底し、コンプライアンス要件を満たす。

この手順に沿って構築・運用すれば、OpenClaw と Slack の連携は 安全かつスケーラブル に実現できます。ぜひ本ガイドをデプロイパイプラインや社内ドキュメントに組み込んで、継続的なセキュリティ改善に役立ててください。

スポンサードリンク

-OpenClaw
-, , , , , , , , ,