codexのデフォルト権限を徹底解説!安全に使う設定

AIの技術がどんどん進化して、最近では自動でコードを書いて実行してくれるAIコードエージェントが注目されていますね。開発の効率が劇的に上がる一方で、実はセキュリティの面で気になっている方も多いのではないでしょうか。

特に、codexのデフォルト権限に関する設定や仕様を正しく理解していないと、意図しないファイルの書き換えやシステムへのアクセスが発生してしまうリスクがあります。また、ネットでcodexのデフォルト権限について調べていると、AIの話だけでなく、おなじみのブログツールであるWordPressの設定に関する情報も混ざって出てくるので、どっちの情報なのか迷ってしまうこともあるかなと思います。

この記事では、AIコードエージェントであるOpenAI Codexにおける安全な実行隔離環境とデフォルト権限の設定方法について分かりやすく解説します。さらに、検索の際によく混同されがちなWordPressのCodexに記載されているデフォルトユーザー権限との違いについてもすっきりと整理しました。この記事を読めば、安全で快適な開発環境をどうやって作ればいいのかがばっちり分かりますよ。

  • OpenAI Codexにおける実行隔離環境とデフォルト権限の仕組み
  • 設定ファイル(config.toml)を使った権限の具体的なカスタマイズ方法
  • GitHub Copilot CLIなど他の主要ツールとのセキュリティ設計の違い
  • WordPressのデフォルトユーザー権限と混同しないための基礎知識
目次

AI開発でのcodexデフォルト権限の基本

ここでは、AIコードエージェントとしてのOpenAI Codexが、どのような仕組みで安全性を保ちながらコードを実行しているのかを解説します。デフォルトで用意されている権限のプロファイルや、実行環境を隔離するサンドボックスの構造について、まずは基本的なところからおさえていきましょう。

AIエージェントとセキュリティ

最近のAIは、ただプログラムのコードを補完してくれるだけでなく、自分でコマンドを実行したり、ファイルを修正したりと、自律的に動く「AIコードエージェント」へと進化していますね。開発者が自然言語で「〇〇の機能を実装してテストを走らせておいて」と指示するだけで、裏側でスクリプトを生成し、ローカル環境やサーバー上で自動実行してくれる仕組みは本当に便利です。しかし、この便利さの裏には大きなセキュリティリスクが潜んでいることを忘れてはいけません。

とっても便利なのですが、AIが自由にパソコンの中を操作できるようになると、ちょっと怖い側面もあります。もしAIがバグのある無限ループコードをそのまま実行してしまったり、ハッキングの手口である「プロンプトインジェクション」によって悪意のある指示に引っかかってシステムを壊してしまったりすると、被害が大きくなってしまいます。具体的には、重要な環境変数が外部に漏洩したり、システム内のマスターデータベースが上書きされたりする危険性があるのです。そのため、AIに何をやらせるかという機能面だけでなく、「どこまでの操作を許すか」という、安全な実行環境の境界線をしっかり決めておくことがものすごく重要になってくるんですね。

これを怠ると、AIが開発者の意図しない挙動をしたときに、OS全体が乗っ取られるような事態にも繋がりかねません。自律型AIに与える権限の初期設定(デフォルト権限)を適切に制限することは、現代のAI駆動開発における最優先のセキュリティ対策と言っても過言ではないかなと思います。

サンドボックスが持つ役割

安全を確保するために、Codexなどの自律型AIエージェントでは「二層セキュリティモデル」という仕組みが使われています。これは、自動化による恩恵を最大限に受けつつ、万が一の暴走や悪意ある攻撃を防ぐために設計された強固な防壁です。大きく分けて次の2つのガードレールで成り立っています。

  • サンドボックスモード(技術的境界の強制):AIがアクセスできるファイルの範囲や、インターネットへの接続、新しくプロセスを立ち上げる権限をOSレベルで物理的に制限する壁です。Dockerコンテナや仮想ファイルシステム、cgroupsなどを活用して、AIの活動空間を狭い箱の中に閉じ込めます。
  • 承認ポリシー(インタラクション制御):AIがその壁を越えようとしたときや、機密性の高いコマンドを実行しようとしたときに、処理を一度ストップして「これを実行しても大丈夫ですか?」と人間のユーザーに確認(プロンプト表示)を求めるルールです。

この2つがあるおかげで、通常の安全なファイル編集やローカルでのテスト実行はスムーズに行いつつ、危険な操作になりそうなときは自動的にストップをかけて、人間のチェックを挟むことができるようになっています。すべての操作をガチガチに禁止してしまうと開発のテンポが落ちてしまいますし、逆にすべてを自由にさせるとリスクが跳ね上がります。サンドボックスと人間による承認を組み合わせることで、開発効率を落とさずに安全性を担保できるのが、この二層セキュリティモデルの素晴らしいところですね。

3つのビルトインプロファイル

Codexには、最初から使いやすいように3つの標準的な権限プロファイルが用意されています。用途や求めるセキュリティレベルに応じて、これらを切り替えて使用するのが一般的な運用方法になります。それぞれの特徴を整理してみました。

プロファイル名ファイルシステム制限ネットワークアクセス主な用途と安全評価
:read-only読み取り専用(変更は不可)原則として遮断コードの調査や設計の検討など、安全第一のタスク向け
:workspace作業フォルダと一時フォルダのみ読み書き可能デフォルトは遮断(手動で有効化可)通常の開発やローカルテスト。利便性と安全性のバランスが良い!
:danger-full-accessホストマシン全体に無制限でアクセス可能無制限に許可完全に信頼できるタスクのみ。リスクが非常に高いので注意

これらのプロファイルは、プロダクトやタスクのフェーズに合わせて慎重に選ぶ必要があります。例えば、オープンソースの外部リポジトリを読み込ませてコードの構造を解析させたいだけのときは、コードに悪意あるスクリプトが仕込まれている可能性を考慮して、迷わず「:read-only」を選ぶべきです。一方で、自社で1から開発しているプロジェクトのコードをガリガリ書き換えてほしいときは「:workspace」が最も適しています。このように、デフォルトの設定がどのような挙動をするのかをあらかじめ把握しておくことで、意図しないトラブルを未然に防ぐことができるかなと思います。

ワークスペースモードの仕組み

3つのプロファイルの中でも、普段の開発で一番よく使うのが「:workspace」です。このモードは、開発者が日常的に行うコーディング作業やデバッグ、小規模なリファクタリングを最も効率的に、かつ安全に行えるように調整されています。具体的な仕組みとしては、今開いているプロジェクトのフォルダ(カレントワークスペース)と、システムが一時的に使用するディレクトリ(Linuxであれば /tmp など)の中だけでファイルの読み書きが許されています。

もしAIがこの指定されたフォルダ以外の場所、例えばOSのルートディレクトリにある重要なシステム設定ファイル(/etc/hosts など)や、他のプロジェクトのソースコード、あるいはユーザーのホームディレクトリにある秘密鍵(.ssh/id_rsa)などを読み書きしようとすると、OSやコンテナの権限エラーが発生するか、または自動的に処理がストップしてユーザーに承認を求める画面に切り替わります。これによって、作業の邪魔をされることなく、安全にリファクタリングやテストを任せることができる仕組みになっています。このように、活動範囲を作業スペースだけに限定するというアプローチは、AIエージェントを実務に導入する上での世界的なスタンダードになっていると言えますね。

危険なフルアクセス機能のリスク

「:danger-full-access」という名前からも分かる通り、フルアクセス権限はあらゆる制限をなくしてしまうモードです。このモードを有効にすると、AIエージェントのサンドボックス制限が事実上解除され、ホストマシンの管理者と同等の権限で動くことになります。インターネットへの自由な接続はもちろん、パソコン内やサーバー内のすべてのファイルシステムに対するフルアクセス権が与えられます。

これを有効にすると、AIは外部のAPIから最新のデータを取ってきてローカルのデータベースに直接反映したり、システム全体のアップデートコマンドを実行したりできるようになって便利な反面、セキュリティリスクは最大化します。もしAIが外部から読み込んだサードパーティ製のライブラリの中に、悪意のあるプロンプト(プロンプトインジェクション攻撃)が仕込まれていた場合、パソコンの中の個人情報やAWSのアクセスキーなどを盗まれて外部のサーバーに送信されたり、最悪の場合はシステムを完全に破壊されてランサムウェアを仕込まれたりする危険性があります。そのため、CI/CDパイプラインの完全に隔離された使い捨てのコンテナ環境など、どうしても必要な自動化タスク以外では、ローカル環境において基本的には使わないのが賢明かも知れません。

設定ファイルの読み込み順位

Codexの動作やデフォルト権限を細かく変更したいときは、設定ファイルである「config.toml」を使います。この設定ファイルはパソコン内のいろんな場所に配置できますが、システム全体に適用したいルールと、特定のプロジェクトだけで適用したいルールが衝突しないよう、以下のような明確な優先順位(上にあるものが優先)で読み込まれます。

設定の優先順位

  1. コマンドラインでの一時的な指定(-c や –config フラグ)
  2. プロジェクトごとの個別設定(リポジトリ内の .codex/config.toml)※信頼されたフォルダのみ
  3. プロファイルごとの個別設定(~/.codex/profile-name.config.toml)
  4. ユーザー設定の基本デフォルト(~/.codex/config.toml)
  5. システム共通の設定(/etc/codex/config.toml)

ここで重要なセキュリティ上の対策として、プロジェクトごとの設定(2位)から、システム全体の重要なセキュリティ設定(例えば、認証情報のルーティング方法や、使用するモデルプロバイダの強制指定、重大な禁止コマンドのリストなど)を勝手に上書きすることはできないようになっています。もし悪意のあるリポジトリをクローンして開いてしまい、その中の .codex/config.toml に「すべての権限をフルアクセスにする」といった不正な設定が記述されていても、起動時にシステム側で無視されて警告が出るので安心です。このような優先順位の設計(シャドーイングの制限)が施されているからこそ、マルチプロジェクトの開発でも安全性が保たれているんですね。

高度なカスタムプロファイルの例

標準の「:workspace」だとちょっと物足りない、特定のドメインだけ通信を許可したいという場合は、config.tomlに以下のように独自のプロファイルを作ることができます。デフォルトの安全性をベースにしつつ、業務に必要な通信やファイルアクセスだけをピンポイントで許可するのが賢い設定方法です。

default_permissions = "secure-development"

[permissions.secure-development]

description = “特定の接続とパスを許可したカスタムプロファイル” extends = “:workspace”

[permissions.secure-development.filesystem]

“~/.ssh” = “deny” “~/projects/secure-project” = “write”

[permissions.secure-development.network.domains]

“*.github.com” = “allow” “api.openai.com” = “allow” “*” = “deny”

このように、拒否したいパス(.sshなど)を明示的に指定したり、特定の外部ドメインだけを許可リスト(ホワイトリスト)に入れたりすることで、開発のしやすさと安全性を高いレベルで両立させることができますね。設定をカスタマイズする際は、まずこのカスタムプロファイルを作成し、動作検証を行ってからデフォルトに指定するのがおすすめの手順です。

WordPressのcodexデフォルト権限の仕様

ここまではAIコードエージェントのお話をしてきましたが、実はネットで「codex デフォルト権限」と検索すると、全然違う仕組みの情報がヒットすることがあります。それが、ブログやウェブサイトを作る世界最大のCMS(コンテンツマネジメントシステム)である「WordPress」の公式開発マニュアル(旧称:WordPress Codex)に関する情報です。

