Bedrock Runtime: InvokeModel, https response error StatusCode: 403, RequestID: 2...

2026年02月28日 16:44 状态: processing

🚨 错误信息

InvokeModel: operation error Bedrock Runtime: InvokeModel, https response error StatusCode: 403, RequestID: 2ffe2fd6-d004-4f25-a7ea-569ad5f0e3cf, api error UnrecognizedClientException: The security token included in the request is invalid.(request id: 2026022816424477770901E41s5rs7) (request id: 202602280842434589434901JbbVzUw)

🤖 AI解决方案

报错分析报告

1. 错误翻译



原文:The security token included in the request is invalid.
译文:请求中包含的安全令牌无效。

2. 原因分析


  • 根本原因:调用Bedrock Runtime的InvokeModel时,请求携带的AWS安全令牌(如访问密钥、会话令牌)无效或已过期。

  • 发生位置:AWS Bedrock服务的身份验证环节,具体为InvokeModel操作的HTTPS请求头中的认证信息错误。
  • 3. 解决方案


    python

    Python示例:用boto3正确配置凭证并调用InvokeModel


    import boto3
    import json

    优先从环境变量/IAM角色获取凭证(避免硬编码)


    bedrock = boto3.client("bedrock-runtime", region_name="us-east-1")

    try:
    response = bedrock.invoke_model(
    modelId="your-model-id", # 替换为实际模型ID
    contentType="application/json",
    accept="application/json",
    body=json.dumps({"input": "测试内容"})
    )
    print(response["body"].read())
    except Exception as e:
    print(f"错误详情:{str(e)}")

    修复步骤

  • 检查AWS凭证有效性:aws sts get-caller-identity(需安装AWS CLI);

  • 若凭证过期/错误,重新配置:aws configure 或更新环境变量(AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY/AWS_SESSION_TOKEN);

  • 优先使用IAM角色(如EC2/EKS实例角色)自动获取临时凭证,避免硬编码。
  • 4.️ 预防措施


  • 最佳实践1:定期轮换AWS访问密钥(每90天),使用临时会话令牌(STS)替代长期密钥;

  • 最佳实践2:通过IAM角色授权服务访问权限,而非在代码中写死凭证。

  • 推荐工具:AWS CLI(aws configure list查凭证状态)、IAM Access Analyzer(监控凭证滥用)。