Use Cases (更新: 2026/7/22)

税理士事務所でClaude Codeを安全に使う: 顧問先データの匿名化と権限設定

税理士事務所向けに、顧問先データを原本から隔離し、匿名化、権限制限、入力前検査を行う手順を解説します。

税理士事務所でClaude Codeを安全に使う: 顧問先データの匿名化と権限設定

税理士事務所で、顧問先の試算表や給与CSVをClaude Codeへ渡す前に「会社名だけ消せばよい」と判断すると、あとから確認が戻ります。代表者名、メールアドレス、口座番号、取引先名、マイナンバーが別の列やファイル名に残り、誰の資料か推測できるためです。最初に直す場所はプロンプトではありません。原本フォルダとAI作業フォルダの境界です。

たとえば月次コメントでは、原本のCSVを開かせる必要はありません。会社名を「顧問先A」、売上を「1000万円から1500万円」のような幅へ置き換えた作業用JSONで、確認質問は作れます。税額、申告判断、送信は人が持ちます。

この記事では、税理士事務所が顧問先データを原本から隔離し、匿名化した作業コピーだけをClaude Codeへ渡す流れを作ります。権限設定だけを安全の根拠にせず、入力前検査と人の承認を重ねます。主CTAは、事務所内の役割と承認手順まで決める研修・相談です。

この記事の要点

  • 原本は raw-client-data/、AIへ渡すコピーは ai-work/ に分け、Claude Codeから原本を読めない設定にします。
  • 匿名化では名前を消すだけでなく、連絡先、口座、識別番号、取引先、細かすぎる金額、自由記述も見ます。
  • Claude Codeには、匿名化後の分類、差分表、確認質問、コメント案を任せます。税務判断、送信、保存期間、例外承認は人が決めます。
  • Use caseは、月次コメント、資料不足メール、申告前チェックリストの3つです。
  • ROIは、1件あたりの準備時間、差し戻し件数、入力前検査の停止件数、承認にかかった分数で測ります。

業務フロー: 原本を開かせる前に作業コピーを作る

税理士事務所の作業フォルダを、原本、変換処理、AI作業、承認済み出力の4つに分けます。原本には会計CSV、給与台帳、申告資料、顧問先メールを置きます。AI作業フォルダには、目的に必要な項目だけを残したJSON、Markdown、CSVを置きます。承認済み出力は、担当者名と確認日を付けて別に保存します。

フォルダ入れるものClaude Codeの扱い
raw-client-data/顧問先から受け取った原本読み書きとも拒否
transform/匿名化スクリプトと項目表人が内容を確認して実行
ai-work/仮名化・範囲化した作業コピー読み書きを許可
approved-output/人が承認した文面とチェック表人の操作で保存・送信

最初の作業は、AIへ渡す目的を1行で書くことです。「月次報告の文章を作る」では広すぎます。「売上帯、粗利率の前月差、未回収件数から、社長へ確認する質問を3つ出す」まで狭めます。目的が狭いほど、渡す項目も減らせます。

次に、項目表を作ります。会社名、氏名、住所、電話、メール、口座、マイナンバーは削除対象です。取引先名、珍しい業種、正確な売上、自由記述も、仮名や範囲へ置き換えます。誰が、いつ、どのルールで変換したかも記録します。

個人情報保護委員会は、クラウドサービス利用が個人データの取扱いの委託に当たる場合などの留意点を注意喚起で示しています。利用サービスの安全管理措置、契約上の役割、委託先の監督を、事務所側が確認する前提です。マイナンバーを含む特定個人情報は、事業者向けガイドラインを別枠で確認します。本記事の設定例だけで、法令や契約上の確認を置き換えるものではありません。

Claude Codeに任せる範囲と人が判断する範囲

Claude Codeへ任せるのは、匿名化後の資料を並べ替え、抜けを見つけ、確認質問と下書きを作るところまでです。たとえば「売上帯は前月より上がったが粗利率は下がった」「未回収件数が2件増えた」という事実から、担当者が顧問先へ確認する質問を出させます。元の会社名や正確な口座残高は要りません。

人が判断するのは、税務上の結論、数値、顧問先へ聞く表現、送信先、保存期間、削除、例外対応です。AIの断定は送らず、根拠資料と適用要件を税理士が確認して承認します。

権限も二層で考えます。Claude CodeのRead/Edit拒否は、組み込みツールが対象です。公式の権限設定では、Bashの子プロセスまで同じ方法で止まるとは限らないため、OSレベルで制限するサンドボックスを併用するよう説明されています。権限ルールの評価順は denyaskallow です。まず原本を拒否し、その後で作業フォルダだけを許可します。

3つのUse case

Use case 1: 月次コメントの確認質問を作る

  • 入力: 顧問先ID、売上帯、粗利率の前月差、未回収件数、担当者が付けた事実メモ。
  • 出力: 顧問先へ確認する質問3つ、月次コメント案、根拠に使った入力項目。
  • 人の確認: 会計数値、税務上の評価、顧問先固有の事情、送信文、宛先を承認する。

