如何通过Amazon EventBridge经SNS获取AWS Parameter Store参数修改用户详情
解决方案
你当前配置的EventBridge事件匹配规则是正确的,已经可以捕获指定参数的创建、更新、删除、版本标签操作。要在通知邮件中加入参数修改者的详情信息,通过配置EventBridge的输入转换器即可实现,无需额外开发,操作步骤如下:
步骤1:确认SSM变更事件包含的用户字段
AWS SSM Parameter Store的变更事件中,所有操作者相关信息都存储在detail.userIdentity字段下,可提取的常用信息如下:
- 操作者ARN
- 所属AWS账号ID
- 身份标识(IAM用户名/角色名)
- 操作源IP地址
- 访问密钥ID(如使用长期密钥访问)
步骤2:配置EventBridge规则输入转换器
- 打开你已创建的EventBridge规则详情页,点击「编辑」,跳转至「选择目标」配置页
- 保留现有SNS主题作为目标,展开「配置输入」下拉菜单,选择输入转换器
- 在「输入路径」输入框中填写需要提取的字段映射,示例:
{ "parameterName": "$.detail.name", "operation": "$.detail.operation", "parameterVersion": "$.detail.version", "operatorArn": "$.detail.userIdentity.arn", "operatorAccount": "$.detail.userIdentity.accountId", "operatorPrincipal": "$.detail.userIdentity.principalId", "sourceIp": "$.detail.sourceIPAddress", "eventTime": "$.time", "region": "$.region" }
- 在「模板」输入框中自定义邮件的内容格式,示例:
【AWS Parameter Store 变更通知】 ================================ 变更时间:<eventTime> 所属区域:<region> 参数名称:<parameterName> 操作类型:<operation> 参数版本:<parameterVersion> -------------------------------- 操作者详情: 操作者ARN:<operatorArn> 所属账号ID:<operatorAccount> 身份标识:<operatorPrincipal> 源IP地址:<sourceIp> ================================
- 保存规则配置即可,后续触发的变更通知邮件会自动填充上述所有字段。
可选进阶方案
如果需要实现更复杂的需求,比如对比参数变更前后的取值、区分操作者是IAM用户还是临时角色,可将EventBridge的目标替换为Lambda函数:在Lambda中解析完整事件,按需调用SSM接口拉取参数历史记录,格式化完成后再调用SNS发送邮件。
内容的提问来源于stack exchange,提问作者Goutham
相关产品推荐
相关产品推荐

