Giriş
Anthropic, yapay zeka modellerine erişim için kullanılan Claude Platformunda Workload Identity Federation (WIF) özelliğini genel kullanıma sunduğunu duyurdu. Bu yenilik, statik API anahtarlarının yerini alarak güvenlik açıklarını minimize etmeyi ve kimlik doğrulama süreçlerini otomatikleştirmeyi hedefliyor.
Sorun: Statik API Anahtarlarının Riskleri
Geleneksel olarak, API'lara erişim sağlamak için kullanılan statik API anahtarları, uzun vadeli geçerlilikleri nedeniyle çeşitli güvenlik riskleri taşır:
- Yetkilendirme sorunları: API anahtarları, proje veya kullanıcıyla ilişkilendirildiğinde, yetki devri zor olabilir ve gereksiz erişimler kalıcı hale gelebilir.
- Sızıntı riski: API anahtarları kodlarda, yapılandırma dosyalarında veya versiyon kontrol sistemlerinde saklandığında, üçüncü taraflarca ele geçirilebilir.
- Yönetim karmaşıklığı: Çok sayıda API anahtarı oluşturmak, yenilemek ve izlemek, operasyonel yükü artırır.
Önemli: Statik API anahtarları, özellikle CI/CD boru hatlarında veya bulut tabanlı uygulamalarda yaygın olarak kullanıldığından, güvenlik açıklarına yol açabilir. Bu nedenle, dinamik ve geçici kimlik doğrulama yöntemlerine geçiş önemlidir.
Çözüm: Workload Identity Federation (WIF)
WIF, OpenID Connect (OIDC) standardına dayanan bir kimlik federasyonu çözümüdür. Bu özellik sayesinde, Anthropic API'larına erişim için geçici kimlik tokenları kullanılabilir. WIF aşağıdaki avantajları sunar:
- Güvenlik: API anahtarlarının yerini alan tokenlar, kısa ömürlü olduğundan ve otomatik olarak yenilendiğinden, sızıntı riski minimize edilir.
- Esneklik: AWS IAM, Azure Yönetilen Kimlikler (Managed Identities) ve Google Cloud Platform (GCP) hizmet hesapları gibi OIDC uyumlu kimlik sağlayıcıları desteklenir.
- Basitlik: Statik anahtarların yönetimi yerine, bulut sağlayıcıların yerleşik kimlik yönetimi kullanılarak entegrasyon kolaylaştırılır.
Uygulama Adımları
WIF'i Claude Platformunda kullanmak için aşağıdaki adımları izleyin. Bu rehberde AWS IAM üzerinden örnek bir kurulum gösterilmektedir. Benzer adımlar diğer bulut sağlayıcılar için de geçerlidir.
1. Ön Gereksinimlerin Kontrolü
OIDC Uyumlu Kimlik Sağlayıcınızı Seçin: AWS IAM, Azure veya GCP hizmet hesaplarını kullanabilirsiniz. Bu rehberde AWS IAM tercih edilmiştir.
Claude API Anahtarınızı Oluşturun (Gerekirse): Eğer statik bir API anahtarınız varsa, WIF'e geçiş yapmadan önce bunu Claude Console üzerinden kaldırın.
AWS CLI ve IAM Politikalarını Kurun: AWS hesabınızda AWS CLI ve IAM politikalarını yapılandırın. AWS CLI'yi kurmak için:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
2. AWS IAM'de OIDC Sağlayıcısını Yapılandırın
OIDC Sağlayıcısını Ekleyin: AWS IAM konsoluna gidin ve Identity Providers bölümüne tıklayın. Ardından Add Provider seçeneğini seçin.
Provider URL: https://api.anthropic.com/v1/oidc Audience: claude-apiIAM Politikasını Oluşturun: Uygulamanızın erişmesi gereken kaynaklara göre bir IAM politikası oluşturun. Örneğin:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "anthropic:InvokeModel", "Resource": "*" } ] }Bu politikanın adını ClaudeAPIAccessPolicy olarak kaydedin.
IAM Rolünü Oluşturun: Bir IAM rolü oluşturun ve bu role yukarıdaki politikayı ekleyin. Rolün Trust Relationship bölümüne aşağıdaki JSON yapısını ekleyin:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws:iam::[AWS_ACCOUNT_ID]:oidc-provider/api.anthropic.com/v1/oidc" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "api.anthropic.com/v1/oidc:aud": "claude-api" } } } ] }Not:
[AWS_ACCOUNT_ID]yerine AWS hesabınızın ID'sini girin.
3. Uygulamanızda WIF'i Kullanmaya Başlayın
AWS SDK'sını Kurun: Uygulamanızın çalıştığı ortamda AWS SDK'sını kurun. Örneğin, Python için:
pip install boto3AWS Ortamını Yapılandırın: IAM rolünü kullanmak için AWS ortam değişkenlerini veya AWS CLI profilini yapılandırın:
export AWS_ROLE_ARN=arn:aws:iam::[AWS_ACCOUNT_ID]:role/ClaudeAPIAccessRole export AWS_WEB_IDENTITY_TOKEN_FILE=/path/to/token/fileClaude API'ye Erişim: Artık statik API anahtarına ihtiyaç duymadan, AWS IAM tarafından sağlanan geçici tokenlarla Claude API'ye erişebilirsiniz. Örnek Python kodu:
import boto3 import requests # AWS IAM'dan geçici token al sts_client = boto3.client('sts') response = sts_client.assume_role_with_web_identity( RoleArn="arn:aws:iam::[AWS_ACCOUNT_ID]:role/ClaudeAPIAccessRole", RoleSessionName="ClaudeAPISession" ) credentials = response['Credentials'] # Claude API'ye istek gönder headers = { "x-api-key": f"{credentials['AccessKeyId']}:{credentials['SecretAccessKey']}:{credentials['SessionToken']}", "Content-Type": "application/json" } response = requests.post( "https://api.anthropic.com/v1/messages", headers=headers, json={"model": "claude-3-sonnet-20240229", "messages": [{"role": "user", "content": "Hello"}]} ) print(response.json())
4. Diğer Bulut Sağlayıcılar için Kurulum
WIF, yalnızca AWS IAM ile sınırlı değildir. Aşağıdaki bulut sağlayıcıları da desteklenmektedir:
- Azure: Azure Managed Identities kullanarak WIF'i yapılandırın. Detaylar için Azure Dokümantasyonuna bakın.
- Google Cloud Platform (GCP): GCP hizmet hesapları üzerinden WIF'i kullanabilirsiniz. Detaylar için GCP Dokümantasyonuna bakın.
Örnek Senaryo: CI/CD Boru Hattında WIF Kullanımı
CI/CD boru hatlarında statik API anahtarları kullanmak risklidir. WIF ile bu riski ortadan kaldırabilirsiniz. Örneğin, GitHub Actions kullanarak:
GitHub OIDC Sağlayıcısını Yapılandırın: GitHub Actions'ın OIDC tokenlarını kullanabilmesi için AWS IAM'de bir sağlayıcı oluşturun:
Provider URL: https://token.actions.githubusercontent.com Audience: sts.amazonaws.comIAM Politikasını ve Rolünü Oluşturun: GitHub Actions'ın erişeceği kaynaklara göre bir IAM politikası ve rol oluşturun. Trust relationship'e GitHub OIDC tokenlarını ekleyin.
GitHub Actions Workflow'unda WIF'i Kullanın: Workflow dosyasında AWS kimlik bilgilerini geçici olarak almak için aşağıdaki adımları ekleyin:
jobs: deploy: runs-on: ubuntu-latest permissions: id-token: write contents: read steps: - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v2 with: role-to-assume: arn:aws:iam::[AWS_ACCOUNT_ID]:role/GitHubActionsClaudeAPIRole aws-region: us-east-1 - name: Call Claude API run: | TOKEN=$(aws sts get-caller-identity --query 'Credentials' --output json) # API çağrısını gerçekleştir
Sık Karşılaşılan Sorunlar ve Çözümleri
Sorun 1: OIDC sağlayıcısı tanınmıyor.
Çözüm: Sağlayıcı URL'sini ve audience değerini doğru girdiğinizden emin olun. Anthropic için doğru URL
https://api.anthropic.com/v1/oidcve audienceclaude-apiolmalıdır.
Sorun 2: Geçici tokenlar çalışmıyor.
Çözüm: AWS IAM rolünün trust relationship'ında audience değeri doğru şekilde ayarlanmalıdır. Ayrıca, token dosyasının yolunu doğru şekilde belirtin.
Sorun 3: API çağrıları başarısız oluyor.
Çözüm: IAM politikasının doğru kaynaklara erişim izni verdiğinden emin olun. Ayrıca, API anahtarının Claude Console'da kaldırıldığını doğrulayın.
Sonuç
Anthropic'in Workload Identity Federation (WIF) özelliği, statik API anahtarlarının yerini alarak güvenliği artıran ve yönetimi kolaylaştıran bir çözüm sunmaktadır. AWS IAM, Azure veya GCP gibi bulut sağlayıcılarıyla entegre olarak çalışabilen WIF, CI/CD boru hatlarından üretim ortamlarına kadar geniş bir kullanım alanına sahiptir. Bu yenilik sayesinde, API erişimlerinde güvenlik açıklarını minimize etmek ve operasyonel yükü azaltmak mümkündür.
Öneri: Statik API anahtarlarınızı WIF'e geçirirken, tüm uygulamalarınızı ve boru hatlarınızı tek seferde güncellemeyin. Öncelikle bir test ortamında kurulumu tamamlayın ve ardından üretim ortamına taşıyın.



