最新n1n v2.0.1 正式上线!企业级大模型接口聚合平台 (LLM API Gateway),为您接入 500+ AI Models,价格低至 1 折, 立即尝试

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

作者
  • avatar
    姓名
    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.0Okta跨应用访问与令牌兑换
策略引擎基础IAM角色高级Cedar细粒度策略
计算层AWS Lambda / ECS FargateAmazon EKS与无服务器混合架构
可观测性基础CloudWatch日志统一CloudWatch与Okta审计关联

结论

在企业环境中扩展AI代理不再仅仅是提示词工程的问题,而是稳健的身份管理、策略驱动的授权和分布式系统架构的实践。通过将Okta的企业身份联合与Amazon Bedrock AgentCore网关和Cedar策略配对,工程团队可以在不妥协合规性或安全性的情况下,安全地大规模部署自主代理。

在n1n.ai获取免费API密钥