diff --git a/cmd/handler-utils.go b/cmd/handler-utils.go index 8f193324e..6ef1a7050 100644 --- a/cmd/handler-utils.go +++ b/cmd/handler-utils.go @@ -233,10 +233,15 @@ func extractReqParams(r *http.Request) map[string]string { region := globalServerRegion cred := getReqAccessCred(r, region) + principalID := cred.AccessKey + if cred.ParentUser != "" { + principalID = cred.ParentUser + } + // Success. m := map[string]string{ "region": region, - "accessKey": cred.AccessKey, + "principalId": principalID, "sourceIPAddress": handlers.GetSourceIP(r), // Add more fields here. } diff --git a/cmd/notification.go b/cmd/notification.go index ee574e457..070e710a2 100644 --- a/cmd/notification.go +++ b/cmd/notification.go @@ -1368,7 +1368,7 @@ func (args eventArgs) ToEvent(escape bool) event.Event { AwsRegion: args.ReqParams["region"], EventTime: eventTime.Format(event.AMZTimeFormat), EventName: args.EventName, - UserIdentity: event.Identity{PrincipalID: args.ReqParams["accessKey"]}, + UserIdentity: event.Identity{PrincipalID: args.ReqParams["principalId"]}, RequestParameters: args.ReqParams, ResponseElements: respElements, S3: event.Metadata{ @@ -1376,7 +1376,7 @@ func (args eventArgs) ToEvent(escape bool) event.Event { ConfigurationID: "Config", Bucket: event.Bucket{ Name: args.BucketName, - OwnerIdentity: event.Identity{PrincipalID: args.ReqParams["accessKey"]}, + OwnerIdentity: event.Identity{PrincipalID: args.ReqParams["principalId"]}, ARN: policy.ResourceARNPrefix + args.BucketName, }, Object: event.Object{