正確な売上額や会社名を渡さなくても、コメントの構造は作れます。Claude Codeには「増減を断定せず、入力にない理由を補わず、確認質問へ変える」と指示します。担当者は、原本を見ながら質問の優先順位を決めます。月次レポート全体の組み立ては税理士事務所の月次レポート記事へ分けています。

Use case 2: 資料不足メールの下書きを作る

  • 入力: 顧問先A、対象月、未提出資料の種類、希望回答日、送付方法の選択肢。
  • 出力: 件名、本文、箇条書きの不足資料、返信時の注意書き。
  • 人の確認: 実際の不足資料、期限、送信先、添付、他社名の混入を確認する。

資料不足メールでは、文章より宛先間違いと顧問先名の残存が事故につながります。AI作業コピーには実名を入れず、承認後にメールシステム側で差し込みます。顧問先メールと確認チェックリストで扱う文面作成の前に、この入力境界を置きます。

Use case 3: 申告前チェックリストの抜けを探す

  • 入力: 仮名化した法人区分、対象手続、資料カテゴリ、受領済みフラグ、確認担当の役割。
  • 出力: 未受領資料、担当者へ戻す質問、承認欄を含むチェックリスト案。
  • 人の確認: 申告義務、期限、必要書類、適用要件、電子申告、最終提出を判断する。

ここでも、Claude Codeへ申告可否を決めさせません。チェックリストの項目を既存手順と照合し、抜けの候補を出させます。人は税目、事業年度、届出状況、特例の要件を原本で確認します。出力には「確認者」「確認日」「根拠資料」の欄を残します。

コピペで使えるプロンプト

次のプロンプトは、ai-work/ に置いた匿名化済みの資料だけを読む前提です。実名や正確な識別番号をプロンプトへ追記しないでください。

あなたは税理士事務所の月次確認を補助します。
./ai-work/client-C017.json だけを読み、次の順で出力してください。

1. 入力に書かれた事実
2. 入力だけでは判断できない点
3. 顧問先へ確認する質問を3つ
4. 月次コメントの下書き
5. 人が原本で確認する項目

制約:
- 税務判断を断定しない
- 入力にない会社名、人物名、金額、理由を補わない
- メール送信、ファイル削除、外部通信を行わない
- 個人情報らしい値を見つけたら処理を止め、項目名だけ報告する
- 出力の最後に「税理士確認前・送信不可」と書く

プロンプトの前に、作業コピーが想定した項目だけかを機械で見ます。この記事と一緒に置いた scripts/check-tax-accountant-ai-input.mjs は、JSON、CSV、Markdown、テキストを走査し、氏名や連絡先に見える項目名、メール、電話、12桁の識別番号、郵便番号を見つけると終了コード1で止まります。

node scripts/check-tax-accountant-ai-input.mjs
node scripts/check-tax-accountant-ai-input.mjs ./ai-work
if ($LASTEXITCODE -ne 0) { throw "AI入力前チェックで停止しました" }

この検査は漏えい防止を保証しません。自由記述の意味や、複数項目を組み合わせた再識別までは判断できないため、検査後も人が作業コピーを開いて見ます。

動く権限設定

