如何将AWS S3事件通知中的principalId转换为操作用户名
如何将S3事件通知userIdentity中的principalId转换为操作用户名称
S3事件通知返回的principalId格式会根据触发操作的身份类型不同发生变化,你可以按照以下规则对应转换:
- 如果是AWS账号根用户触发操作:
principalId直接是对应AWS账号ID,对应的身份就是该账号的根用户。 - 如果是IAM永久用户触发操作:
principalId格式为IAM用户唯一ID:自定义会话名,你只需提取冒号前的ID部分,调用IAM接口匹配用户的UserId字段即可获取用户名。
你可以直接用AWS CLI执行以下查询命令:aws iam list-users --query "Users[?UserId=='替换为冒号前的ID段'].UserName" --output text - 如果是IAM角色/临时身份触发操作:
principalId格式为IAM角色唯一ID:自定义会话名,提取冒号前的ID部分,调用IAM接口匹配角色的RoleId字段即可获取角色名称。
对应的AWS CLI查询命令如下:aws iam list-roles --query "Roles[?RoleId=='替换为冒号前的ID段'].RoleName" --output text - 如果是AWS服务触发操作:
principalId会直接显示对应服务的服务主体标识(例如s3.amazonaws.com),该标识本身就是对应的服务名称,无需额外转换。
注意:如果操作是跨账号触发的,你需要到
principalId所属的AWS账号内执行上述查询,才能获取到对应的身份名称。
内容的提问来源于stack exchange,提问作者Pawan Rai
相关产品推荐
相关产品推荐

