Skip to content

原文(日本語に翻訳)

WebFetch(domain:*.example.com) のようなワイルドカードドメインルールがallow・deny・ask位置でサブドメインにマッチしない問題と、Read(secrets-*/config.json) のようなパターン中間にワイルドカードがあるファイルパーミッションルールが起動時に拒否される問題を修正しました

原文(英語)

Fixed WebFetch(domain:*.example.com) wildcard domain rules never matching subdomains in allow, deny, and ask position, and file permission rules with mid-pattern wildcards (e.g. Read(secrets-*/config.json)) being rejected at startup

概要

パーミッション設定において2つのワイルドカード関連の不具合が修正されました。1つ目は WebFetch のドメインルールで *.example.com のようなワイルドカードが api.example.com などのサブドメインにマッチしなかった問題、2つ目はファイルパーミッションで secrets-*/config.json のようなパターン中間にワイルドカードを含むルールがClaudeの起動時に拒否される問題です。

基本的な使い方

json
// .claude/settings.json
{
  "permissions": {
    "allow": [
      "WebFetch(domain:*.example.com)",     // 修正後: api.example.comにマッチする
      "Read(secrets-*/config.json)"          // 修正後: 起動時に拒否されない
    ],
    "deny": [
      "WebFetch(domain:*.malicious-site.com)"  // 修正後: サブドメインを正しくブロック
    ]
  }
}

実践例

社内ドメインへのWebFetchを許可する

json
// .claude/settings.json
{
  "permissions": {
    "allow": [
      "WebFetch(domain:*.internal.company.com)"
      // api.internal.company.com
      // docs.internal.company.com
      // repo.internal.company.com
      // 上記すべてが修正後は正しくマッチ
    ]
  }
}

プロジェクト別設定ファイルへのアクセス制御

json
{
  "permissions": {
    "allow": [
      "Read(config-*/settings.json)",   // 修正後: config-dev/settings.json などにマッチ
      "Read(secrets-*/config.json)"     // 修正後: 起動時エラーなし
    ]
  }
}

特定ドメインをブロックするルール

json
{
  "permissions": {
    "deny": [
      "WebFetch(domain:*.untrusted-site.com)"
      // 修正後: untrusted-site.comのすべてのサブドメインへのアクセスをブロック
    ]
  }
}

注意点

  • この修正以前は、ワイルドカードルールを設定していてもサブドメインへのアクセスが正しく制御されていませんでした
  • allowdenyask のすべての位置でワイルドカードが正しく機能するようになりました
  • パターン中間のワイルドカード(例: secrets-*/config.json)も起動時チェックを正常に通過します

関連情報