Присоединить роль к ApiGateway, который может записывать логи в CloudWatch через Cloudformation - PullRequest
0 голосов
/ 29 мая 2018

Привет! Мне нужно включить журналы cloudwatch для API Gateway.Мы используем облачную информацию для описания инфраструктуры.Как сказано в документации Мне нужно создать роль, в моем случае я создал такую ​​роль:

  ApiGatewayCloudWatchLogsRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Statement:
        -
          Action:
            - "sts:AssumeRole"
          Effect: "Allow"
          Principal:
            Service:
              - "apigateway.amazonaws.com"
        Version: '2012-10-17'
      Path: /
      Policies:
        -
          PolicyName: 'ApiGatewayLogsPolicy'
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - "logs:*"
                Resource:
                  - "arn:aws:logs:::*"

, а затем мне нужно присоединить эту роль к учетной записи шлюза API:

  ApiGatewayAccount:
    Type: AWS::ApiGateway::Account
    Properties:
      CloudWatchRoleArn: !GetAtt ApiGatewayCloudWatchLogsRole.Arn

в результате я получаю такую ​​ошибку при создании стека:

The role ARN does not have required permissions set to API Gateway

Я ищу в интернете и во всех темах люди предлагают добавить Доверенную политику с apigateway.amazonaws.com принципалом.Но я уже указал это и все еще получаю это сообщение об ошибке.

1 Ответ

0 голосов
/ 10 октября 2018

Наконец-то я заработал, используя одну из управляемых политик AWS.

ApiGatewayCloudWatchLogsRole:
Type: AWS::IAM::Role
Properties:
  AssumeRolePolicyDocument:
    Statement:
    -
      Action:
        - "sts:AssumeRole"
      Effect: "Allow"
      Principal:
        Service:
          - "apigateway.amazonaws.com"
    Version: '2012-10-17'
  Path: /
  ManagedPolicyArns:
    - arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs
...