amazon-web-services - 如何为 AssumeRole 事件配置 AWS Cloudwatch 事件(以触发 SNS 通知)
问题描述
我正在尝试为某人担任特定角色时配置 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 Events trigger SNS on STS roletaking for cross account
解决方案
首先通过检查规则的监控指标来确定事件是否被调用。有可能它被触发了,但它无法调用目标。在这种情况下,您应该检查您的 IAM 策略。
如果未触发,则向 Cloudwatch Logs 的跟踪传递可能存在问题。确保您在同一区域中创建了一条跟踪,它将事件传送到 Cloudwatch Logs。
我在 us-east-1 地区有以下规则,效果很好:
{
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"sts.amazonaws.com"
],
"eventName": [
"AssumeRole"
]
},
"source": [
"aws.sts"
]
}
推荐阅读
- javascript - MIxins 在 VueJS 中不起作用
- php - 不允许在 wordpress 插件的其他函数中调用函数?
- c# - SerialDevice C# 创建自定义起始字节
- android - 从 android 应用程序调用异步 Firebase 函数时出现“内部”异常
- apache - AWS服务器上新安装的Apache-Tomcat,我如何从外部访问
- react-native - React-native watchman 不再工作了
- java - 如何从 Sqlite 数据库中的多个列中搜索字符串并在列表视图中返回结果?
- python - 仅使用 OpenSSL 解密在 Python 中加密的文件
- html - 无法使用 Pro 许可证在占位符中显示 Font Awesome 灯图标
- c++ - 斐波那契数列更快,但起始数字不同 (F[n]=F[n-1]+F[n-2])