API网关的ARN角色,用于启用日志错误

时间:2017-11-27 13:46:28

标签: amazon-web-services aws-api-gateway amazon-iam amazon-cloudwatch

我无法通过提供新的IAM角色启用对AWS API Gateway中的CloudWatch日志的写访问权。

我查了几个教程,检查了一切。甚至将AdministratorAccess策略附加到我的IAM角色,并检查The identity provider(s) apigateway.amazonaws.com是否为可信实体。

但是当我尝试在API网关中启用日志时仍然失败:

  

角色ARN没有设置为API网关的必需权限

4 个答案:

答案 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