はじめに
本記事は次の記事のシリーズの一部です。
【Raspberry Pi 5のセットアップからClaude Codeの動作検証まで完全解説】
(1)OS(labwc)のインストール
https://qiita.com/LatanKee/items/630e5899bd85e6a462e8
(2)RPi初回起動~VNC接続
https://qiita.com/LatanKee/items/fc044e3562e5db0c332c
(3)Raspberry PiにClaude Codeのインストール・セキュリティ設定 ←今ここ
https://qiita.com/LatanKee/items/5c05c0404bc6e12da0c5
(4)Raspberry PiでClaude Codeデモ
https://qiita.com/LatanKee/items/07f52329ec8ef4cca1a8
本記事ではRaspberry Pi 5にClaude Codeのインストール・セキュリティ設定について解説します。
Raspberry PiにClaude Codeをインストール・セキュリティ設定
ステップ7.Claude Codeをインストール
1)OSを最新化
sudo apt update
sudo apt upgrade -y
2)OSの確認
システムが動作しているハードウェアのアーキテクチャ名(マシンの種類)を表示するコマンドです。
uname -m
結果
aarch64
64bit推奨なのでOKです。
armv7lと表示された場合は32ビットなので、64ビットOSで再イメージが必要です。
3)Node.js20をインストール
Claude CodeはNode.js18以上必要です。
Node.js20推奨です。
現在の確認
node -v
18未満または未インストールなら次のコマンドで、NodeSource経由でインストール
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
インストール完了後にnodeのバージョンを確認
node -v
npm -v
結果
以下になっていればOK
v20.x.x
10.x.x
4)Claude Codeをインストール
sudo npm install -g @anthropic-ai/claude-code
Claude Codeのバージョン確認
claude --version
以下のような結果になればOK
2.1.62 (Claude Code)
5)Claude Codeを起動する前に、セキュリティ対策のための設定
Claude Codeはデフォルトで大きな権限を持つため、大事なデータを削除したり、データの漏洩や意図しない外部との通信が発生したり、無限ループに陥ったりするなどのリスクがあります。そういったリスクを防止するためのセキュリティ対策です。
Claude Codeの設定
次のリンクはClaude Codeの設定に関する公式ドキュメントです。
最低限、次の2つの設定を行なっておくと良いでしょう。
| ファイル | 強制力 | 目的 |
|---|---|---|
| ~/.claude/settings.json | 強い | 実行制御 |
| CLAUDE.md | 弱い(誘導) | 開発方針共有 |
実務的おすすめ構成
~/.claude/settings.json ※必須(全体制限)← 外部通信・破壊系禁止・sandbox
project/
├── .claude/
│ ├── settings.json ※推奨(チーム共有)
│ └── settings.local.json ※任意(個人用)← 少し緩和したい時等
├── CLAUDE.md ※必須
├── README.md ※任意
└── src/
settings → ガードレール
CLAUDE.md → 方針
README → 人間用
なお、設定ファイルの優先順位は次の通りです。
| 設定ファイル | 用途 | 適用範囲 |
|---|---|---|
| ~/.claude/settings.json | グローバル設定 | マシン上の全プロジェクト |
| ./.claude/settings.json | プロジェクト設定 | チーム共有用(git にコミット) |
| ./.claude/settings.local.json | ローカル設定 | 個人用(gitignore推奨) |
Claude Codeの設定については以上です。
では先に紹介した2つの必須の設定に関する作業に移りましょう。
・.claude/settings.json
・CLAUDE.md
6)~/.claude/settings.jsonファイルの作成
まず現在の場所を確認
pwd
結果
/home/username
Raspberry Piのホームディレクトリである上記の位置にいればOKです。
ホームディレクトリで
mkdir -p ~/.claude
nano ~/.claude/settings.json
nanoエディタが立ち上がり、次の内容を入力
※Raspberry Piでペースト:Ctrl+Shift+v
{
"permissions": {
"deny": [
"Read(~/.ssh/**)",
"Read(~/.git-credentials)",
"Read(~/.config/gh/**)",
"Read(**/*id_rsa*)",
"Read(**/*id_ed25519*)",
"Read(**/.env*)",
"Edit(**/.env*)",
"Write(**/.env*)",
"Read(/secrets/**)",
"Edit(/secrets/**)",
"Write(/secrets/**)",
"Edit(~/.bashrc)",
"Write(~/.bashrc)",
"Edit(~/.zshrc)",
"Write(~/.zshrc)",
"Bash(nc:*)",
"Bash(ssh:*)",
"Bash(scp:*)",
"Bash(sudo:*)",
"Bash(su *)",
"Bash(rm *)",
"Bash(rmdir *)",
"Bash(unlink *)",
"Bash(shred *)",
"Bash(find * -delete*)",
"Bash(rsync * --delete*)",
"Bash(dd:*)",
"Bash(mkfs:*)",
"Bash(docker *:*)"
],
"ask": [
"Bash(git push:*)",
"Bash(systemctl *:*)",
"Bash(curl:*)",
"Bash(wget:*)"
],
"allow": [
"Bash(ls:*)",
"Bash(pwd)",
"Bash(cat:*)",
"Bash(git status)",
"Bash(git diff:*)"
]
},
"sandbox": {
"enabled": true,
"autoAllowBashIfSandboxed": false
}
}
nanoエディタの保存:Ctrl+O>Enter
Ctrl+Xでnanoエディタを閉じる
catでテキスト内容を確認します。
cat ~/.claude/settings.json
入力内容が反映されていることが確認できればOK
7)~/.claude/settings.jsonの内容の解説
🔐認証情報保護
Read(~/.ssh/**) SSH鍵漏洩防止
Read(~/.git-credentials) Git認証漏洩防止
Read(**/id_rsa) 鍵ファイル保護
Read(**/.env*) APIキー漏洩防止
Read(/secrets/**) 秘密ディレクトリ保護
🖥 シェル設定改変禁止
Edit(~/.bashrc) 永続バックドア防止
Edit(~/.zshrc) シェル汚染防止
🌐 外部接続制限
Bash(nc:*) ソケット通信禁止
Bash(ssh:*) SSH外部接続禁止
Bash(scp:*) データ外部送信防止
⬆ 権限昇格防止
Bash(sudo:*) root実行禁止
Bash(su *) ユーザー切替禁止
💣 破壊系コマンド防止
Bash(rm *) ファイル削除禁止
Bash(shred *) 復元不可削除防止
Bash(dd:*) ディスク破壊防止
Bash(mkfs:*) フォーマット防止
🐳 Docker禁止
Bash(docker :) コンテナ経由の権限回避防止
❓ ask
git push 外部リポジトリ送信確認
systemctl サービス改変確認
curl / wget 外部通信は確認制
🔒 sandbox設定
enabled: true → Claudeをサンドボックスモードで実行
autoAllowBashIfSandboxed: false → サンドボックス内でも自動許可しない
グローバルガードの作成は以上です。
8)作業用フォルダ(プロジェクト)の作成
mkdir my_project && cd my_project
homeやrootディレクトリで作業するとClaudeが全てのデータにアクセス可能な状態となり、大切なデータが削除されてしまうリスクがあります。シンプルな解決策は、作業用フォルダ(プロジェクト)で作業をすることです。Claude Codeに限らず、何か作業する際は専用の作業フォルダを作成し、そこで作業すると安全です。
9)CLAUDE.md作成
.mdは「Markdown(マークダウン)」という書き方のルールがあるメモ形式です。Claudeは毎回必ず「CLAUDE.md」を参照の上、作業をするため、一度ルールを決めて置けば以降はルール通りに作業してくれるわけです。
次のコマンドで「CLAUDE.md」を作成
nano CLAUDE.md
ここでは、Raspberry Piに特化した内容を入力します。
# 本プロジェクトについて
本プロジェクトは Raspberry Pi 5 上で動作するエッジAI開発環境です。
軽量性・安全性・再現性を重視します。
---
# システム要件
- Raspberry Pi 5
- RAM:8GB
- OS:Raspberry Pi OS 64bit(Bookworm/labwc)
- Node.js:20
- ストレージ:128GB (microSDカード)
---
# 言語ポリシー
- 回答は必ず日本語で行ってください。
- コード内コメントも日本語で記述してください。
- 英語での説明は行わないでください。
- 専門用語は初出時に日本語で簡潔な説明を添えてください。
- わかりやすく、簡潔に伝えてください。
---
# 安全に関する方針
- sudoコマンドは原則使用しないでください。
- systemctl操作は事前に確認を求めてください。
- ファイル削除操作は必ず事前確認してください。
- .env や secrets ディレクトリは読み取らないでください。
- 外部通信が必要な場合は、理由を明示してください。
- 既存ファイルの上書きは必ず確認してから行ってください。
---
# 作業前の確認ルール
以下に該当する場合は、必ず実行前に確認を取ってください。
- 複数ステップの作業は、実行前に「やること一覧」を提示し、承認を得てください。
- ファイルを変更・削除する前に、以下を説明してください:
- 何をするのか
- 想定されるリスク
- 元に戻せるかどうか(復元方法)
- 新しいパッケージをインストールする場合は、目的と必要性を説明し、承認を得てから行ってください。
---
# やらないこと
- ファイルの削除(手順の提案のみ行い、実行は人間に任せること)
- 説明なしでコマンドを実行すること
- 承認なしで新しいパッケージをインストールすること
---
# コーディング原則
- メモリ消費を最小化すること
- ARM環境を前提とすること
- 不要な依存パッケージを追加しないこと
- 型ヒントを活用すること
- 可読性を重視すること
---
# 出力ルール
- 修正箇所を明示してください。
- 変更理由を説明してください。
- 危険な操作は必ず警告してください。
- 実行コマンドには説明を添えてください。
- 作業完了後は、何を変更したかを箇条書きで要約してください。
以上です。お疲れ様でした✨
まとめ
Raspberry PiにClaude CodeのインストールとRaspberry Piに特化したセキュリティ対策のためのClaudeの設定についての解説は以上です。
これでClaude Codeを安全にRaspberry Pi上で運用することができます。
必要に応じてHooks構成など、追加でセキュリティの強化を行なうことも推奨されます。
次の記事では、いよいよ「Raspberry PiでClaude Code最小デモ」について解説します。
https://qiita.com/LatanKee/items/07f52329ec8ef4cca1a8



