AI / 自動化 2026 年 4 月 29 日

2026-04-29 OpenClaw、macOS TCCフルディスクアクセスヘッドレスでレンタルしたクラウド Mac上のファイルツール障害(HK / JP / KR / SG / US

MacXCode Engineering Team 2026 年 4 月 29 日 読了約 21 分

OpenClaw エージェントは、LLM の推論とローカルのファイルツールを組み合わせることが多く、ディスクからプロンプトを読み、トランスクリプトを書き、スクリーンショットを添付し、プロジェクトフォルダを走査します。ノート PC では、保護された場所に初めて触れるバイナリに対して macOS がTransparency, Consent, and Control(TCC)のダイアログを出します。一方、SSH だけで到達するヘッドレスでレンタルしたMac mini M4—MacXCode が シンガポール東京バージニアで標準とする接続形態—では、それらのダイアログはターミナルセッションには現れません。その結果、単純なツールは不可解な Operation not permitted で失敗し、ログは OpenClaw にもモデルにも原因を突き止めさせません。この 2026-04-29 版ガイドでは、真の POSIX 権限バグと TCC 拒否の切り分け、デスクトップ/書類のサンドボックスを避けるワークスペース設計、プライバシー承認を一度だけ付与するために VNC が妥当となる局面、さらに監査証跡を 構造化ログlaunchd シークレット に揃えてセキュリティレビュアーに一貫したストーリーを示す方法を整理します。

SSH 自動化がユーザーの代わりに「許可」をクリックできない理由

Apple のプライバシーデータベースは承認を実行ファイルのパスバンドル識別子、場合によっては親のコード署名と結び付けます。対話型の同意シートは、同じユーザーが GUI にログインして視覚的に承認することを前提とします。リモート自動化では、事前にプロビジョニングしたプロファイル(MDM/宣言的管理)、オペレーターが VNC 経由で行う一度きりの GUI オンボーディング、あるいは保護ディレクトリ自体に触れないアーキテクチャ上の制約が必要です。毎週退ける誤解が次の三つです。

  • 「sudo で TCC を直せる」—昇格は一部の POSIX チェックを迂回しますが、GUI サンドボックス経路のユーザー承認付きファイルアクセスは別問題です。加えて共有レンタルホストでは無制限 sudo は稀です。
  • 「Gatekeeper を無効化すれば良い」—アプリ単位の TCC とは無関係で、マルチテナントサーバーでは許容できません。
  • 「OpenClaw が不足権限をポリフィルすべき」—ランタイムが macOS ポリシーを安全に上書きすることはできず、変えられるのはデプロイ構造だけです。
経験則:個人の GUI ログインでは動くのに launchd が使うサービスアカウントでは失敗するなら、プロンプトを書き換える前にTCC の不一致を疑ってください。

症状の語彙:errno、プライバシー拒否、サンドボックス

ログに UNIX の errno とツールの上位メッセージの両方を残すよう訓練してください。POSIX の EPERM は様々な区分で現れるため、パス接頭辞と相関させます。

  • ~/Desktop / ~/Documents—サンドボックス外バイナリにとって明示的なプライバンシー付与が要る典型箇所です。
  • 他ユーザーのホーム—基本的には POSIX の問題ですが、Finder ブリッジ経由の API なら TCC も確認します。
  • リムーバブルボリューム—APFS 権限に加え、ディスク全体を走査するならフルディスクアクセスも絡みます。
計装: /Users/*/Library/Mail、タイムマシンボリューム、Mail のサンドボックス配下などパスが一致した時点で tcc_hint=possible を出してください—errno が確定する前でも有用です。

Linux エージェントから移行するチームは、広い umask やライフサイクル方針なしの /tmp 書き込みなどの習慣を持ち込みがちです。/tmp は多くの TCC 落とし穴は避けられますが、定期クリーンアップがジョブ ID 単位で名前空間化していないと実行中に OpenClaw のスクラッチを消す可能性があります。逆に、macOS ノート慣れのエンジニアはシンボリックリンクで iCloud 同期フォルダをサーバーに持ち込み、ヘッドレスデーモンが触ってはならない CloudDocs 保護を継承する例もあります。

企業サブネットの EDR を運用する側とも調整してください。あらゆるファイルをスキャンするエージェントは OpenClaw の読み取りと競合し、モデルの遅さと誤認されるレイテンシを増幅します—だからこそ構造化ログではファイル再試行を LLM レイテンシ指標とは別タグにし、外向き通信の耐性と並べて議論すべきです。

権限マトリクス:面・緩和策・運用コスト

シナリオ 緩和策 運用コスト
/Volumes/Data/workspace 配下のリポジトリを読む ワークスペースを TCC 保護外ボリュームに置き、サービスユーザーに POSIX ACL を付与 低—MacXCode が推奨するレイアウト
ユーザーのダウンロードを列挙 SFTP ジョブで共有ステージングへ取り込む 中—運用習慣の変更が要る
Finder を自動化で操作 ターミナル→Finder の自動化を許可するか、AppleEvents を避ける 高—ヘッドレスでは壊れやすい
フルディスク走査のようなアンチウイルス的スキャン 明示的なフルディスクアクセス項目+正当性の文書化 高—セキュリティレビュー対象

行は四半期ごとに見直してください。Apple は区分を細分化することがあり、かつて「フルディスクアクセス」に含まれていた範囲が将来の macOS でメディアライブラリなどに分割される可能性があります。社内ウィキの行 ID はラベル変更があっても据え置き、過去のインシデントチケット検索性を保ってください。

レンタルノード上の推奨データ配置

エージェント用ワークスペースは、自動化専用の /Volumes/.../srv/... マウント配下に置き、人間のダウンロードフォルダと混ぜないでください。顧客ごとに Git クローンをパスバケツで分け、chmod 境界がコンプライアンスパックと一致するようにします。大きな成果物は MacXCode ノードが公開する1〜2 TBの SSD プールに置き、重い埋め込み生成がシステムスナップショットと競合しないようにします。

OpenClaw がスクリーンショットを要する場合は、承認済みフォルダへ書き込むプログラマティックな描画 API を優先し、デスクトップへ落とす screencapture 既定に依存しないでください—デスクトップは実行が断続的に成功しても追加のプライバシー審査を誘発します。

是正のはしご(最も低くて安全な段で止める)

  1. パスを移す—ジョブ入出力を、DerivedData 分離で述べた CI キャッシュと共有する POSIX 管理下ディレクトリへ移します。
  2. ACL の修正—サービスユーザーに読み取り・実行を付与しつつ、世界読み取り可能な秘密は作らない。
  3. バイナリの安定性—Node/OpenClaw のパスを一定に保ち、過去の TCC 付与と一致させる(シンボリックリンクでのアップグレードは慎重に)。
  4. GUI での確認窓—ステークホルダーと VNC を予約し、プロンプトを一度だけ承認する。
  5. MDM プロファイル—エンタープライズフリートのみ。プライバシー用ペイロード ID を調整する。
  6. ポリシー例外のエスカレーション—より狭いスコープでは届かない理由を監査/規制観点で文書化する。

段 3 と 4 の間では、方針が許すなら VNC オペレーターが承認をクリックする画面録画を残してください—後の監査では「クレデンシャルをシェルに埋め込まなかった」証拠になります。段 4 と 5 の間では、本番リースプールに触れる前にステージング Mac mini で MDM ペイロードを検証し、深夜ビルドを壊さないようにします。

OpenClaw を Xcode UI テスト用に人間が使うアカウントと同居させるスタックもありますが、対話セッションとデーモンを混ぜると、まずリクエストを出したバイナリに承認が付くため TCC が複雑になります。環境(devstagingprod)ごとに専用サービスアカウントを分け、SOC レビューでプライバシー付与を説明しやすくしてください。

構造化ログとの連携と相関 ID

JSON ログに tcc_suspectedpath_roottool_name を足し、Grafana で LLM 再試行とディスク失敗を分離します—LLM HTTP 予算のパターンは流用しつつ、ディスク拒否はバックオフなしのクライアントエラーとして扱います。レディネスプローブのゲートウェイ健全性と組み合わせ、Kubernetes 風オーケストレータがファイルシステム権限の欠如だけでポッドを再起動しないようにします。

インシデント振り返りでは、方針が許す範囲で tccutil 一覧のスナップショットを取り、シークレットは貼らず、障害開始時にどの Node バイナリが権限を持っていたかハッシュ化した指紋を添付してください。

プラットフォーム運用者向け FAQ

質問 回答(2026-04-29)
Rosetta は TCC に影響するか アーキテクチャはパスマッピングに効きます—意図的に x86 ブリッジを走らせない限り arm64 の Node を保ち、承認の前提をずらさないでください。
ワークスペースを chmod 0777 にしてよいか 避けてください。グループ ACL を使い、世界書き込み可能ディレクトリは SOC2 系ベースラインでも問題になります。

社内用の任意の第三 FAQ として、クラウド事業者がエンドポイントエージェント関連のカーネル拡張を許すか—OpenClaw 自体には無関係ですが、統合スタックを評価するパートナーからよく聞かれます。

ベアメタル Mac mini M4 ノードが権限ガバナンスを簡素化する理由

仮想化した macOS はプライバシープロンプトで使われるデバイス識別子を曖昧にすることがあります。香港、東京、ソウル、シンガポール、米国の物理 Mac mini M4 ホストは実行パスを安定したハードウェア UUID 文脈に揃え、MDM と手動承認をリビルド後も再現しやすくします。大容量ユニファイドメモリにより、OpenClaw ゲートウェイと CPU 重い埋め込みを同居させつつ、TCC キャッシュを混乱させるマウント名前空間を跨いだバイナリの入れ替えを避けられます。ディスク構成が退屈—専用ボリューム、明示的サービスアカウント、文書化された chmod—であれば、AI スタックは顧客プロンプトにサイクルを使い、黙った macOS 拒否に費やしません。地域別料金接続ガイド で、この構成をホスティングの接着剤から再発明せずに再現できます。

プロンプトを追う前にワークスペースを隔離する

1〜2 TB · Apple Silicon · SSH/オプションで VNC