Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 向发布到CloudWatch的API网关日志添加保留策略_Amazon Web Services_Amazon Cloudformation_Aws Api Gateway_Amazon Cloudwatch - Fatal编程技术网

Amazon web services 向发布到CloudWatch的API网关日志添加保留策略

Amazon web services 向发布到CloudWatch的API网关日志添加保留策略,amazon-web-services,amazon-cloudformation,aws-api-gateway,amazon-cloudwatch,Amazon Web Services,Amazon Cloudformation,Aws Api Gateway,Amazon Cloudwatch,我必须将保留策略添加到API网关Cloudwatch日志中,因此我无法使用aws提供的策略,即arn:aws:iam::aws:policy/service role/AmazonaPiGatewayPushToCloudWatch日志 因此,我使用自定义策略创建了自己的角色: ApiGatewayCloudWatchLogsRole: Type: 'AWS::IAM::Role' DependsOn: APIGFunctionLogGroup Properties: AssumeRoleP

我必须将保留策略添加到API网关Cloudwatch日志中,因此我无法使用aws提供的策略,即arn:aws:iam::aws:policy/service role/AmazonaPiGatewayPushToCloudWatch日志

因此,我使用自定义策略创建了自己的角色:

ApiGatewayCloudWatchLogsRole:
Type: 'AWS::IAM::Role'
DependsOn: APIGFunctionLogGroup
Properties:
  AssumeRolePolicyDocument:
    Version: 2012-10-17
    Statement:
      - Effect: Allow
        Principal:
          Service:
            - apigateway.amazonaws.com
        Action: 'sts:AssumeRole'
  Path: / 
  Policies:
    - PolicyName: APIGatewayPushLogsPolicy
      PolicyDocument:
        Version: 2012-10-17
        Statement:
            Effect: Allow
            Action:
              - 'logs:CreateLogStream'
              - 'logs:PutLogEvents'
              - 'logs:DescribeLogGroups'
              - 'logs:DescribeLogStreams'
              - 'logs:GetLogEvents'
              - 'logs:FilterLogEvents'
            Resource: '*'
然后创建保留期为的日志组:

APIGFunctionLogGroup:
Type: 'AWS::Logs::LogGroup'
Properties:
  RetentionInDays: 30
  LogGroupName: !Join 
    - ''
    - - API-Gateway-Execution-Logs_
      - !Ref MyRestApi
并将上述创建的角色传递给AWS::ApiGateway::Account

ApiGatewayAccount:
Type: 'AWS::ApiGateway::Account'
DependsOn: APIGFunctionLogGroup
Properties:
  CloudWatchRoleArn: !GetAtt 
    - ApiGatewayCloudWatchLogsRole
    - Arn
但在部署API网关时,我得到的错误如下:


我也有信任策略,但没有创建API网关帐户。

如果您自己创建日志组,在API网关创建之前,您应该能够使用现有的策略/服务角色。

如果您自己创建日志组,在APIgateway之前,您应该能够使用现有的策略/服务角色。

我尝试的方式有什么问题?我无法理解它不工作的原因。这可能是因为CloudFormation正在检查角色拥有的权限,并且不允许它工作。通过手动创建角色并配置apigateway以通过控制台使用角色进行确认。我尝试的方式有什么问题?我无法理解它不工作的原因。这可能是因为CloudFormation正在检查角色拥有的权限,并且不允许它工作。通过手动创建角色并通过控制台配置apigateway以使用角色进行确认。