AI API Ağ Geçitleri için Anahtarsız Yukarı Akış Kimlik Doğrulaması: Bir İş Yükü Kimlik Federasyonu Kalıbı
Uzun ömürlü sağlayıcı anahtarlarını, yenileme kesintilerine neden olmadan, kimlik eşlemelerini zayıflatmadan veya sessizce paylaşılan kimlik bilgilerine geri dönmeden iş yükü kimliği ve kısa ömürlü belirteçlerle değiştirin.
Sağlayıcı iş yükünün kimliğini doğrulayabildiğinde, üretim ağ geçidi çalışanları uzun ömürlü yukarı akış API anahtarlarını taşımamalıdır. Daha güvenli yöntem, mevcut bir bulut, Kubernetes, CI veya SPIFFE kimliğini kısa ömürlü bir sağlayıcı kimlik bilgisi ile değiştirmek, bu kimlik bilgisini doğru bir şekilde önbelleğe almak ve onu en küçük kullanışlı yetkilendirme sınırıyla sınırlamaktır.
Zor olan kısım jeton değişimi değil. Düzensiz sağlayıcı desteği, eşzamanlı yenilemeler, kimlik eşleme, kontrol düzlemi istisnaları, kesintiler ve geçişi, geniş ayrıcalıklı bir paylaşılan anahtara gizli bir geri dönüş oluşturmadan yönetir.
Genel anahtarsız ayarlarla değil, kimlik doğrulama özellikleriyle başlayın
Gerçek: Kimlik doğrulama desteği, sağlayıcıya ve işleme göre farklılık gösterir. OpenAI ve Anthropic, API iş yükü için iş yükü kimlik federasyonunu destekler. Azure OpenAI, Microsoft Entra ID'yi ve yönetilen kimlikleri destekler. Google Bulut, harici iş yükleri için ekli hizmet hesaplarını, Uygulama Varsayılan Kimlik Bilgilerini ve İş Yükü Kimlik Federasyonu'nu destekler. Ancak çalışma zamanı çıkarımı ve yönetim API'leri mutlaka aynı kimlik bilgisi türlerini kabul etmez.
Örneğin, OpenAI iş yükü kimlik belirteçleri şu anda Yönetici API uç noktalarını çağıramaz. Bu nedenle bir ağ geçidi, kimlik doğrulamayı auth_mode: federated.
Öneri: Sağlayıcı hesabı, uç nokta ailesi, ortam ve operasyon sınıfına göre anahtarlanan bir yetenek matrisi oluşturun:
| Sağlayıcı hesabı | İşlem | Tercih edilen kimlik doğrulama | İzin verilen istisna |
|---|---|---|---|
| Sağlayıcı A üretimi | Çalışma zamanı çıkarım | OIDC değişimi | Normal çalışma sırasında yok |
| A Sağlayıcı üretimi | Kuruluş yönetimi | Yönetim kimlik bilgisi | Yalıtılmış kontrol düzlemi işçi |
| Azure dağıtımı | Çalışma zamanı çıkarımı | Yönetilen kimlik | Onaylanan kırılma prosedürü |
| Vertex AI projesi | Çalışma zamanı çıkarım | Uygulama Varsayılan Kimlik Bilgileri | Harici iş yükü federasyonu |
Bu matrisi sürümlendirilmiş yapılandırma olarak saklayın. Rota kabulü, yapılandırılmış kimliği gerekli kimlik doğrulama özelliğini karşılayamadığı zaman bir işlemi reddetmelidir. Bu, bireysel çalışanlar üzerindeki belgelenmemiş ortam değişkenlerine değil, geliştirici ekiplerine yönelik AI API kontrol düzlemine aittir.
Yönlendirme ile sağlayıcı bağdaştırıcıları arasına bir kimlik bilgisi aracısı yerleştirin
Sağlayıcı bağdaştırıcıları meta veri kimlik bilgilerini almamalı, iddialar oluşturmamalı veya belirteç yenilemeyi bağımsız olarak yönetmemelidir. Tek bir dar arayüze sahip bir kimlik bilgisi aracısı tanıtın:
Credential acquire(CredentialRequest request)
CredentialRequest {
provider_account_id
workload_identity_id
operation_class
target_service_account
audience
scopes
}
Credential {
value
expires_at
authorization_context
provenance
}
Kimlik bilgisi değeri hassastır ve bellekte veya onaylı bir geçici önbellekte kalmalıdır. Yetkilendirme bağlamı, belirtecin temsil ettiği sağlayıcı projesini, hizmet hesabını, kapsamları, rolleri veya dağıtım kısıtlamalarını kaydeder. Kaynak, oidc_exchange, managed_identity, adc veya break_glass.
Bu sözleşme, yetkilendirme kontrolleri ve telemetri için gereken ayrıntıları korurken yönlendirmeyi sağlayıcıdan bağımsız tutar. Ayrıca ekipler için çok modelli API ağ geçidinin her taşıyıcı jetonu değiştirilebilirmiş gibi ele almasını engeller.
Sağlayıcıya özel edinme bağdaştırıcılarını kullanın
Her edinme bağdaştırıcısı yalnızca sağlayıcısının gerektirdiği adımları gerçekleştirmelidir:
- Yerel kimlik kaynağından, Kubernetes tarafından öngörülen hizmet hesabı belirteci, bulut meta veri hizmeti veya SPIFFE iş yükü gibi harici bir onay alın API.
- Sağlayıcının veya yapılandırılan federasyon kuralının beklediği tam kitleyi isteyin.
- Sağlayıcı, belirteç değişimi gerektirdiğinde iddiayı değiştirin.
- Geri dön ortaya çıkan kimlik bilgisi ve yetkili süre sonu süresi.
- Hataları yerel kimlik, değişim, yetkilendirme, yapılandırma veya sağlayıcı kullanılabilirliği hataları olarak sınıflandırın.
Vertex AI'nin OpenAI uyumlu uç noktası, ayırmanın yararlı bir örneğidir: bir uygulama, Uygulama Varsayılan Kimlik Bilgileri aracılığıyla bir Google erişim jetonu alabilir ve bu jetonu OpenAI istemcisinin kimlik bilgisi olarak sağlayabilir. Protokol bağdaştırıcısı OpenAI ile uyumlu olmaya devam ederken, kimlik bilgisi edinimi Google'ye özel kalır.
Belirteç önbelleğini yetkilendirmeye duyarlı hale getirin
Gerçek: Birleştirilmiş kimlik bilgileri kısa ömürlüdür. OpenAI iş yükü kimlik erişim belirteçleri bir saatten fazla sürmez, harici konu belirtecinden veya doğrulanmış sertifikadan daha uzun süre dayanamaz ve yenileme belirteçleri olmadan verilir. İş yükünün sona erme tarihinden önce değişimi tekrarlaması gerekir.
Bir önbellek anahtarı, ortaya çıkan otoriteyi değiştirebilecek her boyutu içermelidir:
cache_key = hash(
provider_account_id,
workload_identity_id,
target_service_account,
audience,
normalized_scopes,
operation_class
)
Hedef hesabı, kitleyi veya kapsamları atlamak, çalışanın geçerli bir jetonu yanlış yetkilendirme bağlamında yeniden kullanmasına neden olabilir. Bu, önbellek kaçırmaktan daha tehlikelidir.
Güvenlik marjı ve rastgele titreşim kullanarak süre dolmadan önce yenileyin. Pratik politikalardan biri şudur:
refresh_at = expires_at
- max(configured_margin, token_lifetime * 0.10)
- random_jitter
Tam marj, saat çarpıklığını, değişim gecikmesini, yeniden deneme süresini ve beklenen en uzun isteği hesaba katmalıdır. Yalnızca expires_at.
Tek uçuş yenilemeyle değişim fırtınalarını önleyin
Birçok istek, süresi dolmak üzere olan aynı jetonla karşılaştığında, değişimi yalnızca bir yürütme gerçekleştirmelidir. Diğer arayanlar, izin verilen pencere içinde kaldığı sürece mevcut kimlik bilgilerini kullanmaya devam etmeli veya paylaşılan yenileme sonucunu kısa bir süre beklemelidir.
Önbellek başına anahtar başına tek uçuş kilidi kullanın. Çok işlemli veya çok düğümlü bir dağıtımda, her çalışanın kendi önbelleğini koruyup tutamayacağına veya yenileme koordinasyonunun dağıtılması gerekip gerekmediğine karar verin. Yerel önbellek daha basittir ancak değişim hacmini artırır. Dağıtılmış önbellek, alışverişleri azaltır ancak hassas belirteç sınırını genişletir ve şifreli aktarım, sıkı erişim kontrolü ve dikkatli tahliye gerektirir.
Öneri: Sağlayıcı sınırları veya filo boyutu, paylaşılan bir jeton hizmetine ihtiyaç duyulduğunu göstermediği sürece, süreç içi önbellekleri tercih edin. Önce her süreçteki yenilemeleri koordine edin, ardından değişim hacmini ölçün.
Kimlikleri tam iş yükü taleplerine bağlayın
Federasyon, güveni depolanan bir anahtardan kimlik taleplerine taşıyor. Bu nedenle izin verici bir eşleme, sızdırılmış paylaşılan kimlik bilgisi kadar tehlikeli olabilir.
Vericiyi ve hedef kitleyi doğrulayın, ardından eşlemeyi değişmez veya sıkı bir şekilde kontrol edilen taleplere bağlayın. Kubernetes için kümedeki herhangi bir iş yüküne güvenmek yerine ad alanını ve hizmet hesabını ekleyin. CI için depoyu, iş akışını, ortamı ve korumalı şube veya dağıtım bağlamını kısıtlayın. Bulut kimlikleri için kiracının veya kuruluşun tamamı yerine belirli bir iş yükü sorumlusunun eşlenmesini sağlayın.
Üretim, hazırlama, arka plan işleri ve yönetim otomasyonu için ayrı yukarı akış hizmet hesapları veya yönetilen kimlikler oluşturun. Her kimliği ihtiyaç duyduğu modeller, projeler, çalışma alanları, dağıtımlar ve API operasyonlarla sınırlandırın.
Gerçek: OpenAI, iş yükü kimlik eşlemelerini API izniyle kısıtlayabilir. Anthropic, değiştirilen kimlik bilgilerini bir hizmet hesabıyla ilişkilendirir ve federasyonun yalnızca yukarı akış kimlik yapılandırması kadar güvenli olduğu konusunda uyarır. Yönetilen kimlikler ve bulut IAM, benzer şekilde kapsamın doğru şekilde belirlenmiş rol atamalarına bağlıdır.
Çalışma zamanı kimlik bilgilerini yönetici kimlik bilgilerinden ayırın
Bir çıkarım çalışanı, sırf bazı kontrol düzlemi görevlerinin hala bir jetona ihtiyacı var diye bir kuruluş-yönetici jetonunu asla devralmamalıdır. Sistemi iki güvenlik sınırına ayırın:
- Çalışma zamanı düzlemi: Model isteklerini yönetir ve yalnızca çıkarım kapsamına alınmış birleştirilmiş veya yönetilen kimlik bilgilerini alır.
- Kontrol düzlemi: Ayrı olarak depolanan kimlik bilgileri ve daha güçlü onay kontrolleri ile yalıtılmış işler aracılığıyla proje, çalışma alanı, faturalandırma veya hizmet hesabı yönetimini gerçekleştirir.
Yönetici kimlik bilgilerinin, çalışma zamanı ortam değişkenlerine, kapsül spesifikasyonlarına, hata ayıklama paketlerine veya belirteç önbelleklerine giden bir yolu olmamalıdır. Kullanımlarını, yapılandırma değişiklikleri için kullanılan aynı yalnızca eklemeli denetim sistemine kaydedin.
Kurtarma işlemini doğaçlama yapmadan arıza kapatıldı
Öneri: Başarısız olan bir federasyon değişimini otomatik olarak paylaşılan bir statik anahtarla değiştirmeyin. Otomatik geri dönüş, iptal edilen bir eşlemeyi atlayabilir, yanlış bir kitleyi gizleyebilir veya bir kimlik yöneticisinin kasıtlı olarak kaldırdığı erişimi geri yükleyebilir.
Gizli bir yukarı akış kimlik doğrulama hatası döndürün, etkilenen sağlayıcı hesabına gönderimi durdurun ve normal yönlendirme politikasının yalnızca kiracı ve iş yükü için bu alternatife izin verildiğinde başka bir sağlayıcı seçmesine izin verin. Model yedeği ve kimlik bilgisi yedeği farklı kararlardır.
Ciddi kimlik sağlayıcı kesintileri için camı kıran bir anahtar hâlâ geçerli olabilir. Normal çalışma sırasında onu devre dışı bırakın veya erişilemez durumda tutun. Etkinleştirme, kimliği doğrulanmış bir onay gerektirmeli, sabit bir geçerlilik süresine sahip olmalı, etkilenen sağlayıcı hesabını ve işlemlerini kısıtlamalı ve onunla yapılan her talepte uyarı vermelidir. Kaynağının istek telemetrisinde görünmesi gerekir.
Tek seferde bir yönlendirme havuzunu taşıyın
- Envanter çalışma zamanı ve yönetici kimlik bilgileri. Hangi süreçlerin her birini okuyabileceğini belirleyin.
- Özel bir iş yükü kimliği ve dar kapsamlı sağlayıcı hizmet hesabı oluşturun.
- Tam veren kuruluş, hedef kitle, konu ve izin eşlemelerini yapılandırın.
- Bir belirteç alan ve düşük etkili, izin verilen bir uç noktayı çağıran bir ön kontrol kontrolü ekleyin.
- Canary, yalnızca federasyonu kullanan küçük bir yönlendirme havuzu. Test sırasında otomatik anahtar geri dönüşünü etkin bırakmayın.
- Kimlik doğrulama hatalarını, değişim gecikmesini, belirteç yaşını ve sağlayıcı yetkilendirme sonuçlarını mevcut yolla karşılaştırın.
- Trafiği kademeli olarak artırın ve en az bir tam belirteç yenileme döngüsünü gözlemleyin.
- Eski anahtarı çalışma zamanı erişiminden kaldırın, ardından tanımlanan gözlemden sonra onu iptal edin nokta.
Bu işlemi sağlayıcı hesabına ve ortama göre tekrarlayın. Küresel bir geçiş, kimlik eşleme hatasını sağlayıcıya özgü belirteç davranışından ayırt etmeyi zorlaştırır.
Hata modlarını ölçün ve test edin
Belirteç değişimi gecikmesini, yenileme girişimlerini, yenileme hatalarını, kimlik bilgisi yaşını, vereni, eşlenen sorumluyu, sağlayıcı hesabını, işlem sınıfını ve kimlik doğrulama hatası kategorisini kaydedin. Erişim belirteçlerini, harici iddiaları, istemci sırlarını veya yetkilendirme başlıklarının tamamını asla kaydetmeyin.
Federasyon tek üretim yolu haline gelmeden önce test edin:
- Çalışanlar, kimlik sağlayıcılar ve sağlayıcı belirteç hizmetleri arasında saat çarpıklığı.
- Meta veri sunucusu veya iş yükü kimliği uç noktası kullanılamıyor.
- Süresi dolmuş iddialar ve yanlış kitleler.
- Rol kaldırma ve federasyon kuralını devre dışı bırakma.
- Jeton değişimi kısıtlaması ve geçici sağlayıcı hatalar.
- Trafiğin yoğun olduğu durumlarda eşzamanlı yenileme.
- Eski belirteçler geçerli kalırken imza anahtarı rotasyonu.
OIDC veren kuruluş rotasyonu için, eski ve yeni imzalama anahtarlarını, doğrulayıcı önbellekleri ve verilen belirteçler için yeterli örtüşmeyle yayınlayın. OpenAI, bir belirteç bilinmeyen bir anahtar kimliğine başvurduğunda JWKS yenilemesi ile keşif ve uzak JWKS verileri için 600 saniyelik önbelleğe almayı belgeliyor. Her doğrulayıcının aynı şekilde davrandığını varsaymayın; canlı kanaryalarla rotasyonu test edin.
Anahtarsız çalışma zamanı kimlik doğrulamasını sınırlı bir geçiş olarak benimseyin
Amaç, ağ geçidinin hiçbir sır içermediğini iddia etmek değil. Uzun ömürlü sağlayıcı anahtarlarını yüksek hacimli çalışma zamanı çalışanlarından kaldırmak ve kaçınılmaz yönetici kimlik bilgilerini daha küçük bir kontrol düzlemi sınırıyla sınırlamaktır.
Yetenek matrisiyle başlayın, aracı kimlik bilgilerini tek bir arayüz üzerinden kullanın, yetkilendirme bağlamına göre önbelleğe alın, tam kimlik eşlemeleri kullanın ve değişim hatalarında başarısız olun. Geçişi yalnızca başarılı yenileme, iptal, kesinti ve imzalama anahtarı döndürme testlerini gözlemledikten sonra tamamlayın. Bu, kullanılabilirliği ve yetkilendirme davranışı varsayılmak yerine anlaşılan anahtarsız bir çalışma zamanı yolu oluşturur.