gpt4 book ai didi

amazon-web-services - 资源处理程序返回消息 : "invalid request provided: AWS::Logs::MetricFilter"

转载 作者:行者123 更新时间:2023-12-03 07:16:24 25 4
gpt4 key购买 nike

我正在尝试在我的日志存档帐户中设置一个系统,当使用 RootTest IAM 角色访问我的 QA 帐户时,该系统会向我发送电子邮件通知。

为此,在我的日志存档帐户中,我使用 CloudFormation 创建一个名为 CloudTrailLogs 的日志组,以及一个将 CloudTrail 日志事件传送到该日志组的 CloudTrail 跟踪。我还想创建一个指标过滤器,用于在 CloudTrailLogs 日志组中的日志事件中搜索 eventName 字段设置为 AssumeRole 且 requestParameters.roleArn 字段设置为 arn:aws:iam::[QAAccountID]:role/RootTest 的日志事件。当指标过滤器发现一个或多个匹配的日志事件时,它将触发 CloudWatch 警报。最后,我将创建一个 SNS 主题和订阅,以便在触发 CloudWatch 警报时向指定的电子邮件地址发送电子邮件通知。

不幸的是,当我部署我拥有的cloudformation模板时,它给出了以下错误:

Resource handler returned message: "invalid request provided: AWS::Logs::MetricFilter"

尝试创建指标筛选器时部署出错。不知道我哪里出错了。带“[]”的内容是为了以防万一而进行的编辑。到目前为止,这是我的模板:

AWSTemplateFormatVersion: 2010-09-09
Resources:
LogGroup:
Type: AWS::Logs::LogGroup
Properties:
LogGroupName: CloudTrailLogs
Trail:
Type: AWS::CloudTrail::Trail
Properties:
S3BucketName: [Bucket Name]
CloudWatchLogsLogGroupArn: !Ref LogGroup
CloudWatchLogsRoleArn: !GetAtt CloudWatchLogsRole.Arn
CloudWatchLogsRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: cloudtrail.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/CloudWatchLogsFullAccess
MetricFilter:
Type: AWS::Logs::MetricFilter
Properties:
LogGroupName: !Ref LogGroup
FilterPattern: "{ $.eventName = 'AssumeRole' && $.requestParameters.roleArn = 'arn:aws:iam::[QAAccountID]:role/RootTest' }"
MetricTransformations:
- MetricValue: 1
MetricNamespace: RootTestAccess
MetricName: RootTestAccess
Alarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: RootTestAccessAlarm
ComparisonOperator: GreaterThanThreshold
EvaluationPeriods: 1
MetricName: RootTestAccess
Namespace: RootTestAccess
Period: 60
Statistic: Sum
Threshold: 1
ActionsEnabled: true
AlarmActions:
- !Ref SNS
SNS:
Type: AWS::SNS::Topic
Properties:
DisplayName: RootTestAccessNotification
TopicName: RootTestAccessNotification
Subscription:
Type: AWS::SNS::Subscription
Properties:
Protocol: email
Endpoint: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c7aabea2aaa6aeab87a2aaa6aeabe9a4a8aa" rel="noreferrer noopener nofollow">[email protected]</a>
TopicArn: !Ref SNS

最佳答案

你的过滤模式有问题。首先,您需要将这两个术语单独括在方括号 () 中。您还需要在值周围使用 (") 双引号,而不是单引号。因此模板中的 FilterPattern 键应如下所示:

FilterPattern: '{($.eventName = "AssumeRole") && ($.requestParameters.roleArn = "arn:aws:iam::012345678909:role/RootTest")}'

关于amazon-web-services - 资源处理程序返回消息 : "invalid request provided: AWS::Logs::MetricFilter",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75051494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com