プロジェクトの .claude/settings.json では、原本を先に拒否し、AI作業フォルダだけを許可します。/raw-client-data/** の先頭の / は、Claude Codeの設定ではプロジェクトルート基準です。PCのルートを指す絶対パスは // から始まるため、混同しないでください。

{
  "permissions": {
    "deny": [
      "Read(/raw-client-data/**)",
      "Edit(/raw-client-data/**)",
      "Read(/secrets/**)",
      "Edit(/secrets/**)",
      "Bash(git push *)"
    ],
    "allow": [
      "Read(/ai-work/**)",
      "Edit(/ai-work/**)",
      "Bash(node scripts/check-tax-accountant-ai-input.mjs *)"
    ]
  },
  "sandbox": {
    "enabled": true,
    "failIfUnavailable": true,
    "allowUnsandboxedCommands": false,
    "filesystem": {
      "denyRead": ["./raw-client-data", "./secrets"],
      "denyWrite": ["./raw-client-data", "./secrets"]
    }
  }
}

公式のサンドボックス説明では、サンドボックスが起動できない時の既定動作は警告後に非サンドボックスで続行です。ここでは failIfUnavailable: true で停止し、allowUnsandboxedCommands: false で抜け道を無効にしています。サンドボックス対応はmacOS、Linux、WSL2が前提です。Windowsで運用する事務所はWSL2内で動かし、設定が効かない端末では顧問先データを扱わない運用にします。

設定後は「拒否されること」も試します。架空データだけを置いた検証用フォルダで、raw-client-data/ の読み取りが拒否され、ai-work/ の作業コピーだけを読めるかを確認します。設定ファイルが存在するだけでは合格にしません。Claude Codeの権限設定ガイドも、denyルールの考え方を補う資料です。

Pitfall: 匿名化と権限設定が破れる場面

1つ目の落とし穴は、会社名だけ消せば匿名化済みだと考える点です。原因は、代表者名、珍しい取引、正確な金額、自由記述が別に残るためです。直し方は、目的ごとに許可項目を決め、変換後のファイルだけを ai-work/ へ出す形です。

2つ目は、Read拒否だけでBashも止まると思うことです。原因は、組み込みのRead/Editルールと子プロセスの制限が別だからです。対策は、サンドボックスの denyReaddenyWrite を重ね、起動できない時は failIfUnavailable で処理を止めることです。

3つ目は、検査結果が0件なら安全だと決める点です。正規表現は、画像、PDF内の文字、表記ゆれ、意味から分かる個人情報を見落とします。修正方法は、許可項目方式にし、入力前検査、人の目視、処理ログ、削除期限を一組にします。

4つ目は、動作確認に実データを使う点です。テスト中のログやスクリーンショットへ値が残ります。架空データで拒否と許可を試し、事故時の停止手順も紙1枚へ書きます。

ROIを小さく測る

最初の2週間は、顧問先1社、月次コメント1種類だけで測ります。導入前に「原本確認から下書き完成までの分数」「担当者の修正回数」「所長からの差し戻し件数」を5回記録します。導入後も同じ項目を取り、入力前検査で止まった件数を追加します。

例として、月20件で1件あたり準備が18分から11分になれば、月140分の短縮です。ただし、承認時間が増えたなら差し引きます。売上換算だけでなく、誤送信、他社名の混入、原本アクセスを事前に止めた件数も記録します。速さだけを追うと、匿名化を省く圧力が生まれるためです。

導入前後は、件数 × (準備分 + 承認分 + 差し戻し分) と停止件数を並べ、速度と安全を同時に見ます。

よくある質問

Q. 顧問先名を仮名にすれば、そのまま使えますか。

いいえ。代表者名、住所、メール、口座、マイナンバー、取引先、正確な金額、自由記述も見ます。複数の値から顧問先を推測できないか、人が最後に確認します。

Q. ローカルで動かせば安全ですか。

ローカルという場所だけでは決まりません。利用サービスのデータ取扱い、認証、端末、ログ、外部通信、権限、契約を確認します。原本へアクセスできない境界を先に作ります。

Q. 検査スクリプトでPDFや画像も見られますか。

この記事のスクリプトはJSON、CSV、Markdown、テキストだけです。PDFや画像は対象外として止め、別の承認済み変換手順を通します。対象外を黙って通さない運用にします。

Q. マイナンバーを匿名化してAIへ渡してよいですか。

個別判断をこの記事では行いません。原則として作業コピーへ含めず、事務所の責任者が個人情報保護委員会のガイドライン、契約、利用目的、社内規程を確認します。

研修・相談で境界を決める

税理士事務所でClaude Codeを使う時、設定ファイルだけ作っても、誰が匿名化し、誰が例外を承認し、どこへ出力を保存するかが曖昧なら運用で破れます。原本、作業コピー、AI出力、承認済み文面の責任者を分ける必要があります。

研修・相談では、顧問先データの項目表、フォルダ境界、権限設定、入力前検査、承認表を、実データを持ち込まない形で設計します。最初の面談では、既存フォルダ名と作りたい成果物だけを確認し、原本そのものは共有しません。

実際に試した結果

この記事では、架空の顧問先JSONだけを使い、scripts/check-tax-accountant-ai-input.mjs の自己テストを実行しました。安全側のサンプルは検出0件、代表者名、メール、12桁識別番号を含む危険側のサンプルは停止する設計です。コード、コマンド、内部リンク、公式URL、CTA、frontmatter、アイキャッチ画像も公開前チェックの対象にしました。

今日の最初の作業は、空の raw-client-data/ai-work/ を作り、架空ファイルで「原本側は拒否され、作業コピー側だけ読めるか」を確認するテストです。合格後も、匿名化した作業コピーから始めます。

#claude-code #税理士事務所 #個人情報 #権限設定 #セキュリティ
無料

無料PDF: Claude Code はじめてのチートシート

まずは無料PDFで基本コマンドと最初の使い方をまとめて確認してください。登録後はそのままテンプレート集や導入相談にも進めます。

スパムは送りません。登録情報は厳重に管理します。

Claude Codeを仕事で使える形にしませんか?

まず無料PDFで基本を固め、繰り返し使う作業はGumroad教材へ、チーム導入や権限設計は導入相談へ進めます。

Masa

この記事を書いた人

Masa

Claude Codeの実務活用、導入設計、収益導線改善を検証しているエンジニア。10言語の技術メディアを運営中。

PR

関連書籍・参考図書

この記事のテーマに関連する書籍を楽天ブックスで探せます。

※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。