使用Okta和Amazon Bedrock治理企业级AI代理访问权限第二部分
- 作者

- 姓名
- Nino
- 职业
- Senior Tech Editor
构建单个受治理的人工智能助手是一个很好的概念验证,但企业级规模要求采用强化的多代理架构。在第一部分中,我们建立了Okta与Amazon Bedrock之间的基础身份循环。现在,在第二部分中,我们将此模式扩展到生产级别的企业拓扑结构。我们将引入Amazon Bedrock AgentCore网关作为集中式前门,使用Cedar策略实施细粒度的工具级权限,在Amazon EKS上部署第二个容器化代理集群,并通过AgentCore可观测性与Amazon CloudWatch统一安全遥测数据。
在没有严格访问控制的情况下扩展自主系统会带来巨大的安全隐患。如果受损的代理能够在整个企业基础设施中执行任意API调用,其破坏半径将是灾难性的。通过将Okta跨应用访问与Amazon Bedrock AgentCore网关相结合,我们建立了零信任边界,其中每个LLM调用、工具执行和数据获取在执行前都经过密码学验证和授权。
企业架构从点对点集成转变为集中式路由模式。Amazon Bedrock AgentCore网关充当所有传入代理请求的单一反向代理和API网关。当外部客户端调用代理时,网关会拦截有效负载,提取Okta颁发的OAuth令牌,验证声明,并将其兑换为带作用域的安全上下文。
[客户端应用] --(OAuth令牌)--> [AgentCore网关]
|
+-------------------------+-------------------------+
| (验证与兑换) | (Cedar策略检查)
v v
[Okta授权服务器] [Bedrock AgentCore运行时]
| |
+------------------> [AWS CloudWatch] <---------------+
为了与第三方API或内部微服务进行交互,开发人员通常需要调用各种LLM后端。构建自定义的多提供商回退机制可能十分繁琐。这正是诸如n1n.ai之类的平台大显身手的时候,它为Claude 3.5 Sonnet、DeepSeek-V3和OpenAI o3等模型提供统一的API聚合。通过企业网关路由请求时,集成诸如n1n.ai这样智能的聚合器,无需重写身份验证层即可确保高可用性和成本优化。
使用AgentCore网关集中化身份兑换
在分布式企业中,跨数十个微代理管理OAuth令牌生命周期是不可持续的。AgentCore网关通过在网络边缘拦截请求来简化这一过程。它代表下游代理兑换Okta授权,确保API令牌永远不会暴露给代理内存空间或提示词上下文。
以下是一个高级Terraform代码片段,展示了如何配置与Okta集成的AgentCore网关:
resource "aws_bedrock_agentcore_gateway" "enterprise_gateway" {
name = "prod-enterprise-agent-gateway"
description = "受治理的AI代理访问的集中式网关"
auth_config {
type = "OKTA_CROSS_APP"
okta_settings {
issuer_url = "https://your-domain.okta.com/oauth2/default"
client_id = var.okta_client_id
client_secret = var.okta_client_secret
scopes = ["api.agent.invoke", "tools.execute"]
}
}
routing_rules {
path_pattern = "/agents/*"
target_group = aws_bedrock_agentcore_target_group.eks_agents.arn
}
}
通过Cedar策略实施工具级安全性
身份验证仅证明代理是谁;授权则决定它被允许接触什么。Okta管理用户和代理身份令牌,而AWS Cedar策略则治理内部工具权限。Cedar允许我们编写细粒度的、人类可读的授权规则,将特定操作绑定到特定的代理角色。
考虑这样一种场景:人力资源代理和财务代理都位于AgentCore网关后面。我们必须确保人力资源代理无法查询薪资数据库。我们通过以下Cedar策略文档来实现这一点:
// 除非明确允许,否则拒绝人力资源代理角色的财务工具执行
@id("HR-Tool-Restriction")
permit(
principal == Agent::"hr-support-agent",
action == Action::"executeTool",
resource == Tool::"employee-directory-api"
) when {
context.request_ip matches "^10\\."
};
forbid(
principal == Agent::"hr-support-agent",
action == Action::"executeTool",
resource == Tool::"payroll-database-api"
);
在扩展此架构以支持多提供商LLM调用时——例如在用于复杂推理的Claude 3.5 Sonnet和用于分类的较小模型之间切换——开发人员经常使用n1n.ai来简化端点管理。您可以配置网关,无缝地将专门的推理任务路由到不同的底层提供商。
使用Amazon EKS扩展到Kubernetes
并非所有代理都驻留在无服务器运行时中。需要专门的本地缓存、自定义Python运行时或繁重的数据处理库的高吞吐量代理,最好部署在Amazon EKS上。在我们的企业模式中,第二个专门的代理运行在EKS集群内部,通过双向TLS(mTLS)和面向服务账户的IAM角色(IRSA)与AgentCore网关安全通信。
部署代理容器需要严格的安全上下文。以下是用于EKS托管代理的生产就绪Kubernetes部署清单:
apiVersion: apps/v1
kind: Deployment
metadata:
name: enterprise-finance-agent
namespace: ai-agents-prod
labels:
app.kubernetes.io/name: finance-agent
spec:
replicas: 3
selector:
matchLabels:
app: finance-agent
template:
metadata:
labels:
app: finance-agent
spec:
serviceAccountName: bedrock-agent-irsa
containers:
- name: agent-runtime
image: 123456789012.dkr.ecr.us-east-1.amazonaws.com/finance-agent:v2.1.0
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 10001
resources:
limits:
cpu: "2"
memory: "4Gi"
requests:
cpu: "500m"
memory: "1Gi"
env:
- name: BEDROCK_GATEWAY_ENDPOINT
value: "https://gateway.internal.enterprise.com"
- name: LOG_LEVEL
value: "INFO"
CloudWatch中的统一可观测性与遥测
企业合规性要求绝对的可审计性。当审计员询问代理为什么拒绝特定的事务或工具调用时,您需要跨Okta和AWS的相关日志。
AgentCore可观测性自动捕获网关做出的每一项决策,包括Cedar策略评估、令牌验证状态以及上游模型延迟。这些跟踪数据直接流式传输到Amazon CloudWatch日志和洞察中。通过使用关联ID将CloudWatch遥测数据与Okta系统日志事件结合起来,安全运营团队可以获得对代理行为的端到端可见性。
以下是安全工程师用于审计未经授权的工具调用尝试的示例CloudWatch Insights查询:
fields @timestamp, principalId, resourceId, decision, evaluationReason
| filter service == "AgentCoreGateway" and decision == "Deny"
| sort @timestamp desc
| limit 100
架构对比概览
| 功能特性 | 第一部分:单个受治理的代理 | 第二部分:企业级多代理网格 |
|---|---|---|
| 入口模式 | 直接API端点 | Amazon Bedrock AgentCore网关 |
| 身份提供商 | Okta标准OAuth 2.0 | Okta跨应用访问与令牌兑换 |
| 策略引擎 | 基础IAM角色 | 高级Cedar细粒度策略 |
| 计算层 | AWS Lambda / ECS Fargate | Amazon EKS与无服务器混合架构 |
| 可观测性 | 基础CloudWatch日志 | 统一CloudWatch与Okta审计关联 |
结论
在企业环境中扩展AI代理不再仅仅是提示词工程的问题,而是稳健的身份管理、策略驱动的授权和分布式系统架构的实践。通过将Okta的企业身份联合与Amazon Bedrock AgentCore网关和Cedar策略配对,工程团队可以在不妥协合规性或安全性的情况下,安全地大规模部署自主代理。
在n1n.ai获取免费API密钥