Registro de llamadas a la API del Centro de identidades de IAM SCIM con AWS CloudTrail - AWS IAM Identity Center

Registro de llamadas a la API del Centro de identidades de IAM SCIM con AWS CloudTrail

El Centro de identidades de IAM SCIM se integra con AWS CloudTrail, un servicio que proporciona un registro de las acciones que lleva a cabo un usuario, un rol o un Servicio de AWS. CloudTrail captura las llamadas a la API de SCIM como eventos. Con la información recopilada por CloudTrail, puede determinar la información sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud, entre otros. Para más información sobre CloudTrail, consulte la Guía del usuario de AWS CloudTrail.

Cuando se produce una actividad de eventos compatible en SCIM, la actividad se registra en un evento de CloudTrail junto con otros eventos de Servicio de AWS en Historial de eventos. Puede ver, buscar y descargar eventos recientes en su Cuenta de AWS. Los eventos del SCIM tendrán eventSource establecido como identitystore-scim.amazonaws.com. Para obtener más información, consulte Trabajar con el historial de eventos de CloudTrail.

nota

CloudTrail se habilita en su Cuenta de AWS cuando se crea la cuenta. Sin embargo, es posible que tenga que rotar su token de acceso para poder ver los eventos de SCIM.

Para obtener más información, consulte Rotar un token de acceso.

SCIM admite el registro de las siguientes operaciones como eventos en CloudTrail:

Ejemplos

A continuación, se muestran algunos ejemplos de eventos de CloudTrail.

Ejemplo 1: Evento de una llamada de CreateUser exitosa.

{ "eventVersion": "1.10", "userIdentity": { "type": "WebIdentityUser", "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", "name": { "familyName": "HIDDEN_DUE_TO_SECURITY_REASONS", "givenName": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "active": true, "userName": "HIDDEN_DUE_TO_SECURITY_REASONS" }, "tenantId": "xxxx" }, "responseElements": { "displayName": "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" }, "requestID": "xxxx", "eventID": "xxxx", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "tlsDetails": { "clientProvidedHostHeader": "scim.us-east-1.amazonaws.com" } }

Ejemplo 2: El evento de PatchGroup generó un mensaje de error de Missing path in PATCH request debido a la falta de una ruta.

{ "eventVersion": "1.10", "userIdentity": { "type": "WebIdentityUser", "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" } }

Ejemplo 3: El evento de una llamada de CreateGroup genera un mensaje de error de Duplicate GroupDisplayName, ya que el nombre del grupo que se intenta crear ya existe.

{ "eventVersion": "1.10", "userIdentity": { "type": "WebIdentityUser", "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" } }

Ejemplo 4: El evento de una llamada de PatchUserque genera un mensaje de error de List attribute emails exceeds allowed limit of 1 error. Los usuarios solo pueden tener una dirección de correo electrónico.

{ "eventVersion": "1.10", "userIdentity": { "type": "WebIdentityUser", "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" } }

Mensajes de error comunes

Los siguientes son los mensajes de error de validación más comunes que puede recibir en los eventos de CloudTrail para las llamadas a la API del Centro de identidades de IAM SCIM:

  • El correo electrónico con el atributo de la lista supera el límite permitido de 1

  • El límite permitido de direcciones de atributos de lista es de 1

  • Se detectó un error de validación: el valor de '*name.familyName*' no cumplía la restricción: el miembro debe cumplir el patrón de expresión regular: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+

  • Se detectaron dos errores de validación: el valor de 'name.familyName' no pudo cumplir la restricción: el miembro debe tener una longitud mayor o igual a 1; el valor de 'name.familyName' no pudo cumplir la restricción: el miembro debe cumplir el patrón de expresión regular: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+

  • Se detectaron dos errores de validación: el valor de 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager.value' no cumplía la restricción: el miembro debe tener una longitud mayor o igual a 1; el valor en 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager.value' no pudo cumplir la restricción: el miembro debe cumplir con la expresión regular patrón: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+",

  • JSON no válido de RequestBody

  • Formato de filtro no válido

Para obtener más información sobre cómo solucionar los errores de aprovisionamiento del Centro de identidades de IAM SCIM, consulte este artículo de AWS re:Post.