AWS CloudTrail を使用した IAM Identity Center SCIM API コールのログ記録
IAM Identity Center は、ユーザー、ロール、または AWS のサービスによって実行されるアクションの記録を提供するサービスである AWS CloudTrail と統合されています。CloudTrail は、SCIM の API コールをイベントとしてキャプチャします。CloudTrail によって収集される情報を使用することで、リクエストされたアクション、アクションの日付と時刻、リクエストパラメータなどに関する情報を確認できます。CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。
サポートされるイベントアクティビティが SCIM で発生すると、そのアクティビティは [イベント履歴] にある他の AWS のサービスイベントと共に CloudTrail イベントに記録されます。最近のイベントは、AWS アカウント で表示、検索、ダウンロードできます。SCIM からのイベントでは、eventSource
が identitystore-scim.amazonaws.com
として設定されます。詳細については、「CloudTrail イベント履歴の操作」を参照してください。
注記
CloudTrail は、AWS アカウントを作成すると、その中で有効になります。ただし、SCIM からのイベントを表示できるようにするには、アクセストークンをローテーションする必要があるかもしれません。
詳細については、「アクセストークンをローテーションする」を参照してください。
SCIM は、以下のオペレーションを CloudTrail のイベントとして記録するログをサポートしています。
例
以下に、CloudTrail イベントの例を示します。
例 1: 成功した CreateUser
呼び出しからのイベント。
{
"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"
}
}
例 2: パスが見つからないため Missing path in PATCH request
エラーメッセージが表示される PatchGroup
からのイベント。
{
"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"
}
}
例 3: 作成しようとするグループの名前がすでに存在するため、Duplicate GroupDisplayName
エラーメッセージが表示される CreateGroup
の呼び出しからのイベント。
{
"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"
}
}
例 4: List attribute emails exceeds allowed limit of 1 error
エラーメッセージが表示される PatchUser
呼び出しからのイベント。ユーザーは E メールアドレスを 1 つだけ持つことができます。
{ "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" } }
一般的なエラーメッセージ
IAM Identity Center SCIM API コールの CloudTrail イベントで受信できる一般的な検証エラーメッセージを次に示します。
-
「
リスト属性の E メールが 1 件の上限を超えています
」 -
「
リスト属性のアドレスは、1 つまでに制限されています
」 -
「
1 つの検証エラーが検出されました: '*name.familyName*' の値が制約を満たしませんでした: メンバー名は次の正規表現パターンを満たす必要があります: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+
」 -
「
2 つの検証エラーが検出されました: 'name.familyName' の値が制約を満たしませんでした: メンバー名の長さは 1 以上である必要があります。 'name.familyName' の値が制約を満たしませんでした: メンバー名は次の正規表現パターンを満たす必要があります: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+
」 -
「
2 つの検証エラーが検出されました: 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager.value' の値が制約を満たしませんでした: メンバー名の長さは 1 以上である必要があります。 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User.manager.value' の値が制約を満たしませんでした: メンバー名は次の正規表現パターンを満たす必要があります: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\t\\n\\r ]+"、
」 -
「
RequestBody からの無効な JSON
」 -
「
無効なフィルター形式
」
IAM Identity Center SCIM プロビジョニングエラーのトラブルシューティングの詳細については、こちらの「AWS re:Post 記事