Yönetilen yapılandırma
Yönetilen yapılandırma
Desteklenen yerel istemcilere yapılandırma varsayılanlarını dağıtın ve gereksinimleri zorunlu kılın
Yönetilen yapılandırma; ChatGPT masaüstü uygulaması, Codex CLI ve IDE uzantısındaki kapsama alınmış yetenekler için desteklenen yerel çalışma zamanı davranışını denetler. Desteklenen gereksinimler istemciye ve sürüme göre farklılık gösterebilir. Yönetilen yapılandırma, ChatGPT çalışma alanına erişim sağlamaz, lisans atamaz veya çalışma alanının rol tabanlı erişim denetiminin (RBAC) yerini almaz. Çalışma alanı özelliklerine erişim için Roller ve çalışma alanı izinleri sayfasını, yerel çalışma zamanı politikası için bu sayfayı kullanın.
Kurumsal yöneticiler, desteklenen yerel istemci davranışlarını şu yollarla denetleyebilir:
- Gereksinimler: yöneticilerin zorunlu kıldığı ve kullanıcıların geçersiz kılamadığı kısıtlamalar.
- Yapılandırma varsayılanları: sistem veya bulut tarafından yönetilen, kullanıcıların geçersiz kılabildiği
config.tomlayarları. - Eski yönetilen varsayılanlar: desteklenen bir istemci başlatıldığında uygulanan
managed_config.tomlbaşlangıç değerleri. Kullanıcılar çalışma sırasında ayarları değiştirebilir; istemci bir sonraki başlatılışında bu varsayılanları yeniden uygular.
Eklenti pazar yerlerini ve varsayılanları yapılandırın
Yerel veya Git pazar yerlerini ve eklenti varsayılanlarını sistemdeki config.toml dosyasında
veya Yönetilen yapılandırma sayfasının config.toml bölümünde tanımlayın.
Bu ayarlar varsayılan değerlerdir, zorunlu kılınan politikalar değildir.
Yapılandırma anahtarları için Yapılandırma Referansı, Yapılandırma önceliği bölümüne geçersiz kılmalar için ve depo eklenti ayarları bölümüne proje düzeyindeki yapılandırma için bakın. Çalışma alanına GitHub'dan içe aktarma ve senkronizasyon ayrı bir konudur.
Yönetici tarafından zorunlu kılınan gereksinimler (requirements.toml)
Gereksinimler, güvenlik açısından hassas ayarları (onay politikası, onayları inceleyen taraf, otomatik inceleme politikası, korumalı alan modu, izin profilleri, web arama modu, yönetilen kancalar, kullanıcıların hangi MCP sunucularını etkinleştirebileceği ve hangi eklenti pazar yeri kaynaklarını kullanabileceği) kısıtlar. Yapılandırma çözümlenirken (örneğin config.toml, profil dosyaları veya CLI yapılandırma geçersiz kılmalarından), bir değer zorunlu kılınan bir kuralla çelişirse yerel istemci uyumlu bir değere döner ve kullanıcıyı bilgilendirir. Bir mcp_servers izin listesi yapılandırırsanız istemci, bir MCP sunucusunu yalnızca hem adı hem de kimliği onaylanmış bir kayıtla eşleştiğinde etkinleştirir; aksi takdirde devre dışı bırakır.
Gereksinimler, requirements.toml içindeki [features] tablosu aracılığıyla özellik bayraklarını da kısıtlayabilir. Özelliklerin her zaman güvenlik açısından hassas olmadığını, ancak kuruluşların isterse değerleri sabitleyebileceğini unutmayın. Atlanan anahtarlar kısıtlanmadan kalır.
Codex 0.138.0 veya sonraki sürümlerde allowed_permission_profiles ve yönetilen
default_permissions ile izin profillerini
tercih edin. allowed_sandbox_modes öğesini yalnızca hâlâ
sandbox_mode yapılandıran eski dağıtımlar için kullanın.
Tam anahtar listesi için Yapılandırma Referansı'ndaki requirements.toml bölümüne bakın.
Kullanımdan kaldırılan untrusted onay politikasından geçiş yapın
Codex ve ChatGPT Work artık approval_policy = "untrusted" ayarını desteklemiyor.
Bu ayarı yönetilen varsayılanlardan, eski managed_config.toml dosyasından ve ayarın tanımlandığı tüm kullanıcı,
proje, profil veya başlangıç yapılandırmalarından kaldırın.
Etkileşimli, salt okunur kullanım için approval_policy = "on-request" ayarını, yönetilen gereksinimlerinizin izin verdiği
salt okunur bir korumalı alan veya izin profiliyle birlikte seçin.
Bu korumalı alanın izin verdiği komutlar onay alınmadan çalıştırılabilir.
Daha katı komut onaylarını korumak için açık bir approval_policy ayarı belirtmeyin;
trust_level = "untrusted" ayarını, kullanıcı düzeyindeki proje kaydında,
~/.codex/config.toml içinde tanımlayın ve untrusted değerini allowed_approval_policies içinde tutun.
Bu, projeye yerel yapılandırmayı da devre dışı bırakır. on-request ayarını açıkça belirtmek
bu ilkeyi geçersiz kılar. Örnekler ve güvenlik açısından ödünleşimler için
Kullanımdan kaldırılan untrusted onay ilkesinden geçiş
bölümüne bakın.
Konumlar ve öncelik
Desteklenen her yerel istemci, gereksinimleri düşük öncelikten yüksek önceliğe doğru birleştirir:
- Sistem
requirements.toml(Linux ve macOS dâhil Unix sistemlerinde/etc/codex/requirements.tomlveya Windows'ta%ProgramData%\OpenAI\Codex\requirements.toml). - Bulut yapılandırma paketinde sunulan, kuruluş tarafından yönetilen gereksinimler.
- Yerel istemcinin gereksinimler olarak yeniden yorumladığı eski
managed_config.tomlalanları. com.openai.codex:requirements_toml_base64üzerinden sunulan macOS yönetilen tercihleri (MDM).
Daha yüksek öncelikli katmanlar, daha düşük öncelikli katmanlardaki sıradan
skaler ve liste değerlerini geçersiz kılar. Tablolar anahtara göre birleştirilirken
kurallar, kancalar ve dosya sistemi kısıtlamaları gibi gereksinimler alana özgü
birleştirme davranışına sahiptir. Her alanın aynı şekilde birleştirildiğini
varsaymak yerine güncel şema için
requirements.toml referansını
kullanın.
Geriye dönük uyumluluk için desteklenen yerel istemciler eski
approval_policy, approvals_reviewer ve sandbox_mode alanlarını
gereksinimler olarak yeniden yorumlar. Bu dönüştürme, gerektiğinde uyumluluk
seçenekleri ekler; açık izin listeleri için requirements.toml kullanın.
Bulut tarafından yönetilen gereksinimler
Bir kullanıcı desteklenen bir plan kapsamında ChatGPT ile oturum açtığında, desteklenen yerel istemciler
çalışma alanıyla ilişkili, yöneticinin zorunlu kıldığı gereksinimleri alabilir. Bu,
requirements.toml ile uyumlu ilkeler için bir dağıtım kanalıdır. Çalışma alanına erişim sağlamaz
veya çalışma alanının RBAC mekanizmasının yerini almaz. Kimlik doğrulama gereksinimleri
yerel olarak yönetilmelidir.
Bulut üzerinden yönetilen gereksinimler oluşturmak ve atamak için Yönetilen yapılandırma sayfasını açın. Örneğin bu politika, onay ve korumalı alan seçeneklerini sınırlar ve desteklenen bir kabuk giriş noktası çalışmadan önce kullanıcıdan onay ister:
allowed_approval_policies = ["on-request"]
allowed_sandbox_modes = ["read-only", "workspace-write"]
[rules]
prefix_rules = [
{ pattern = [{ any_of = ["bash", "sh", "zsh"] }], decision = "prompt", justification = "Require explicit approval for shell entry points" },
]Yönetilen her istemci sürümünün seçtiğiniz anahtarları desteklediğini doğrulayın ve kuruluş genelinde atama yapmadan önce politikayı küçük bir grupla test edin. Güncel şema için yapılandırma referansını, güncel atama davranışı için yönetim arayüzünü kullanın.
Hizmet, oturum açmış kimliğe uygulanan ve kuruluş tarafından yönetilen gereksinim katmanlarını seçer. Yerel istemci bu katmanları, Konumlar ve öncelik bölümünde açıklanan diğer gereksinim kaynaklarıyla birlikte değerlendirir. Çalışma alanı tarafındaki oluşturma ve atama işlemleri için güncel yönetim arayüzünü kullanın. Kopyalanmış bir grup eşleştirme algoritmasına güvenmeyin; bu davranış yönetim hizmetine aittir ve yerel gereksinim biçiminden bağımsız olarak değişebilir.
Desteklenen anahtarlar ve örnekler için
Örnek requirements.toml ve
requirements.toml referansına bakın.
Yerel istemciler bulut tarafından yönetilen gereksinimleri nasıl uygular?
Bir kullanıcı desteklenen bir yerel istemciyi başlatıp desteklenen bir planda ChatGPT ile oturum açtığında istemci önce kimlikle eşleşen geçerli bir önbellek kaydını denetler. Geçerli bir kayıt yoksa istemci yeniden denemelerle uygulanabilir paketi getirir ve başarılı olduğunda imzalı bir önbellek kaydı yazar. İstek başarısız olur veya zaman aşımına uğrarsa ve geçerli bir önbellek yoksa bulut yapılandırma paketi yüklemesi, bulut tarafından yönetilen gereksinimler katmanı olmadan sessizce başlamak yerine hata döndürür.
Önbellek çözümlemesinden sonra istemci, bulut gereksinimlerini yukarıda açıklanan diğer gereksinim katmanlarıyla birleştirir. Arka planda yenileme, önbelleği sonraki bir başlangıç için güncelleyebilir; geçerli süreçte zaten yüklenmiş gereksinimlerin yerini almaz.
Yönetici ve çalışan deneyimini doğrulayın
Yönetilen her politikanın sorumluluğunu üstlenecek bir kişi atayın, hangi kullanıcıların veya grupların bu politikayı alması gerektiğini kaydedin ve dosya sistemi, ağ, onay ya da izin profili kısıtlamalarının iş gerekçesini belgelendirin.
Kullanıma sunma kapsamını genişletmeden önce onaylı bir iş akışını ve kasıtlı olarak izin verilmeyen bir iş akışını temsili bir kullanıcıyla test edin. Yerel kısıtlamanın yalnızca bir çalışma alanı rolü veya grup tarafından uygulandığını varsaymak yerine, desteklenen istemcideki etkin ayarları doğrulayın.
Kimlik doğrulamayı yerel olarak yönetin
allowed_login_methods, allowed_chatgpt_workspaces,
cli_auth_credentials_store ve chatgpt_base_url ayarlarını yerel sistemdeki
requirements.toml dosyasında veya macOS MDM gereksinimlerinde tanımlayın. Codex bu dört alanı
buluttan yönetilen gereksinimlerde yok sayar. Yerel kimlik doğrulama gereksinimleri,
kimlik bilgileri yüklenmeden ve Codex bulut ilkesini almadan önce uygulanır.
Onaylı bir çalışma alanında ChatGPT ile oturum açmayı zorunlu kılmak ve kimlik bilgilerini işletim sisteminin kimlik bilgisi deposunda saklamak için şunu kullanın:
allowed_login_methods = ["chatgpt"]
allowed_chatgpt_workspaces = ["00000000-0000-0000-0000-000000000000"]
cli_auth_credentials_store = "keyring"allowed_login_methods, chatgpt, api veya her ikisini kabul eder. Belirtilmezse bu ayar
oturum açma yöntemlerini kısıtlamaz. Ayarlanırsa liste en az bir yöntem içermelidir.
api, Amazon Bedrock dahil API kimlik doğrulamasına izin verir.
Çalışma alanı kısıtlaması
Codex erişim belirteçleri için de geçerlidir.
Kullanıcının yapılandırdığı forced_login_method ve forced_chatgpt_workspace_id ayarları
gereksinimlere uymalıdır. Kullanıcı bir çalışma alanı seçtiğinde bu alanın da
yönetilen çalışma alanı izin listesinde bulunması gerekir. Eşleşen çalışma alanı yoksa ChatGPT ile oturum açma
kullanılamaz. İzin verildiğinde API kimlik doğrulaması kullanılabilir olmaya devam eder. Kullanılabilir bir oturum açma yöntemi
yoksa Codex başlatılmayı reddeder.
Kimlik bilgisi saklama modları ve hizmet URL yapılandırması için gereksinimler referansına bakın.
Örnek requirements.toml
Bu örnek, --ask-for-approval never ve --sandbox danger-full-access öğelerini (--yolo dâhil) engeller:
allowed_approval_policies = ["untrusted", "on-request"]
allowed_sandbox_modes = ["read-only", "workspace-write"]Burada untrusted, daha katı onay davranışını korur; bu davranışın kaynağı
trust_level = "untrusted" ayarıdır. Bu, approval_policy = "untrusted" ayarının açıkça belirtilmesini
desteklenen bir seçenek hâline getirmez.
Appshots'u devre dışı bırakma
Yönetilen kullanıcılar için Appshots'u devre dışı bırakmak üzere üst düzey allow_appshots gereksinimini ayarlayın:
allow_appshots = falseAppshots'un kullanılabildiği yerlerde allow_appshots = false bunları devre dışı bırakır. Anahtarı
atlarsanız gereksinimler Appshots'u kısıtlamaz ve normal ürün kullanılabilirliği
denetimleri uygulanır. Etkin gereksinimleri configRequirements/read üzerinden okuyan
uygulama sunucusu istemcileri, allowAppshots ile aynı kısıtlamayı alır;
atlanmış veya null olan bir allowAppshots değeri Appshots'u devre dışı bırakmaz.
Cihaz uzaktan denetimini devre dışı bırakma
Yönetilen kullanıcılar için cihaz uzaktan denetimini
devre dışı bırakmak üzere üst düzey allow_remote_control gereksinimini ayarlayın:
allow_remote_control = falseCihaz uzaktan denetiminin desteklendiği yerlerde allow_remote_control = false
bunu devre dışı bırakır. Anahtarı atlarsanız gereksinimler cihaz uzaktan
denetimini kısıtlamaz ve normal ürün kullanılabilirliği denetimleri uygulanır.
Bu gereksinim SSH uzak bağlantılarını devre dışı bırakmaz.
Kullanılabilir izin profillerini denetleme
Kullanıcıların hangi yerleşik ve özel izin profillerini
seçebileceğini denetlemek için allowed_permission_profiles kullanın. Bu, allowed_sandbox_modes öğesinin
izin profili karşılığıdır; kullanıcılarınızın izin seçme biçimiyle eşleşen izin
listesini kullanın.
İzin profili izin listeleri Codex 0.138.0 veya sonraki bir sürümü gerektirir. Codex 0.137.0 ve
önceki sürümler allowed_permission_profiles ile yönetilen
default_permissions öğesini yok sayar.
Aşağıdaki izin profili örneklerini yalnızca yönetilen her istemci desteklenen bir sürümü çalıştırdıktan sonra kullanın. Filo yükseltmesi tamamlanmadan yönetilen özel profilleri dağıtmayın.
Tablo mevcut olduğunda izin verilen profillerin eksiksiz listesidir. true olarak
ayarlanan profillere izin verir; gelecekteki Codex sürümlerinde eklenecek yerleşik
profiller dâhil olmak üzere atlanan veya false olarak ayarlanan profilleri reddeder.
Standart profillere izin verme
Bu politika salt okunur erişime ve çalışma alanı erişimine izin verir, ancak tam erişime izin vermez:
default_permissions = ":workspace"
[allowed_permission_profiles]
":read-only" = true
":workspace" = true
# ":danger-full-access" is omitted, so it is denied.Yönetilen, en düşük ayrıcalıklı bir varsayılan ekleme
Yöneticiler aynı gereksinim kaynağında özel bir profil tanımlayabilir. Kullanıcıların
yüklenen yapılandırmalarındaki adlarla çakışmayacak, kuruluşa özgü profil adları
kullanın. Özel adlar : ile başlayamaz veya ayrılmış filesystem
adını kullanamaz.
Yönetilen özel profilleri Codex 0.137.0 veya önceki sürümleri çalıştıran istemcilere dağıtmayın. Bu istemciler profil tablosunu tanır, ancak onu seçen yönetilen varsayılanı tanımaz.
Örneğin:
default_permissions = "acme_review_only"
[allowed_permission_profiles]
":read-only" = true
":workspace" = true
acme_review_only = true
# ":danger-full-access" is intentionally omitted, so it is denied.
[permissions.acme_review_only]
description = "Review code without modifying the workspace."
extends = ":read-only"Yalnızca kuruluş tarafından tanımlanan profillere izin verme
Kullanıcıların yalnızca yönetici tarafından tanımlanan profilleri seçmesi gerekiyorsa tüm yerleşik profilleri atlayın:
default_permissions = "acme_workspace"
[allowed_permission_profiles]
acme_workspace = true
[permissions.acme_workspace]
description = "Workspace access with sensitive files denied."
extends = ":workspace"
[permissions.acme_workspace.filesystem]
glob_scan_max_depth = 3
[permissions.acme_workspace.filesystem.":workspace_roots"]
"**/*.env" = "deny"Kullanıcılar yerleşik :workspace profilini doğrudan seçemese bile özel profil
:workspace öğesini genişletebilir.
Başka bir kaynağın izin verdiği profili kapatma
İzin listeleri profil adına göre birleştirilir. Bulut gereksinimleri sistem
gereksinimlerinden daha yüksek önceliğe sahip olduğundan, sistem dosyasının izin
verdiği bir profili kapatmak için bulut gereksinimleri false kullanabilir.
Bulut gereksinimleri:
default_permissions = ":read-only"
[allowed_permission_profiles]
":read-only" = true
":workspace" = falseSistem gereksinimleri:
[allowed_permission_profiles]
":read-only" = true
":workspace" = true # Not honored because cloud requirements set this to false.default_permissions değerini açıkça izin verilen bir profile ayarlayın. Atlanırsa
yerel çalışma zamanı yalnızca hem :workspace hem de :read-only açıkça
izinli olduğunda varsayılan olarak :workspace kullanır. allowed_permission_profiles
yoksa yönetilen gereksinimler kullanıcıların seçebileceği profil adlarını
kısıtlamaz. Her kayıt, yerleşik bir profili veya yüklenen bir yapılandırma ya da
gereksinim kaynağında tanımlanmış özel bir profili adlandırmalıdır. Davranışlarını
merkezi olarak denetlemek için özel profilleri yönetilen gereksinimlerde tanımlayın.
Korumalı alan gereksinimlerini ana makineye göre geçersiz kılma
Tek bir yönetilen politikanın farklı ana makinelerde farklı korumalı alan
gereksinimleri uygulaması gerektiğinde [[remote_sandbox_config]] kullanın. Örneğin,
eşleşen geliştirme makinelerinde veya CI çalıştırıcılarında çalışma alanına yazmaya
izin verirken dizüstü bilgisayarlar için daha katı bir varsayılanı koruyabilirsiniz.
Ana makineye özgü kayıtlar şu anda yalnızca allowed_sandbox_modes öğesini geçersiz kılar:
allowed_sandbox_modes = ["read-only"]
[[remote_sandbox_config]]
hostname_patterns = ["*.devbox.example.com", "runner-??.ci.example.com"]
allowed_sandbox_modes = ["read-only", "workspace-write"]Yerel çalışma zamanı, her hostname_patterns kaydını mümkün olan en iyi şekilde
çözümlenmiş ana makine adıyla karşılaştırır. Kullanılabildiğinde tam nitelikli alan
adını tercih eder, aksi takdirde yerel ana makine adını kullanır. Eşleştirme büyük/küçük
harfe duyarsızdır; * herhangi bir karakter dizisiyle, ? ise tek bir karakterle eşleşir.
Aynı gereksinim kaynağında eşleşen ilk [[remote_sandbox_config]] kaydı geçerli olur.
Hiçbir kayıt eşleşmezse yerel çalışma zamanı üst düzey allowed_sandbox_modes değerini
korur. Ana makine adı eşleştirmesi yalnızca politika seçimi içindir; bunu kimliği
doğrulanmış cihaz kanıtı olarak değerlendirmeyin.
Web araması modunu da kısıtlayabilirsiniz:
allowed_web_search_modes = ["cached"] # "disabled" remains implicitly allowedallowed_web_search_modes = [] yalnızca "disabled" öğesine izin verir.
Örneğin allowed_web_search_modes = ["cached"], danger-full-access oturumlarında bile canlı web aramasını engeller.
Ağ erişimi gereksinimlerini yapılandırma
Yöneticilerin ağ erişimi gereksinimlerini merkezi olarak tanımlaması gerektiğinde
requirements.toml içinde [experimental_network] kullanın. Bu gereksinimler, kullanıcıya ait
features.network_proxy geçiş düğmesinden ayrıdır: bu özellik bayrağı olmadan korumalı alan
ağını yapılandırabilirler ancak etkin korumalı alan ağı kapalı tuttuğunda komutlara ağ
erişimi vermezler. Yönetilen proxy'yi etkinleştirmek için
experimental_network.enabled = true değerini ayarlayın; yalnızca alan adı
kuralları proxy'yi etkinleştirmez.
[experimental_network]
enabled = true
managed_allowed_domains_only = true
[experimental_network.domains]
"api.openai.com" = "allow"
"**.example.com" = "allow"
"blocked.example.com" = "deny"
"**.exfil.example.com" = "deny"experimental_network.managed_allowed_domains_only = true seçeneğini yalnızca
[experimental_network.domains] içinde yöneticiye ait "allow" girdileri de
tanımladığınızda ve bu kuralların özel olmasını istediğinizde kullanın. Yönetilen izin kuralları yokken bu değer
true ise kullanıcıların eklediği alan adı izin kuralları geçerliliğini
korumaz. Standart domains eşlemesini eski
allowed_domains veya denied_domains listeleriyle birlikte kullanmayın.
*.example.com yalnızca alt alan adlarıyla eşleşir. **.example.com kök
alan adıyla ve onun alt alan adlarıyla eşleşir. Eşleşen bir engelleme kuralı, izin kuralına üstün gelir.
Alan adı söz dizimi, yerel/özel hedef kuralları, reddetmenin izin vermeye üstün gelmesi davranışı ve DNS yeniden bağlama sınırlamaları, Ajan onayları ve güvenlik bölümünde açıklanan korumalı alan ağı davranışıyla aynıdır.
Proxy, korumalı alan içinde çalışan yerel komutların trafiğini yönlendirir. Tarayıcı araçları da bir kaynağa erişmeden önce yönetilen ağ engelleme kurallarını ve özel izin listelerini denetler; bu ayrı bir politika denetimidir, tarayıcı trafiğinin komut proxy'si üzerinden yönlendirilmesi değildir. Web aramasını, uygulamaları ve bağlayıcıları, MCP sunucularını, yerel uygulama trafiğini, Codex hizmet isteklerini veya Codex bulut trafiğini filtrelemez. Her arayüze özgü denetimleri kullanın:
- Web aramasını kısıtlamak için
allowed_web_search_modeskullanın. - Uygulama ve bağlayıcı entegrasyonlarını devre dışı bırakmak için
features.apps = false, desteklendiği yerlerde eklentileri devre dışı bırakmak içinfeatures.plugins = falsekullanın. - MCP sunucularını kısıtlamak için yönetilen
mcp_serversonaylı listesini kullanın. - Tarayıcı ve computer-use yeteneklerini kısıtlamak için
browser_use,in_app_browservecomputer_usegibi özellik gereksinimlerini kullanın. - Codex bulut ağ erişimini bulut ortamı ayarlarından yapılandırın.
Komut alan adları için izin verilenler listesi, bu yeteneğe özgü denetimlerin yerini almaz.
Tarayıcıyı ve Computer Use'ı denetleme
Desteklenen masaüstü istemcilerini kısıtlamak için requirements.toml içindeki
[browser_use] ve [computer_use] tablolarını kullanın. Politikayı dağıtımınızdaki istemci sürümleri
ve işletim sistemlerinde doğrulayın. Yapılandırılmış bir izin kuralı eklenti
yüklemez, işletim sistemi izni vermez veya hâlâ inceleme gerektiren bir eylemi
onaylamaz.
Tarayıcı erişimi için bir kaynak politikası yapılandırın. Kaynak; şemayı,
ana bilgisayarı ve isteğe bağlı bağlantı noktasını içerir; örneğin https://example.com veya
https://*.example.com:8443. Yol, sorgu veya parça eklemeyin. Komut ağı
alan adı kurallarından farklı olarak tarayıcı kaynak kuralları HTTP ile HTTPS arasında ayrım yapar
ve bağlantı noktasıyla eşleşir.
Bu örnek, tarayıcı erişimini onaylı bir siteyle sınırlar ve o sitede yüklemeleri ve tam Chrome DevTools Protocol (CDP) erişimini engeller:
[browser_use]
allow_history_access = false
allow_global_persistent_approval = false
[browser_use.default_origin_policy]
access = "deny"
[browser_use.origins."https://example.com"]
access = "allow"
uploads = "deny"
downloads = "allow"
full_cdp_access = "deny"
persistent_approval = false
access_approval_lifetime = "turn"Eşleşen kaynak kuralları alan bazında çözümlenir. Eşleşen bir engelleme kuralı üstün gelir; aksi hâlde varsayılan kaynak politikası, eşleşen kuralların belirtmediği alanları sağlar. Yerel yapılandırma kısıtlamalar ekleyebilir ancak yönetilen bir engelleme kuralını gevşetemez. Ağ engelleme kuralları ve özel yönetilen ağ izin listeleri uygulanmaya devam eder.
Tarayıcı eylemlerine yönelik otomatik onay incelemesini devre dışı bırakmak için
browser_use.disable_auto_review = true değerini ayarlayın veya belirli bir kaynakta bunu kısıtlamak için kaynak politikasında
auto_review = "deny" değerini ayarlayın. Bu, onay işlemlerini denetler; model
güvenlik izlemesini devre dışı bırakmaz.
Yerel uygulamalar için varsayılan bir erişim politikası belirleyin ve izin verilen uygulamaları tanımlayın. Örneğin bu macOS politikası Calculator'a izin verir ve kaydedilmiş onayları engeller:
[computer_use]
default_app_access = "deny"
allow_persistent_approval = false
[computer_use.macos.bundle_ids]
"com.apple.calculator" = "allow"Windows politikaları, paketlenmiş uygulamaları
computer_use.windows.aumids ile veya yürütülebilir dosyaları
computer_use.windows.exes ile tanımlayabilir. Yürütülebilir dosya kuralları publisher_name,
product_name ve access gerektirir; binary_name isteğe bağlıdır. Yalnızca görünen adı yerine uygulamanın doğrulanmış
kimliğini kullanın.
Tüm alanlar için yapılandırma referansına, yönetilen macOS cihazları içinse kilitli kullanım kısıtlamalarına bakın.
Özellik bayraklarını sabitleme
Yönetilen bir requirements.toml alan kullanıcılar için özellik bayraklarını
da sabitleyebilirsiniz:
[features]
personality = true
unified_exec = false
# Disable surface-specific features when needed.
browser_use = false
browser_use_full_cdp_access = false
browser_use_external = false
in_app_browser = false
in_app_updates = false
computer_use = falseÇalışma zamanı özellikleri için config.toml öğesinin [features] tablosundaki
standart özellik anahtarlarını kullanın. Yerel çalışma zamanı tanınan özellikleri
bu sabitlere uyacak şekilde normalleştirir ve config.toml ya da profil dosyası
özellik ayarlarına yapılan çelişkili yazma işlemlerini reddeder.
in_app_browser = false, yerleşik tarayıcı bölmesini devre dışı bırakır.in_app_updates = false, desteklendiği yerlerde ChatGPT masaüstü uygulamasının kendi güncelleyicisini yeniden başlatmada devre dışı bırakır. Harici paket dağıtımını etkilemez veya eski uygulama sürümlerine verilen desteği uzatmaz. Kurulum ve kullanıma sunma rehberi için Uygulama güncellemelerini yönetme sayfasına bakın.browser_use = false, tarayıcılarda Computer Use'ı ve Browser Agent kullanılabilirliğini devre dışı bırakır.browser_use_full_cdp_access = false, Browser Developer modu dâhil yerel çalışma zamanındaki tam CDP erişimini devre dışı bırakır ve ChatGPT masaüstü uygulamasının ilgili ayarı etkinleştirmesini önler.browser_use_external = false, harici Browser Use'ı devre dışı bırakır.computer_use = false; Computer Use, Record & Replay ve ilgili kurulum ya da ayarlama akışlarını devre dışı bırakır.
Bu anahtarları atlarsanız politika; normal istemci, platform ve kullanıma sunma uygunluğuna tabi olarak özelliklere izin verir.
Kilitli bilgisayar kullanımını kısıtlama
Yönetilen bir Mac'te kullanıcıların Locked Use özelliğini etkinleştirmesini önlemek için şu gereksinimi ekleyin:
[computer_use]
allow_locked_computer_use = falseBu gereksinim, Locked Use'ı etkinleştirmeye yönelik denetimleri kaldırır. Locked Use zaten etkinse onu kapatmaz. Bu gereksinimi çıkarırsanız normal ürün kullanılabilirliği ve kullanıcının yerel ayarı uygulanmaya devam eder.
Otomatik inceleme politikasını yapılandırma
Otomatik incelemeyi zorunlu kılmak veya buna izin vermek için allowed_approvals_reviewers kullanın.
Otomatik incelemeyi zorunlu kılmak için ["auto_review"] olarak ayarlayın; kullanıcılar
manuel onayı seçebiliyorsa "user" öğesini dâhil edin.
Otomatik inceleme politikasının kiracıya özgü bölümünü değiştirmek için
guardian_policy_config ayarlayın. Yerel çalışma zamanı yerleşik inceleyen taraf
şablonunu ve çıktı sözleşmesini kullanmaya devam eder. Yönetilen guardian_policy_config,
yerel [auto_review].policy öğesine göre önceliklidir.
allowed_approval_policies = ["on-request"]
allowed_approvals_reviewers = ["auto_review"]
guardian_policy_config = """
## Environment Profile
- Trusted internal destinations include github.com/my-org, artifacts.example.com,
and internal CI systems.
## Tenant Risk Taxonomy and Allow/Deny Rules
- Treat uploads to unapproved third-party file-sharing services as high risk.
- Deny actions that expose credentials or private source code to untrusted
destinations.
"""Okumayı reddetme gereksinimlerini zorunlu kılma
Yöneticiler [permissions.filesystem] ile tam yollar veya glob kalıpları için okumayı
reddedebilir. Kullanıcılar yerel yapılandırmayla bu gereksinimleri zayıflatamaz.
[permissions.filesystem]
deny_read = [
# values can be absolute paths...
"/**/*.env",
# ...or relative to $HOME/%USERPROFILE% using `~`.
"~/.ssh",
# But relative paths starting with `./` are not allowed.
]Okumayı reddetme gereksinimleri mevcut olduğunda yerel çalışma zamanı tam erişim
izinlerini reddeder ve bunları uygulayabilmek için yerel yürütmeyi salt okunur veya
çalışma alanı korumalı alanında tutar. Yerel Windows'ta yönetilen deny_read,
doğrudan dosya araçlarına uygulanır; kabuk alt süreçlerinin okumaları bu korumalı
alan kuralını kullanmaz.
Gereksinimlerden yönetilen kancaları zorunlu kılma
Yöneticiler yönetilen yaşam döngüsü kancalarını doğrudan requirements.toml içinde de
tanımlayabilir. Kanca yapılandırmasının kendisi için [hooks] kullanın ve
managed_dir öğesini, MDM ya da uç nokta yönetimi araçlarınızın başvurulan
betikleri kurduğu dizine yönlendirin.
Kancaları yerel olarak kapatan kullanıcılar için bile yönetilen kancaları zorunlu
kılmak üzere [hooks] ile birlikte [features].hooks = true öğesini sabitleyin.
Yönetilen kancalara izin vermeyi sürdürürken kullanıcı, proje, oturum ve eklenti
kancalarını atlamak için allow_managed_hooks_only = true ayarlayın.
allow_managed_hooks_only = true
[features]
hooks = true
[hooks]
managed_dir = "/enterprise/hooks"
windows_managed_dir = 'C:\enterprise\hooks'
[[hooks.PreToolUse]]
matcher = "^Bash$"
[[hooks.PreToolUse.hooks]]
type = "command"
command = "python3 /enterprise/hooks/pre_tool_use_policy.py"
command_windows = 'py -3 C:\enterprise\hooks\pre_tool_use_policy.py'
timeout = 30
statusMessage = "Checking managed Bash command"Notlar:
- Yerel çalışma zamanı,
requirements.tomliçindeki kanca yapılandırmasını zorunlu kılar ancakmanaged_diriçindeki betikleri dağıtmaz. - Bu betikleri MDM veya cihaz yönetimi çözümünüzle sunun.
- Yönetilen kanca komutları, yapılandırılmış yönetilen dizinin altındaki mutlak betik yollarına başvurmalıdır.
allow_managed_hooks_only = true; kullanıcı, proje, oturum ve eklenti kaynaklarındaki kancaları atlar ancakrequirements.tomlile diğer yönetilen yapılandırma katmanlarındaki kancaları yüklemeye devam eder.
Gereksinimlerden komut kurallarını zorunlu kılma
Yöneticiler, bir [rules] tablosu kullanarak requirements.toml içinden
kısıtlayıcı komut kurallarını da zorunlu kılabilir. Bu kurallar normal .rules
dosyalarıyla birleştirilir ve en kısıtlayıcı karar yine geçerli olur.
.rules öğesinden farklı olarak gereksinim kuralları decision belirtmelidir
ve bu karar "prompt" veya "forbidden" olmalıdır ("allow" değil).
[rules]
prefix_rules = [
{ pattern = [{ token = "rm" }], decision = "forbidden", justification = "Use git clean -fd instead." },
{ pattern = [{ token = "git" }, { any_of = ["push", "commit"] }], decision = "prompt", justification = "Require review before mutating history." },
]Yerel istemcinin hangi MCP sunucularını etkinleştirebileceğini kısıtlamak için bir
mcp_servers onaylı listesi ekleyin. stdio sunucularında command,
akış yapılabilir HTTP sunucularında url ile eşleştirin:
[mcp_servers.docs]
identity = { command = "codex-mcp" }
[mcp_servers.remote]
identity = { url = "https://example.com/mcp" }identity.command öğesinin dize biçimi yalnızca yapılandırılmış command ile eşleşir.
args, cwd, env veya env_vars öğelerini incelemez.
Eksiksiz bir stdio çağrısını kısıtlamak için yürütülebilir dosyayı ve her konumsal bağımsız değişkeni eşleştirin:
[mcp_servers.internal.identity]
command = { executable = "/usr/local/bin/codex-mcp", args = [
{ match = "exact", value = "serve" },
{ match = "prefix", value = "--workspace=" },
] }Yürütülebilir dosya, bağımsız değişken sayısı ve bağımsız değişken sırası eşleşmelidir.
Bağımsız değişken ve URL kuralları exact, prefix ve tam değer
regex eşleştirmesini destekler. Yapılandırılmış komut kuralları yine de
cwd, env veya env_vars öğelerini incelemez. Eklenti paketindeki
MCP sunucuları plugins.<plugin>.mcp_servers.<server> altında aynı kimlik biçimlerini kullanır.
mcp_servers mevcut ancak boşsa yerel istemci tüm MCP sunucularını devre dışı bırakır.
Eklenti kullanılabilirliğini denetleme
Desteklenen yerel istemcilerde eklentileri kapatmak için requirements.toml içinde
features.plugins değerini false olarak ayarlayın:
features.plugins = falseBu ayar, kullanıcılar Codex'te bir API key ile oturum açtığında da uygulanır.
Desteklenen yapılandırma için features.plugins
referansına bakın.
Eklenti pazar yeri kaynaklarını kısıtlama
Eklenti pazaryeri kaynaklarını kısıtlamak için
restrict_to_allowed_sources = true ayarını yapın ve bir veya daha fazla kaynak kuralı tanımlayın:
[marketplaces]
restrict_to_allowed_sources = true
[marketplaces.allowed_sources.company_plugins]
source = "git"
url = "https://github.com/example/company-plugins.git"
ref = "main"
[marketplaces.allowed_sources.internal_git]
source = "host_pattern"
host_pattern = '^git\.example\.com$'
[marketplaces.allowed_sources.local_plugins]
source = "local"
path = "/opt/company/codex-plugins"Git kuralları normalleştirilmiş depo URL'siyle ve mevcut olduğunda tam bir
ref ile eşleşir. Ana makine kalıpları, küçük harfe dönüştürülmüş Git
ana makinesiyle eşleştirilen düzenli ifadelerdir; tüm ana makineyi eşleştirmek için
^ ve $ kullanın. Yerel kurallar mutlak, normalleştirilmiş bir yol
gerektirir. Tam şema ve birleştirme davranışı için requirements.toml referansına
bakın.
Bu gereksinimler, kurallarla eşleşmeyen pazaryeri ekleme, eklenti yükleme ve yapılandırılmış Git pazaryerlerini yenileme işlemlerini reddeder. Ayrıca yapılandırılmış pazaryerlerini ve bunların eklentilerini çalışma zamanında filtreler.
API key kataloğu dahil, OpenAI tarafından seçilip düzenlenen Git pazaryerleri de
kaynak izin listesiyle eşleşmelidir. Bunlara izin vermek için aşağıdaki Git kaynağını
ref kısıtlaması olmadan ekleyin:
[marketplaces.allowed_sources.openai_curated]
source = "git"
url = "https://github.com/openai/plugins.git"Seçilip düzenlenen katalogları hariç tutmak için bu kaynağı eklemeyin ve daha geniş kapsamlı hiçbir ana makine kuralının buna izin vermediğinden emin olun. Birlikte sunulan eklentiler ve uzaktan yüklenen çalışma alanı eklentileri, seçilip düzenlenen Git kaynaklarına ilişkin bu ilkeden ayrıdır.
Bu kaynak kısıtlamaları yalnızca yerel bir istemcinin eklenti pazar yeri işlemlerini desteklediği yerlerde geçerlidir: masaüstü uygulamasındaki ChatGPT ve Codex ile Codex CLI. ChatGPT'nin web veya mobil sürümünde eklenti kullanımını denetlemez ve IDE uzantısına eklenti eklemez.
Yönetilen varsayılanlar (managed_config.toml)
Yönetilen varsayılanlar, desteklenen bir yerel istemcinin başlangıçta kullanacağı yapılandırmayı belirler. İstemci
başlatılırken kullanıcının yerel config.toml değerini ve tüm CLI --config
geçersiz kılmalarını geçersiz kılar. Kullanıcılar geçerli çalıştırma sırasında bu ayarları yine değiştirebilir ve
istemci bir sonraki kez başlatıldığında varsayılanlar yeniden uygulanır.
Yönetilen bir varsayılan ayar, macOS MDM profili veya kaydedilmiş yapılandırma, ChatGPT ile oturum açan Codex kullanıcıları için
gpt-5.5 modelini sabitliyorsa bunu
14 Ekim 2026 tarihinden önce gpt-5.6-sol ile değiştirin. GPT-5.5, o tarihte tüm planlarda ChatGPT,
ChatGPT Work ve Codex'ten kaldırılacaktır. OpenAI API bundan
etkilenmez. Çalışma alanında model kullanılabilirliği bölümüne bakın.
Yönetilen bir varsayılan, macOS MDM profili veya kayıtlı yapılandırma, ChatGPT ile
oturum açan kullanıcılar için gpt-5.4 ya da gpt-5.4-mini öğesini sabitliyorsa
31 Ağustos 2026'dan önce güncelleyin. gpt-5.4 yerine gpt-5.6-terra, gpt-5.4-mini yerine
gpt-5.6-luna kullanın. OpenAI API ve kendi API key anahtarınızla kimlik doğrulanan Codex
bundan etkilenmez. Çalışma alanı modeli
kullanılabilirliği sayfasına bakın.
Yönetilen varsayılanlarınızın gereksinimlerinizi karşıladığından emin olun; yerel çalışma zamanı izin verilmeyen değerleri reddeder.
Öncelik ve katmanlama
Yerel çalışma zamanı etkin yapılandırmayı şu sırayla oluşturur (üstteki alttakini geçersiz kılar):
- Yönetilen tercihler (macOS MDM; en yüksek öncelik)
managed_config.toml(sistem/yönetilen dosya)config.toml(kullanıcının temel yapılandırması)
CLI --config key=value geçersiz kılmaları temele uygulanır, ancak yönetilen katmanlar bunları geçersiz kılar. Bu, yerel bayraklar sağlasanız bile her çalışmanın yönetilen varsayılanlardan başladığı anlamına gelir.
Buluttaki config.toml, normal yapılandırma önceliğini kullanır;
yukarıdaki eski sıralamayı kullanmaz. Buluttaki requirements.toml ise
gereksinim önceliğini kullanır.
Konumlar
- Linux/macOS (Unix):
/etc/codex/managed_config.toml - Windows/Unix dışı:
~/.codex/managed_config.toml
Dosya yoksa yerel çalışma zamanı yönetilen katmanı atlar.
macOS yönetilen tercihleri (MDM)
macOS'ta yöneticiler, base64 ile kodlanmış TOML yüklerini şu konumda sağlayan bir cihaz profili gönderebilir:
- Tercih alanı:
com.openai.codex - Anahtarlar:
config_toml_base64(yönetilen varsayılanlar)requirements_toml_base64(gereksinimler)
Yerel çalışma zamanı bu "yönetilen tercihler" yüklerini TOML olarak ayrıştırır.
Yönetilen varsayılanlar (config_toml_base64) için yönetilen tercihler en yüksek
önceliğe sahiptir. Gereksinimler (requirements_toml_base64) için öncelik yukarıda
açıklanan bulut tarafından yönetilen gereksinimler sırasını izler. Gereksinimler
tarafındaki aynı [features] tablosu requirements_toml_base64 içinde çalışır; burada da
standart özellik anahtarlarını kullanın.
MDM kurulum iş akışı
Yerel çalışma zamanı standart macOS MDM yüklerini destekler; dolayısıyla ayarları
Jamf Pro, Fleet veya Kandji gibi araçlarla dağıtabilirsiniz. Hafif bir
dağıtım şöyle görünür:
- Yönetilen yük TOML'sini oluşturun ve
base64ile kodlayın (satır kaydırma olmadan). - Dizeyi MDM profilinizde
com.openai.codexalanı altındakiconfig_toml_base64(yönetilen varsayılanlar) veyarequirements_toml_base64(gereksinimler) konumuna bırakın. - Profili gönderin, ardından kullanıcılardan desteklenen yerel istemciyi yeniden başlatmalarını ve başlangıç yapılandırması özetinin yönetilen değerleri yansıttığını doğrulamalarını isteyin.
- Politikayı iptal ederken veya değiştirirken yönetilen yükü güncelleyin; istemci yenilenmiş tercihi bir sonraki başlatılışında okur.
Yüke gizli bilgiler veya sık değişen dinamik değerler yerleştirmekten kaçının. Yönetilen TOML'yi değişiklik denetimi altındaki diğer MDM ayarları gibi ele alın.
Örnek managed_config.toml
# Set conservative defaults
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = false # keep network disabled unless explicitly allowed
[otel]
environment = "prod"
exporter = "otlp-http" # point at your collector
log_user_prompt = false # keep prompts redacted
# exporter details live under exporter tables; see Monitoring and telemetry aboveÖnerilen güvenlik sınırları
- Çoğu kullanıcı için onaylarla birlikte
workspace-writetercih edin; tam erişimi denetimli kapsayıcılara ayırın. - Güvenlik incelemeniz bir toplayıcıya veya iş akışlarınızın gerektirdiği alan adlarına izin vermedikçe
network_access = falsedeğerini koruyun. - OTel ayarlarını (dışa aktarıcı, ortam) sabitlemek için yönetilen yapılandırmayı kullanın, ancak politikanız istem içeriklerinin saklanmasına açıkça izin vermedikçe
log_user_prompt = falsedeğerini koruyun. - Sapmaları yakalamak için yerel
config.tomlile yönetilen politika arasındaki farkları düzenli olarak denetleyin; yönetilen katmanlar yerel bayraklara ve dosyalara üstün gelmelidir.