Logging IAM Identity Center SCIM API calls with AWS CloudTrail
IAM Identity Center SCIM is integrated with AWS CloudTrail, a service that provides a record of actions taken by a user, role, or an AWS service. CloudTrail captures API calls for SCIM as events. Using the information collected by CloudTrail, you can determine the information about the requested action, the date and time of the action, request parameters, and so on. To learn more about CloudTrail, see AWS CloudTrail User Guide.
Note
CloudTrail is enabled on your AWS account when you create the account. However, you may need to rotate your access token to be able to see events from SCIM.
For more information, see Rotate an access token.
SCIM supports logging for the following operations as events in CloudTrail:
Examples
The following are some examples of CloudTrail events.
Example 1: Event from a successful CreateUser
call.
{
"eventVersion": "1.10",
"userIdentity": {
"type": "Unknown",
"accountId": "123456789012",
"accessKeyId": "xxxx"
},
"eventTime": "xxxx",
"eventSource": "identitystore-scim.amazonaws.com",
"eventName": "CreateUser",
"awsRegion": "us-east-1",
"sourceIPAddress": "xx.xxx.xxx.xxx",
"userAgent": "Go-http-client/2.0",
"requestParameters": {
"httpBody": {
"displayName": "HIDDEN_DUE_TO_SECURITY_REASONS",
"schemas" : [
"HIDDEN_DUE_TO_SECURITY_REASONS"
],
"name": {
"familyName": "HIDDEN_DUE_TO_SECURITY_REASONS",
"givenName": "HIDDEN_DUE_TO_SECURITY_REASONS"
},
"active": true,
"userName": "HIDDEN_DUE_TO_SECURITY_REASONS"
},
"tenantId": "xxxx"
},
"responseElements": {
"meta" : {
"created" : "Oct 10, 2024, 1:23:45 PM",
"lastModified" : "Oct 10, 2024, 1:23:45 PM",
"resourceType" : "User"
},
"displayName" : "HIDDEN_DUE_TO_SECURITY_REASONS",
"schemas" : [
"HIDDEN_DUE_TO_SECURITY_REASONS"
],
"name": {
"familyName": "HIDDEN_DUE_TO_SECURITY_REASONS",
"givenName": "HIDDEN_DUE_TO_SECURITY_REASONS"
},
"active": true,
"id" : "c4488478-a0e1-700e-3d75-96c6bb641596",
"userName": "HIDDEN_DUE_TO_SECURITY_REASONS"
},
"requestID": "xxxx",
"eventID": "xxxx",
"readOnly": false,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "123456789012",
"eventCategory": "Management",
"tlsDetails": {
"clientProvidedHostHeader": "scim.us-east-1.amazonaws.com"
}
}
Example 2: Event from PatchGroup
resulting in
Missing path in PATCH request
error message due to missing
path.
{
"eventVersion": "1.10",
"userIdentity": {
"type": "Unknown",
"accountId": "123456789012",
"accessKeyId": "xxxx"
},
"eventTime": "xxxx",
"eventSource": "identitystore-scim.amazonaws.com",
"eventName": "PatchGroup",
"awsRegion": "us-east-1",
"sourceIPAddress": "xxx.xxx.xxx.xxx",
"userAgent": "Go-http-client/2.0",
"errorCode": "ValidationException",
"errorMessage": "Missing path in PATCH request",
"requestParameters": {
"httpBody": {
"operations": [
{
"op": "REMOVE",
"value": "HIDDEN_DUE_TO_SECURITY_REASONS"
}
],
"schemas": [
"HIDDEN_DUE_TO_SECURITY_REASONS"
]
},
"tenantId": "xxxx",
"id": "xxxx"
},
"responseElements": null,
"requestID": "xxxx",
"eventID": "xxxx",
"readOnly": false,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "123456789012",
"eventCategory": "Management",
"tlsDetails": {
"clientProvidedHostHeader": "scim.us-east-1.amazonaws.com"
}
}
Example 3: Event from CreateGroup
call resulting in
Duplicate GroupDisplayName
error message as the name of the group
that's trying to be created exists.
{
"eventVersion": "1.10",
"userIdentity": {
"type": "Unknown",
"accountId": "123456789012",
"accessKeyId": "xxxx"
},
"eventTime": "xxxx",
"eventSource": "identitystore-scim.amazonaws.com",
"eventName": "CreateGroup",
"awsRegion": "us-east-1",
"sourceIPAddress": "xxx.xxx.xxx.xxx",
"userAgent": "Go-http-client/2.0",
"errorCode": "ConflictException",
"errorMessage": "Duplicate GroupDisplayName",
"requestParameters": {
"httpBody": {
"displayName": "HIDDEN_DUE_TO_SECURITY_REASONS"
},
"tenantId": "xxxx"
},
"responseElements": null,
"requestID": "xxxx",
"eventID": "xxxx",
"readOnly": false,
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "123456789012",
"eventCategory": "Management",
"tlsDetails": {
"clientProvidedHostHeader": "scim.us-east-1.amazonaws.com"
}
}
Example 4: Event from PatchUser
call resulting in an
List attribute emails exceeds allowed limit of 1 error
error
message. Users can only have one email address.
{ "eventVersion": "1.10", "userIdentity": { "type": "Unknown", "accountId": "123456789012", "accessKeyId": "xxxx" }, "eventTime": "xxxx", "eventSource": "identitystore-scim.amazonaws.com", "eventName": "PatchUser", "awsRegion": "us-east-1", "sourceIPAddress": "xxx.xxx.xxx.xxx", "userAgent": "Go-http-client/2.0", "errorCode": "ValidationException", "errorMessage": "List attribute emails exceeds allowed limit of 1", "requestParameters": { "httpBody": { "operations": [ { "op": "REPLACE", "path": "emails", "value": "HIDDEN_DUE_TO_SECURITY_REASONS" } ], "schemas": [ "HIDDEN_DUE_TO_SECURITY_REASONS" ] }, "tenantId": "xxxx", "id": "xxxx" }, "responseElements": null, "requestID": "xxxx", "eventID": "xxxx", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "clientProvidedHostHeader": "scim.us-east-1.amazonaws.com" } }
Common Error Messages
The following are common validation error messages you can receive in CloudTrail events for IAM Identity Center SCIM API calls:
-
List attribute email exceeds allowed limit of 1
-
List attribute addresses allowed limit of 1
-
1 validation errors detected: Value at '*name.familyName*' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+
-
2 validation errors detected: Value at 'name.familyName' failed to satisfy constraint: Member must have length greater than or equal to 1; Value at 'name.familyName' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+
-
2 validation errors detected: Value at 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager.value' failed to satisfy constraint: Member must have length greater than or equal to 1; Value at 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager.value' failed to satisfy constraint: Member must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+",
-
Invalid JSON from RequestBody
-
Invalid Filter format
For more information on troubleshooting IAM Identity Center SCIM provisioning errors, see this AWS re:Post article