本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CloudTrail IAM Identity Center
IAM Identity Center 发出 CloudTrail 的事件对于各种用例来说可能很有价值。Organizations 可以使用这些事件日志来监控和审核用户在其 Amazon 环境中的访问和活动。这有助于合规用例,因为日志会捕获有关谁在访问哪些资源以及何时访问的详细信息。您还可以使用这些 CloudTrail 数据进行事件调查,从而使团队能够分析用户行为并跟踪可疑行为。此外,事件历史记录可以为故障排除工作提供支持,从而了解随着时间的推移对用户权限和配置所做的更改。
以下各节描述了为审计、事件调查和故障排除等工作流程提供依据的基本用例。
在 IAM Identity Center 用户发起的事件中识别用户 CloudTrail 和会话
IAM Identity Center 会发出两个 CloudTrail 字段,使您能够识别 CloudTrail事件背后的 IAM 身份中心用户,例如登录 IAM 身份中心或 Amazon CLI使用 Amazon Web Services 访问门户,包括管理 MFA 设备:
-
userId
— 来自 IAM Identity Center 实例的身份存储的唯一且不可变的用户标识符。 -
identityStoreArn
— 包含该用户的Identity Store 的 Amazon 资源名称 (ARN)。
userID
和identityStoreArn
字段显示在嵌套在onBehalfOf
元素内的userIdentity
元素中,如以下示例所示。此示例显示了userIdentity
类型为 “IdentityCenterUser
” 的事件上的这两个字段。您还可以在userIdentity
类型为 “Unknown
” 的经过身份验证的 IAM Identity Center 用户的事件中包含这些字段。您的工作流程应同时接受这两个类型值。
"userIdentity":{ "type":"IdentityCenterUser", "accountId":"111122223333", "onBehalfOf": { "userId": "544894e8-80c1-707f-60e3-3ba6510dfac1", "identityStoreArn": "arn:aws:identitystore::111122223333:identitystore/d-1234567890" }, "credentialId" : "90e292de-5eb8-446e-9602-90f7c45044f7" }
注意
我们建议您使用userId
和identityStoreArn
来识别 IAM 身份中心 CloudTrail 事件背后的用户。在跟踪登录和使用 Amazon Web Services 访问门户的 IAM Identity Center 用户的操作时,请避免使用字段userName
或userIdentity
元素principalId
下方。如果您的工作流程(例如审计或事件响应)依赖于访问权限username
,则有两种选择:
-
如中所述,从 IAM 身份中心目录中检索用户名登录事件 CloudTrail中的用户名。
-
在 “登录”
UserName
的additionalEventData
元素下获取 IAM 身份中心发出的。此选项不需要访问 IAM Identity Center 目录的权限。有关更多信息,请参阅 登录事件 CloudTrail中的用户名。
要检索用户的详细信息(包括username
字段),您可以使用用户 ID 和身份存储 ID 作为参数来查询身份存储。您可以通过 DescribeUser
API 请求或 CLI 执行此操作。下面是 CLI 命令示例。如果您的 IAM 身份中心实例位于 CLI 默认区域,则可以省略该region
参数。
aws identitystore describe-user \ --identity-store-id d-1234567890 \ --user-id 544894e8-80c1-707f-60e3-3ba6510dfac1 \ --region
your-region-id
要确定前面示例中 CLI 命令的身份存储 ID 值,可以从该identityStoreArn
值中提取身份存储 ID。在示例 ARN 中arn:aws:identitystore::111122223333:identitystore/d-1234567890
,身份存储 ID 为。d-1234567890
或者,您可以通过导航到 IAM Identity Center 控制台的 “设置” 部分的 “身份存储” 选项卡来找到身份存储 ID。
如果您要在 IAM Identity Center 目录中自动查找用户,我们建议您估算用户查找频率,并考虑 IAM Identity Center 对身份存储 API 的限制限制。缓存检索到的用户属性可以帮助您保持在限制范围内。
该credentialId
值设置为用于请求操作的 IAM Identity Center 用户会话的 ID。您可以使用此值来识别在同一个经过身份验证的 IAM Identity Center 用户会话中启动 CloudTrail 的事件,但登录事件除外。
注意
登录事件中发出的AuthWorkflowID
字段允许在 IAM Identity Center 用户会话开始之前跟踪与登录序列相关的所有 CloudTrail 事件。
在 IAM Identity Center 和外部目录之间关联用户
IAM Identity Center 提供了两个用户属性,您可以使用这些属性将其目录中的用户与外部目录中的同一用户关联起来(例如Microsoft Active Directory和Okta Universal Directory)。
-
externalId
— IAM Identity Center 用户的外部标识符。我们建议您将此标识符映射到外部目录中不可变的用户标识符。请注意,IAM Identity Center 不会发出此值。 CloudTrail -
username
— 客户提供的值,用户通常使用该值登录。该值可以更改(例如,随着 SCIM 更新)。请注意,当身份源为时 Amazon Directory Service,IAM Identity Center 发出的用户名与您为进行身份验证而输入的用户名 CloudTrail 相匹配。用户名不必与 IAM Identity Center 目录中的用户名完全匹配。如果您有权访问 CloudTrail 事件但没有 IAM Identity Center 目录的访问权限,则可以使用登录时
additionalEventData
元素下方显示的用户名。有关中用户名的更多详细信息additionalEventData
,请参阅登录事件 CloudTrail中的用户名。
当身份源为时,这两个用户属性与外部目录中相应用户属性的映射是在 IAM Identity Center 中定义的 Amazon Directory Service。有关信息,请参阅。IAM Identity Center 和外部身份提供商目录之间的属性映射 IdPs 在外部,使用 SCIM 的用户有自己的映射。即使您使用 IAM Identity Center 目录作为身份源,也可以使用该externalId
属性将安全委托人交叉引用到您的外部目录。
以下部分介绍如何在给定用户username
和的情况下查找 IAM Identity Center 用户externalId
。
按用户名和外部 ID 查看 IAM Identity Center 用户
您可以从 IAM Identity Center 目录中检索已知用户名的用户属性,方法是先userId
使用 GetUserId
API 请求请求相应的用户名,然后发出 DescribeUser
API 请求,如前面的示例所示。以下示例演示如何userId
从 Identity Store 中检索特定用户名。如果您的 IAM 身份中心实例位于使用 CLI 的默认区域,则可以省略该region
参数。
aws identitystore get-user-id \ --identity-store d-9876543210 \ --alternate-identifier '{ "UniqueAttribute": { "AttributePath": "username", "AttributeValue": "
anyuser@example.com
" } }' \ --region your-region-id
同样,当您知道时,您可以使用相同的机制externalId
。使用externalId
值更新上一个示例中的属性路径,使用要搜索的特定externalId
值更新属性值。
在微软 Active Directory (AD) 和 externalID 中查看用户的安全标识符 (SID)
在某些情况下,IAM Identity Center 会在 CloudTrail 事件principalId
字段中发出用户的 SID,例如 Amazon Web Services 访问门户和 OID APIs C 发布的事件。这些案例正在逐步停用。当您需要来自 AD 的唯一用户标识符objectguid
时,我们建议您的工作流程使用 AD 属性。您可以在 IAM Identity Center 目录中的externalId
属性中找到此值。但是,如果您的工作流程需要使用 SID,请从 AD 中检索该值,因为该值无法通过 IAM Identity Center 获得 APIs。
在 IAM Identity Center 和外部目录之间关联用户讨论了如何使用externalId
和username
字段将 IAM Identity Center 用户与外部目录中的匹配用户关联起来。默认情况下,IAM Identity Center 会映射externalId
到 AD 中的objectguid
属性,并且此映射是固定的。IAM Identity Center 允许管理员灵活地以username
不同的方式映射到 AD userprincipalname
中的默认映射。
您可以在 IAM Identity Center 控制台中查看这些映射。导航至 “设置” 的 “身份源” 选项卡,然后在 “操作” 菜单中选择 “管理同步”。在 “管理同步” 部分,选择 “查看属性映射” 按钮。
虽然您可以使用 IAM Identity Center 中提供的任何唯一 AD 用户标识符在 AD 中查找用户,但我们建议您在查询objectguid
中使用,因为它是不可变的标识符。以下示例说明如何使用 Powershell 查询 Microsoft AD 以使用用户的objectguid
值检索用户。16809ecc-7225-4c20-ad98-30094aefdbca
对此查询的成功响应包括用户的 SID。
Install-WindowsFeature -Name RSAT-AD-PowerShell Get-ADUser ` -Filter {objectGUID -eq [GUID]::Parse("16809ecc-7225-4c20-ad98-30094aefdbca")} ` -Properties *