What this page solves
Most DM incidents are boundary problems, not model problems.
You should treat ~/.openclaw/credentials/* as access gates.
References:
Pre-rollout checklist
- use dedicated DM accounts, not shared public-channel accounts
- keep credentials files isolated per channel
- lock file permissions to runtime user only
- start with allowlist pairing rules
- assign explicit
dmScopeper account - keep
identityLinksone to one - define key rotation and revoke flow
- keep an owner map for account, channel, and credentials file
30-minute hardening actions
Step 1: lock file permissions
chmod 700 ~/.openclaw
chmod 700 ~/.openclaw/credentials
chmod 600 ~/.openclaw/credentials/*
If you run in containers or managed infra, apply equivalent permission controls.
Step 2: lock pairing boundaries
- deny by default, then allow known accounts
- bind one expected identity per account
- avoid one identity mapped to multiple accounts
Step 3: tie to session audit
- logs must include
channel/accountId/threadId - every pairing change must have operator and timestamp
- incident replay must show who used which credentials and when
Pass criteria
- unregistered accounts cannot pair
- credentials permission checks pass
- revoking one account takes effect within 10 minutes
- any DM session identity chain is traceable
High-frequency failure mapping
-
Symptom: old account still works after replacement
Action: check credentials cache, revoke old key, restart affected workers -
Symptom: two accounts share context
Action: inspectidentityLinksfor many-to-one mistakes -
Symptom: file permissions look correct but access still works
Action: inspect runtime user and volume mount policy
Next step: Multi-account routing runbook.