我无法通过提供新的IAM角色启用对AWS API Gateway中的CloudWatch日志的写访问权。
我查了几个教程,检查了一切。甚至将AdministratorAccess策略附加到我的IAM角色,并检查The identity provider(s) apigateway.amazonaws.com
是否为可信实体。
但是当我尝试在API网关中启用日志时仍然失败:
角色ARN没有设置为API网关的必需权限
答案 0 :(得分:3)
我今天遇到这个问题,因为我正在尝试设置一个我已经授予这些权限的用户。通过“创建角色”向导并选择API网关服务解决了这个问题,该服务创建了具有正确权限的IAM arn。
Select your use case
API Gateway
Allows API Gateway to push logs to CloudWatch Logs.
答案 1 :(得分:1)
经过无奈,我听了亚历克斯的建议,然后放弃了一会儿。
最终,IAM的“内容”传播了,而“启用日志”的请求完全成功了。
答案 2 :(得分:1)
对我来说,以下AWS
配置解决了此问题。
使用以下配置在角色中编辑了“ 信任关系”:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": ["apigateway.amazonaws.com","lambda.amazonaws.com"]
},
"Action": "sts:AssumeRole"
}
]
}
使用以下内容编辑政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
以下是有关策略配置的更详细说明:policy description
答案 3 :(得分:1)
如果您想让自己的角色拥有的特权最少,这是添加权限的最低要求
CloudWatchRolePolicy:
Type: 'AWS::IAM::ManagedPolicy'
Properties:
ManagedPolicyName: MyAPIGatewayRolePolicy
PolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: AllowWriteMetricsFromCloudWatch
Effect: Allow
Action:
- "logs:CreateLogGroup"
- "logs:CreateLogStream"
- "logs:DescribeLogGroups"
- "logs:DescribeLogStreams"
- "logs:PutLogEvents"
- "logs:GetLogEvents"
- "logs:FilterLogEvents"
Resource: "*" # This should be scoped too