You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lambda调用CreateAPIKeyRequest触发权限错误,请求解决方案

解决Lambda调用CreateApiKey权限不足问题

问题核心

你遇到的错误明确指向:Lambda的执行角色(arn:aws:sts::XXXXXXXXXX:assumed-role/createAPIKey-role-s4puynzg/createAPIKey)缺少身份型权限策略,无法执行apigateway:POST动作访问资源arn:aws:apigateway:us-east-1::/apikeys。你之前配置的基于资源的权限不适用这个场景,API Gateway的CreateApiKey操作需要给Lambda的执行角色附加身份型权限。

具体解决步骤

  • 登录AWS控制台,进入IAM服务,找到Lambda对应的执行角色createAPIKey-role-s4puynzg。
  • 给该角色添加一条自定义权限策略,内容如下:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "apigateway:POST",
            "Resource": "arn:aws:apigateway:us-east-1::/apikeys"
        }
    ]
}
  • 保存策略后,重新测试Lambda函数。

额外检查项

  • 确认策略中的区域us-east-1和代码中指定的区域完全一致,避免区域不匹配导致权限失效。
  • 核对资源ARN的格式,确保没有拼写错误(比如多余或缺失的斜杠)。
  • 若需要更灵活的权限(比如管理所有API密钥),可将Action改为apigateway:*、Resource改为arn:aws:apigateway:us-east-1::/apikeys/*,但建议遵循最小权限原则,只授予必要动作。

错误提示原文:
User: arn:aws:sts::XXXXXXXXXX:assumed-role/createAPIKey-role-s4puynzg/createAPIKey is not authorized to perform: apigateway:POST on resource: arn:aws:apigateway:us-east-1::/apikeys because no identity-based policy allows the apigateway:POST action (Service: AmazonApiGateway;

你的代码片段:

AmazonApiGateway client = AmazonApiGatewayClientBuilder.standard().withRegion("us-east-1").build();
CreateApiKeyRequest keyReq = new CreateApiKeyRequest();
keyReq.setName("KEY_NAME");
keyReq.setDescription("KEY_DESC");
keyReq.setEnabled(true);

CreateApiKeyResult keyRes = client.createApiKey(keyReq);

内容的提问来源于stack exchange,提问作者WApp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:36:09