AI Agent 部署到生产环境后,权限和安全怎么管?
AI Agent 跟传统应用有个根本区别:行为不完全可预测。传统应用写了什么代码就执行什么,Agent 根据 prompt 和上下文动态决策。 所以安全策略不能只靠「审查代码」,需要「运行时约束 + 事后审计」。 这篇讲四个层面的防护方案,全部基于亚马逊云科技的原生服务。 给 Agent 配专用 IAM Role,权限遵循最小原则。 举例:一个只需要调 Bedrock 推理的 Agent: 要点: Agent 运行在私有子网,不暴露公网。通过 VPC Endpoint 访问 Bedrock、S3 等服务: 好处:即使 Agent 被 prompt injection 攻击尝试访问外部 URL,网络层直接拒绝。 Agent 的每个 API 调用都被 CloudTrail 记录。配合 CloudWatch 做实时告警: 开启 Bedrock Model Invocation Logging,记录每次模型调用的详细信息。 在模型层面加安全策略: 调用时传入 每层独立工作,任何一层被绕过,其他层仍然有效。 从「信任 Agent 的代码」转向「约束 Agent 的行为」。 Agent 可能做任何它有权限做的事。安全策略要假设它会,然后用技术手段确保它只做你允许的事。部署了一个 AI Agent,给了它调模型的权限、读 S3 的权限、写数据库的权限。上线后发现它在凌晨 3 点自己跑去扫描了一遍 S3 bucket 列表。不是被攻击了,是 Agent「觉得有必要」。怎么防止这种事?
第一层:IAM 最小权限
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["bedrock:InvokeModel"],
"Resource": "arn:aws-cn:bedrock:*::foundation-model/anthropic.claude-*"
}]
}bedrock:*)第二层:VPC 网络隔离
第三层:CloudTrail + CloudWatch 审计
第四层:Bedrock Guardrails
guardrailIdentifier:response = client.invoke_model(
modelId='anthropic.claude-3-sonnet-20240229-v1:0',
guardrailIdentifier='my-guardrail',
guardrailVersion='1',
body=request_body
)四层组合
IAM(权限) + VPC(网络) + CloudTrail(审计) + Guardrails(内容)关键思维
🔗 Amazon Bedrock:https://aws.amazon.com/cn/bedrock/
🔗 Bedrock Guardrails:https://aws.amazon.com/cn/bedrock/guardrails/
🔗 CloudTrail:https://aws.amazon.com/cn/cloudtrail/