问题描述
在使用 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 权限问题。如果还有其他问题,请随时提问。
正文完