AI destekli uygulamalar hızla yaygınlaşırken, en önemli konulardan biri yetkilendirme sistemlerinin nasıl kurulacağıdır. Amazon Bedrock AgentCore ile geliştirdiğiniz ajanlarınıza rol tabanlı erişim kontrolü (RBAC) uygulamak için üç temel adım bulunmaktadır. Bu süreç, kullanıcı kimliklerini doğrulama, yetki kapsamlarını tanımlama ve araç çağrıları sırasında bu kuralları otomatik olarak uygulamadan oluşur.
Kullanıcı kimliklerini doğrulamaya başlayın: Kimlik sağlayıcı entegrasyonu
AI ajanlarınıza erişim sağlamadan önce, kullanıcıların kimliklerini güvenilir bir şekilde doğrulamanız gerekir. Bu adımda, kuruluşunuzun tercih ettiği kimlik sağlayıcıyı (IDP) Amazon Bedrock AgentCore Runtime'a entegre ediyorsunuz. Okta, Microsoft Entra ID, Amazon Cognito veya diğer OAuth 2.0 uyumlu sistemler aracılığıyla yapılan kimlik doğrulamaları, kullanıcılara dijital kimliklerini kanıtlayan bir JWT (JSON Web Token) verir.
Bu token, iki önemli işlevi yerine getirir:
- Kimlik kanıtı: Kullanıcının kimliğini doğrular ve sistemle iletişim kurmasına izin verir.
- Yetki bilgileri: Kullanıcının hangi işlemleri gerçekleştirebileceğine dair kapsamları içerir.
Amazon Bedrock AgentCore Runtime, JWT doğrulamasını otomatik olarak gerçekleştirecek şekilde yapılandırılabilir. Bunun için sadece kimlik sağlayıcınızın keşif URL'sini belirtmeniz yeterlidir. Sistem, ilgili algoritmaları kullanarak token imzasını doğrular, süresini kontrol eder ve uygulama için geçerli olup olmadığını onaylar. Bu süreç, aşağıdaki örnekte olduğu gibi basit bir Python betiğiyle yönetilebilir:
import boto3
client = boto3.client('bedrock-agentcore-control', region_name='us-east-1')
response = client.create_agent_runtime(
agentRuntimeName='insan-kaynaklari-ajan-runtime',
agentRuntimeArtifact={
'containerConfiguration': {
'containerUri': '<hesap>.dkr.ecr.us-east-1.amazonaws.com/hr-agent:latest'
}
},
authorizerConfiguration={
'customJWTAuthorizer': {
'discoveryUrl': '
'allowedClients': ['hr-api-client']
}
},
networkConfiguration={'networkMode': 'PUBLIC'},
roleArn='arn:aws:iam::<hesap>:role/AgentRuntimeRole'
)Bu yapılandırma sayesinde, ajanınıza yapılan tüm çağrılar geçerli bir JWT tokenı gerektirecektir. Token doğrulaması başarısız olan kullanıcılar, sisteme erişemeyecektir.
Yetki kapsamlarını tanımlayın: Rollerinize özel erişim seviyeleri
Kimlik doğrulaması tamamlandıktan sonra sıra, kullanıcıların hangi eylemleri gerçekleştirebileceğini belirlemeye gelir. Bu aşamada, OAuth kapsamlarını (scopes) kullanarak rollere özel yetkiler tanımlanır. Örneğin, bir insan kaynakları departmanı ajanında farklı roller için farklı kapsamlar oluşturabilirsiniz:
- Yönetici kullanıcılar: api/read, api/write, api/admin
- Standart kullanıcılar: api/read, api/write
- Salt okunur kullanıcılar: api/read
Bu kapsamlar, kullanıcının JWT tokenında yer alır ve ajan çağrısı sırasında doğrulanır. Bir JWT tokenının yapısı aşağıdaki gibi olabilir:
{
"sub": "kullanici@sirket.com",
"iss": "
"aud": ["hr-api-client"],
"exp": 1715612345,
"iat": 1715608745,
"scope": "api/read api/write",
"groups": ["standart-kullanicilar"]
}Token içindeki scope ve groups alanları, kullanıcının rollerine göre otomatik olarak doldurulur. Bu sayede, farklı roller için farklı erişim seviyeleri belirlenmiş olur. Ancak bu noktada önemli bir soru ortaya çıkıyor: JWT tokenındaki bu kapsamlar nasıl uygulanacak?
Yetki kurallarını uygulayın: AgentCore Gateway'in rolü
Yetkilerin JWT tokenlarında yer alması yeterli değildir. Bu kuralların uygulanması gerekir. Amazon Bedrock AgentCore Gateway, ajan runtime'unuz ile araçlarınız arasında yer alan ve tüm araç çağrılarını denetleyen merkezi bir bileşendir. Bu sayede, doğal dil işleme modellerinin (LLM) hangi araçları çağıracağına dair kararları almasına rağmen, sistem bu kararların kullanıcının yetkilerine uygun olup olmadığını kontrol eder.
AgentCore Gateway'in yapılandırılması da benzer şekilde basittir. Aşağıdaki örnekte, kimlik doğrulama ve yetki denetimi için gerekli ayarlar gösterilmektedir:
import boto3
client = boto3.client('bedrock-agentcore-control', region_name='us-east-1')
response = client.create_gateway(
name='insan-kaynaklari-ajan-gateway',
protocolType='MCP',
authorizerType='CUSTOM_JWT',
authorizerConfiguration={
'customJWTAuthorizer': {
'allowedClients': ['hr-api-client'],
'discoveryUrl': '
}
},
roleArn='arn:aws:iam::<hesap>:role/GatewayServiceRole'
)AgentCore Gateway, ajan çağrılarını iki aşamada denetler:
- Kimlik doğrulama: Runtime tarafından zaten doğrulanmış olan JWT tokenını yeniden kontrol eder. Bu, çok katmanlı güvenlik yaklaşımının bir parçasıdır.
- Yetki uygulama: Token içindeki
scopevegroupsdeğerlerine göre, kullanıcının çağırmaya çalıştığı aracın yetkisi olup olmadığını kontrol eder. Örneğin, bir kullanıcıapi/adminkapsamına sahip değilse, yönetici araçlarına erişemez.
Bu katmanlı yaklaşım, ajanlarınızın hem güvenli hem de esnek olmasını sağlar. LLM'inizin doğal dil anlama yetenekleriyle birlikte, kullanıcılara hem kullanışlı hem de kontrollü bir deneyim sunabilirsiniz.
Sonuç: Güvenli ve çok kullanıcılı AI ajanları için temel adımlar
Amazon Bedrock AgentCore ile AI ajanlarınıza RBAC uygulamak, üç temel adımdan oluşur: kimlik doğrulama, yetki kapsamlarının tanımlanması ve kuralların uygulanması. Bu süreç, ajanlarınızın hem güvenli hem de çok kullanıcılı ortamlarda sorunsuz çalışmasını sağlar.
Kimlik sağlayıcı entegrasyonuyla kullanıcıları doğrulayabilir, OAuth kapsamlarıyla rollerine özel yetkiler tanımlayabilir ve AgentCore Gateway ile bu kuralları otomatik olarak uygulayabilirsiniz. Bu yaklaşım, ajanlarınızın doğal dil işleme yeteneklerini korurken, aynı zamanda güvenlik ve uyumluluk gereksinimlerini de karşılamanızı sağlar.
AI teknolojileri gelişmeye devam ederken, yetkilendirme sistemlerinin doğru şekilde kurulması giderek daha önemli hale gelmektedir. Amazon Bedrock AgentCore, bu ihtiyacı karşılamak için kullanıcı dostu ve ölçeklenebilir bir çözüm sunmaktadır.
Yapay zeka özeti
AI ajanlarınız için güvenli çok kullanıcılı erişim kontrolü oluşturun. Amazon Bedrock AgentCore ile RBAC uygulamak için 3 basit adım.