キーワードが全く同じなので少しややこしいですが、ここからはWordPressにおけるデフォルトのユーザー権限グループ(ロール)や、セキュリティを担保するための権限設計の仕様について、初心者向けに分かりやすく整理していきます。

検索時に混同しやすい別システム

検索エンジンで調べているときに、「ユーザー権限」とか「管理者」「購読者」「権限グループ」といった言葉が出てきたら、それはAIの話ではなくWordPressの話です。歴史的に、WordPressの公式ドキュメントサイトが「WordPress Codex」と呼ばれていたため、古い技術ブログやカスタマイズ記事では、WordPressのユーザー権限に関する仕様の解説に「Codex」という言葉が頻繁に使われています。

AIの実行環境を隔離するサンドボックスの話とは全くの別物であり、対象としているレイヤー(OS・AI制御 vs Webアプリケーションのユーザー管理)も180度異なります。自分が今トラブルシューティングしている対象が、プログラムを自動実行するAIツールのことなのか、それともブログサイトの会員管理のことなのかをしっかり見極めて、検索結果のページを読み進めるように気をつけましょうね。ここを混同してしまうと、全く関係のない設定ファイルを書き換えようとして時間を無駄にしてしまうかもしれないので注意が必要です。

新規ユーザーの初期ロール変更

WordPressでは、会員制サイトや複数人のライターで運営するメディアを作る際、誰でも自由に新しくユーザー登録ができるように設定(「だれでもユーザー登録ができるようにする」にチェック)することができます。その際、新しく登録された人に自動で最初に割り当てられるのが「新規ユーザーのデフォルト権限グループ(初期ロール)」です。

初期状態(デフォルト)では、最も権限が狭くて安全な「購読者」に設定されています。これはWordPressの管理画面の「設定 > 一般」からいつでも変更できますが、ここを不用意に高い権限(管理者や編集者など)に変えてしまうと、悪意のある第三者がサイトに登録した瞬間に、サイトのすべての記事を書き換えられたり、サイト自体を乗っ取られたりする致命的なリスクが発生します。WordPressのCodexでも、この初期ロールの設定は原則として「購読者」のままにしておき、必要に応じて個別に管理者が権限を手動で引き上げる運用(最小権限の原則)が強く推奨されています。

5つの組み込み権限グループ

WordPressには、ユーザーの役割に合わせて最初から5種類のユーザー権限(マルチサイト運用の場合は「特権管理者」を含めて6種類)が用意されています。これらは「ロール(Role)」と呼ばれ、それぞれができること(権限/Capability)の範囲が厳密に決まっています。それぞれの特徴を表にまとめてみました。

権限グループ名記事の投稿・公開画像のアップロードプラグイン・サイト設定
管理者すべての記事を公開・編集・削除可能可能すべての変更・ユーザー管理が可能
編集者すべての記事を公開・編集・削除可能可能不可
投稿者自分の記事のみ公開・編集・削除可能可能不可
寄稿者下書き作成のみ(公開は上の人の承認が必要)不可不可
購読者不可(読むことしかできません)不可不可

WordPressを安全に運営するためには、この5つのロールのパワーバランスを完璧に把握しておく必要があります。特に、外部のスタッフや一時的な手伝いの人にアカウントを発行するとき、どのロールを渡すべきかを間違えると、重大なセキュリティインシデントに繋がりかねません。各ロールが持つ具体的な操作範囲について、さらに細かく見ていきましょう。

購読者と寄稿者ができること

一番権限が狭い「購読者(Subscriber)」は、基本的にサイトにログインして限定記事を読んだり、自分のプロフィールの名前やパスワードを直したりすることしかできません。ダッシュボード(管理画面)にログインしても、左側のメニューにはほとんど何も表示されず、サイトの見た目や記事に影響を与えることは一切ないので、会員制サイトの一般会員用や、コメント投稿用のユーザーとして安心して使われます。

その次にある「寄稿者(Contributor)」は、記事を書く(下書きを保存する)ことはできますが、自分でそれをサイト上に「公開」するボタンを押すことができません。また、記事内に挿入する画像をメディアライブラリに新しくアップロードする権限もデフォルトでは持っていません。書いた記事は一度「レビュー待ち」という状態になり、編集者や管理者といった上の権限を持つ人にチェックしてもらい、画像を代わりに配置してもらってから公開される形になります。外注の外部ライターさんなどに一時的にアカウントを渡すときに、勝手に変な記事を公開されないようにするためのぴったりの権限ですね。

投稿者や編集者の操作範囲

「投稿者(Author)」になると、寄稿者とは違って、自分が書いた記事をそのまま自分の判断で公開できるようになります。さらに、自分で撮影した写真や画像をメディアライブラリにアップロードして記事に貼り付けることも可能です。ただし、他の人が書いた記事を直したり消したりすることはできませんし、固定ページを作成する権限もありません。あくまで「自分の担当記事の公開・管理」に特化しているため、社内の信頼できるインハウスライターさんや、定期契約している専属のコラムニスト向けの権限と言えます。

さらに上の「編集者(Editor)」は、サイト内のコンテンツ(記事や固定ページ、カテゴリー、タグなど)に関するほぼすべての操作が可能になります。自分だけでなく、他の人が書いた記事も自由に直したり公開したり、削除したりできるようになりますし、コメントの承認や削除といったモデレーション作業も任せられます。サイトのコンテンツ全般を管理する編集長やディレクター、運用リーダー向けの設定です。ただし、これほど強力な編集者であっても、デザインを変えるテーマの変更や、新しいプラグインの追加・無効化、他のユーザーの追加・削除といったサイト全体のシステム設定(特権的な操作)は「管理者(Administrator)」にしかできないようになっています。この線引きがあるおかげで、CMSのセキュリティが根本から崩れるのを防いでいるんですね。

codexデフォルト権限のまとめ

ここまで、AIコードエージェントの安全な隔離環境(サンドボックス)の話と、WordPressのユーザー管理(ロール)の話という、2つの異なる視点から解説してきました。言葉は全く同じ「codex デフォルト権限」ですが、文脈によってその意味や設定するべき内容がガラリと変わることがお分かりいただけたかなと思います。最後に、今回のテーマである「codex デフォルト権限」についての要点をもう一度おさらいしておきましょう。

今回の重要ポイントの振り返り

  • AIのCodexでは、パソコンを保護するために「:workspace」などのデフォルト権限プロファイルで実行環境がしっかり隔離されている。
  • より安全に使うためには、設定ファイル(config.toml)を正しく配置して、AIに無駄なフルアクセス権(:danger-full-access)を与えないようにするのがコツ。
  • WordPressのCodex(マニュアル)に載っているデフォルト権限は、サイトのユーザー管理(ロール)の話であり、初期状態では最も安全な「購読者」になっている。

言葉が同じなので最初はびっくりしたり混同したりするかも知れませんが、それぞれの仕組みとデフォルトの仕様さえ分かってしまえば、どちらのケースでも安全でトラブルのない環境を作ることができます。セキュリティの基本は「必要最小限の権限だけを渡すこと」ですので、ぜひ今回の内容を参考に、ご自身の開発環境やWebサイトの設定を見直してみてくださいね。

この記事を書いた人

エンジニア歴 12 年・Web マーケター歴 4 年・ブログライター歴9年。エンジニア兼マーケターの視点から AI ツール活用に取り組んでいます。
AI-Rise では、NotebookLM・Claude Code・Google AI Studio・Gamma などの主要 AI ツールについて、機能・料金・使い方・エラー解決といった実用情報を整理して発信。新しいツールが登場するたびに調べ、初心者がつまずきやすいポイントを噛み砕いて記事にすることを意識しています。

目次