アイデンティティとアクセス管理
組織でのClaude Codeのユーザー認証、認可、アクセス制御の設定方法を学びます。
認証方法
Claude Codeの設定にはAnthropicモデルへのアクセスが必要です。チームの場合、Claude Codeアクセスを以下の3つの方法のいずれかで設定できます:
- Anthropic Console経由のAnthropic API
- Amazon Bedrock
- Google Vertex AI
Anthropic API認証
Anthropic API経由でチームのClaude Codeアクセスを設定するには:
- 既存のAnthropic Consoleアカウントを使用するか、新しいAnthropic Consoleアカウントを作成します
- 以下のいずれかの方法でユーザーを追加できます:
- Console内からユーザーを一括招待(Console -> Settings -> Members -> Invite)
- SSOを設定
- ユーザーを招待する際、以下のいずれかの役割が必要です:
- 「Claude Code」役割は、ユーザーがClaude Code APIキーのみを作成できることを意味します
- 「Developer」役割は、ユーザーがあらゆる種類のAPIキーを作成できることを意味します
- 招待された各ユーザーは以下の手順を完了する必要があります:
- Console招待を受諾
- システム要件を確認
- Claude Codeをインストール
- Consoleアカウント認証情報でログイン
クラウドプロバイダー認証
BedrockまたはVertex経由でチームのClaude Codeアクセスを設定するには:
- BedrockドキュメントまたはVertexドキュメントに従います
- 環境変数とクラウド認証情報生成の手順をユーザーに配布します。設定管理についてはこちらをお読みください。
- ユーザーはClaude Codeをインストールできます
アクセス制御と権限
エージェントが許可されることを正確に指定できるよう(例:テスト実行、リンター実行)、許可されないことも指定できるよう(例:クラウドインフラストラクチャの更新)、きめ細かい権限をサポートしています。これらの権限設定はバージョン管理にチェックインして組織内のすべての開発者に配布でき、個々の開発者がカスタマイズすることもできます。
権限システム
Claude Codeは、パワーと安全性のバランスを取るために階層化された権限システムを使用します:
ツールタイプ | 例 | 承認が必要 | 「はい、再度確認しない」の動作 |
---|---|---|---|
読み取り専用 | ファイル読み取り、LS、Grep | いいえ | N/A |
Bashコマンド | シェル実行 | はい | プロジェクトディレクトリとコマンドごとに永続的 |
ファイル変更 | ファイル編集/書き込み | はい | セッション終了まで |
権限の設定
/permissions
でClaude Codeのツール権限を表示・管理できます。このUIはすべての権限ルールとそれらのソースとなるsettings.jsonファイルを一覧表示します。
- Allowルールは、Claude Codeが手動承認なしで指定されたツールを使用することを許可します。
- Askルールは、Claude Codeが指定されたツールを使用しようとするたびにユーザーに確認を求めます。Askルールはallowルールより優先されます。
- Denyルールは、Claude Codeが指定されたツールを使用することを防ぎます。Denyルールはallowルールとaskルールより優先されます。
- Additional directoriesは、Claudeのファイルアクセスを初期作業ディレクトリを超えたディレクトリに拡張します。
- Default modeは、新しいリクエストに遭遇したときのClaudeの権限動作を制御します。
権限ルールは次の形式を使用します:Tool
またはTool(optional-specifier)
ツール名だけのルールは、そのツールのあらゆる使用にマッチします。例えば、allowルールのリストにBash
を追加すると、Claude CodeがBashツールをユーザー承認なしで使用できるようになります。
権限モード
Claude Codeは、設定ファイルでdefaultMode
として設定できるいくつかの権限モードをサポートしています:
モード | 説明 |
---|---|
default | 標準動作 - 各ツールの初回使用時に権限を求めるプロンプトを表示 |
acceptEdits | セッション中のファイル編集権限を自動的に受諾 |
plan | プランモード - Claudeは分析できるがファイルの変更やコマンドの実行はできない |
bypassPermissions | すべての権限プロンプトをスキップ(安全な環境が必要 - 下記の警告を参照) |
作業ディレクトリ
デフォルトでは、Claudeは起動されたディレクトリ内のファイルにアクセスできます。このアクセスを拡張できます:
- 起動時:
--add-dir <path>
CLIアーギュメントを使用 - セッション中:
/add-dir
スラッシュコマンドを使用 - 永続的設定:設定ファイルの
additionalDirectories
に追加
追加ディレクトリ内のファイルは、元の作業ディレクトリと同じ権限ルールに従います - プロンプトなしで読み取り可能になり、ファイル編集権限は現在の権限モードに従います。
ツール固有の権限ルール
一部のツールは、よりきめ細かい権限制御をサポートしています:
Bash
Bash(npm run build)
正確なBashコマンドnpm run build
にマッチBash(npm run test:*)
npm run test
で始まるBashコマンドにマッチBash(curl http://site.com/:*)
正確にcurl http://site.com/
で始まるcurlコマンドにマッチ
Claude Codeはシェル演算子(&&
など)を認識するため、Bash(safe-cmd:*)
のような前置マッチルールはsafe-cmd && other-cmd
コマンドの実行権限を与えません
Bash権限パターンの重要な制限:
- このツールは前置マッチを使用し、正規表現やglobパターンではありません
- ワイルドカード
:*
はパターンの最後でのみ機能し、任意の継続にマッチします Bash(curl http://github.com/:*)
のようなパターンは多くの方法で回避できます:- URL前のオプション:
curl -X GET http://github.com/...
はマッチしません - 異なるプロトコル:
curl https://github.com/...
はマッチしません - リダイレクト:
curl -L http://bit.ly/xyz
(githubにリダイレクト) - 変数:
URL=http://github.com && curl $URL
はマッチしません - 余分なスペース:
curl http://github.com
はマッチしません
- URL前のオプション:
より信頼性の高いURLフィルタリングについては、以下を検討してください:
WebFetch(domain:github.com)
権限でWebFetchツールを使用- CLAUDE.mdを通じてClaude Codeに許可されたcurlパターンを指示
- カスタム権限検証にフックを使用
Read & Edit
Edit
ルールは、ファイルを編集するすべての組み込みツールに適用されます。Claudeは、Grep、Glob、LSなどのファイルを読み取るすべての組み込みツールにRead
ルールを適用するよう最善の努力をします。
ReadとEditルールはどちらもgitignore仕様に従い、4つの異なるパターンタイプがあります:
パターン | 意味 | 例 | マッチ |
---|---|---|---|
//path | ファイルシステムルートからの絶対パス | Read(//Users/alice/secrets/**) | /Users/alice/secrets/** |
~/path | ホームディレクトリからのパス | Read(~/Documents/*.pdf) | /Users/alice/Documents/*.pdf |
/path | 設定ファイルに相対的なパス | Edit(/src/**/*.ts) | <設定ファイルパス>/src/**/*.ts |
path または./path | 現在のディレクトリに相対的なパス | Read(*.env) | <cwd>/*.env |
/Users/alice/file
のようなパターンは絶対パスではありません - 設定ファイルに相対的です!絶対パスには//Users/alice/file
を使用してください。
Edit(/docs/**)
-<project>/docs/
での編集(/docs/
ではありません!)Read(~/.zshrc)
- ホームディレクトリの.zshrc
を読み取りEdit(//tmp/scratch.txt)
- 絶対パス/tmp/scratch.txt
を編集Read(src/**)
-<current-directory>/src/
から読み取り
WebFetch
WebFetch(domain:example.com)
example.comへのフェッチリクエストにマッチ
MCP
mcp__puppeteer
puppeteer
サーバーが提供する任意のツールにマッチ(Claude Codeで設定された名前)mcp__puppeteer__puppeteer_navigate
puppeteer
サーバーが提供するpuppeteer_navigate
ツールにマッチ
他の権限タイプとは異なり、MCP権限はワイルドカード(*
)をサポートしていません。
MCPサーバーからすべてのツールを承認するには:
- ✅ 使用:
mcp__github
(すべてのGitHubツールを承認) - ❌ 使用しない:
mcp__github__*
(ワイルドカードはサポートされていません)
特定のツールのみを承認するには、それぞれを一覧表示してください:
- ✅ 使用:
mcp__github__get_issue
- ✅ 使用:
mcp__github__list_issues
フックによる追加の権限制御
Claude Codeフックは、実行時に権限評価を実行するカスタムシェルコマンドを登録する方法を提供します。Claude Codeがツール呼び出しを行うとき、PreToolUseフックは権限システムが実行される前に実行され、フック出力は権限システムの代わりにツール呼び出しを承認または拒否するかを決定できます。
エンタープライズ管理ポリシー設定
Claude Codeのエンタープライズ展開では、ユーザーとプロジェクト設定より優先されるエンタープライズ管理ポリシー設定をサポートしています。これにより、システム管理者はユーザーが上書きできないセキュリティポリシーを強制できます。
システム管理者は以下にポリシーを展開できます:
- macOS:
/Library/Application Support/ClaudeCode/managed-settings.json
- LinuxとWSL:
/etc/claude-code/managed-settings.json
- Windows:
C:\ProgramData\ClaudeCode\managed-settings.json
これらのポリシーファイルは通常の設定ファイルと同じ形式に従いますが、ユーザーまたはプロジェクト設定で上書きできません。これにより、組織全体で一貫したセキュリティポリシーが確保されます。
設定の優先順位
複数の設定ソースが存在する場合、以下の順序で適用されます(最高から最低の優先順位):
- エンタープライズポリシー
- コマンドライン引数
- ローカルプロジェクト設定(
.claude/settings.local.json
) - 共有プロジェクト設定(
.claude/settings.json
) - ユーザー設定(
~/.claude/settings.json
)
この階層により、組織のポリシーが常に強制される一方で、適切な場合にはプロジェクトとユーザーレベルでの柔軟性も可能になります。
認証情報管理
Claude Codeは認証認証情報を安全に管理します:
- 保存場所:macOSでは、APIキー、OAuthトークン、その他の認証情報は暗号化されたmacOS Keychainに保存されます。
- サポートされる認証タイプ:Claude.ai認証情報、Anthropic API認証情報、Bedrock Auth、Vertex Auth。
- カスタム認証情報スクリプト:
apiKeyHelper
設定は、APIキーを返すシェルスクリプトを実行するよう設定できます。 - 更新間隔:デフォルトでは、
apiKeyHelper
は5分後またはHTTP 401レスポンス時に呼び出されます。カスタム更新間隔にはCLAUDE_CODE_API_KEY_HELPER_TTL_MS
環境変数を設定してください。