API Gateway 部署中的 IAM 权限问题

68次阅读
没有评论

问题描述

在使用 AWS 的 API Gateway 进行部署时,遇到了以下错误提示:xxxx is not authorized to perform: apigateway:TagResource on resource xxx。但是在 IAM 控制台中查看可用权限时,并没有找到这样的权限。用户想知道如何解决这个问题,是否需要添加其他权限。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据最佳回答,以下是解决该问题的步骤:
1. 在 IAM 策略中,移除 Condition 块,并将错误中指定的资源名称明确添加到 Resource 中。
2. 在 Action 块中添加 tagResources 权限。
3. 重新尝试部署并查看结果。

以下是一个示例 IAM 策略:

{
  "Effect": "Allow",
  "Action": [
    "apigateway:POST",
    "apigateway:TagResource"
  ],
  "Resource": [
    "arn:aws:apigateway:*::/apis",
    "arn:aws:apigateway:*::/apis/*/stages"
  ],
  "Condition": {
    "StringEquals": {
      "aws:RequestTag/WbyProjectName": [
        "webiny-js"
      ]
    }
  }
}

方案2

根据用户评论,还有另一种解决方法:
1. 将所有的 "apigateway:DELETE", "apigateway:PUT", "apigateway:PATCH", "apigateway:POST", "apigateway:GET" 替换为 "apigateway:*"
2. 重新尝试部署并查看结果。

请注意,这种方法使用了通配符来代替具体的权限,可能会增加一些安全风险。如果需要更精确地指定所需的权限,建议使用方案1中的方法。

希望以上解决方案能帮助到您解决 IAM 权限问题。如果还有其他问题,请随时提问。

正文完