当前位置: 首页 > 知识库问答 >
问题:

如何为AssumeRole事件配置AWS Cloudwatch Events(以触发SNS通知)

姚俊贤
2023-03-14

我正在尝试配置Cloudwatch事件规则(以触发SNS通知),以便在某人担任特定角色时:

{
  "detail": {
    "eventName": [
      "AssumeRole"
    ],
    "eventSource": [
      "sts.amazonaws.com"
    ],
    "requestParameters": {
      "roleArn": [
        "arn:aws:iam::0000:role/the_role_name"
      ]
    }
  },
  "detail-type": [
    "AWS API Call via CloudTrail"
  ]
}

其中0000是帐户ID,the_role_name是我要提醒的角色。

这无法触发任何通知,但是,当我在Cloudtrail Insights中搜索事件时:

filter eventName = 'AssumeRole'
| filter requestParameters.roleArn =~ 'the_role_name'
| sort @timestamp desc
| display @timestamp, requestParameters.roleSessionName, eventName, requestParameters.roleArn, userAgent, sourceIPAddress

我确实得到了应该触发规则的结果:

requestParameters.roleSessionName eventName   requestParameters.roleArn
my_username                       AssumeRole  arn:aws:iam::0000:role/the_role_name
...

为了尝试简化事情并捕获更广泛的事件集,我还尝试了以下规则(将所有AssumeRole事件捕获到任何角色):

{
  "detail": {
    "eventName": [
      "AssumeRole"
    ]
  },
  "detail-type": [
    "AWS API Call via CloudTrail"
  ]
}

此规则也无法触发。

有没有人对如何配置Cloudwatch事件规则以触发AssumeRole事件有什么想法?

我通读了这个相关的问题(正试图实现类似的目标),但没有解决方案:AWS CloudWatch事件触发STS上的SNS角色假设为交叉帐户

共有2个答案

郑狐若
2023-03-14

据我昨天与之交谈的一位AWS支持代理表示,链接文档也指出,不幸的是,Eventbridge规则(以前的Cloudwatch事件规则)不支持STS事件。

令人困惑的是,sts测试事件模式api实际上会根据有效模式验证您的事件,并且不会给出它是不受支持的服务的任何指示,这可能会导致您走上错误的道路,就像我一样。

希望AWS在将来添加STS事件支持。

https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html

裴卓君
2023-03-14

首先,通过检查规则的监控指标来确保是否调用了事件。它可能已触发,但无法调用目标。在这种情况下,您应该检查IAM策略。

如果未触发,则向Cloudwatch日志的跟踪交付可能会出现问题。确保您在同一区域中创建了跟踪,该跟踪将事件传递到Cloudwatch日志。

我在us-east-1地区有以下规则,效果很好:

{
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "sts.amazonaws.com"
    ],
    "eventName": [
      "AssumeRole"
    ]
  },
  "source": [
    "aws.sts"
  ]
}
 类似资料:
  • 从…起https://spring.io/guides/gs/centralized-configuration/: 您可以强制bean刷新其配置(即从Config Server中提取更新的值),方法是使用Spring Cloud Config@RenewScope注释MessageRestController,然后触发刷新事件。 我们如何触发此刷新事件(对于带有

  • 我有一个表单,其中有一条错误消息,如下例所示: http://codepen.io/anon/pen/dYWyEM?editors=101 重现问题的步骤如下: 打开coDepen链接后, 1)专注于输入领域 2) 按提交按钮 3) 由于首先触发模糊事件,因此首先隐藏错误消息,从而更改提交按钮的位置。因此,点击事件根本没有注册,我需要再次点击以提交表单。 有没有办法先发送提交事件? 我需要检测触发

  • 我正在学习TF并尝试应用一个架构体系来创建: 一个简单的lambda函数 一个SNS话题 让lambda订阅SNS主题 以一定间隔向主题发布消息的Cloud Watch事件 一个Cloud Watch日志组,用于检查lambda是否收到SNS的通知 允许来自SNS的调用的lambda权限 我能够成功地应用它。基础架构看起来非常好(当我通过可视化aws控制台自己创建时,它具有相同的方面) 但云观察事

  • 我希望能够设置一个AWS CloudWatch事件规则,每当我的一个Step函数完成时(成功或失败),该规则将触发SNS主题。我不想对所有的Step函数都执行此操作,但基于通用名称前缀,它们的数量将是不确定的。理想情况下,我希望能够这样做,但在事件模式中似乎不允许使用通配符。有没有创造性的方法来解决这个问题?

  • 使用mui.trigger()方法可以动态触发特定DOM元素上的事件。 .trigger( element , event , data ) element Type: Element 触发事件的DOM元素 event Type: String 事件名字,例如:'tap'、'swipeleft' data Type: Object 需要传递给事件的业务参数 示例 自动触发按钮的点击事件: var

  • 问题内容: 我的页面上有一个超链接。我正在尝试自动执行对超链接的多次单击,以进行测试。有什么方法可以使用JavaScript模拟超链接的50次点击? 我正在寻找JavaScript中的onClick事件触发器。 问题答案: 单击HTML元素: 只需执行。大多数主流浏览器都支持此功能。 要多次重复单击: 将ID添加到元素以唯一地选择它: 并通过for循环在JavaScript代码中调用该方法: