Skip to content

原文(日本語に翻訳)

CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 を追加。Bash ツール・フック・MCP stdio サーバーのサブプロセス環境から Anthropic およびクラウドプロバイダーの認証情報を除去します。

原文(英語)

Added CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 to strip Anthropic and cloud provider credentials from subprocess environments (Bash tool, hooks, MCP stdio servers)

概要

CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 は、Claude Code が起動するサブプロセス(Bash ツール、フック、MCP stdio サーバー)に対して、Anthropic および AWS/GCP/Azure などのクラウドプロバイダーの認証情報が引き継がれないようにする環境変数です。信頼できないコードや外部ツールを実行する際の認証情報漏洩リスクを軽減します。

基本的な使い方

環境変数を設定して Claude Code を起動します:

bash
export CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1
claude

または、~/.claude/settings.json で永続的に設定します:

json
{
  "env": {
    "CLAUDE_CODE_SUBPROCESS_ENV_SCRUB": "1"
  }
}

実践例

CI/CD パイプラインでの安全な実行

GitHub Actions などの CI 環境では多数の認証情報が環境変数に設定されています。サードパーティのコードを Claude Code で実行する際に認証情報を保護:

yaml
# GitHub Actions での設定例
- name: Claude Code でコードレビュー
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
    CLAUDE_CODE_SUBPROCESS_ENV_SCRUB: "1"
  run: |
    claude --print "このコードをレビューしてください" < code.py

MCP サーバーへの認証情報漏洩防止

信頼度の低い MCP サーバーを使用する際のリスク軽減:

bash
# 外部 MCP サーバーを使用する場合
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 claude --mcp-config ./external-mcp.json

managed-settings での組織全体への適用

組織のセキュリティポリシーとして全ユーザーに適用:

json
// managed-settings.json
{
  "env": {
    "CLAUDE_CODE_SUBPROCESS_ENV_SCRUB": "1"
  }
}

スクラブされる認証情報の例

以下のような環境変数がサブプロセスから除去されます:

  • ANTHROPIC_API_KEY
  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
  • GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_CLOUD_PROJECT
  • AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID

注意点

  • このフラグを有効にすると、Bash ツールで実行するスクリプトがクラウド認証情報を使用できなくなります。意図的にサブプロセスで認証情報を使いたい場合は無効のままにしてください
  • スクラブ対象は主要なクラウドプロバイダーの認証情報ですが、すべての秘密情報が除去されるわけではありません
  • フックスクリプトで認証情報が必要な場合は、このフラグを使用せず、個別のフック設定で制御することを検討してください

関連情報