没错,CloudTrail 日志中应该有一个名为AssumeRoleWithSAML的事件。
您已经引用了正确的 AWS 安全博客文章,其中描述了如何“识别 SAML 联合用户”。[1]
让我们详细介绍一下。
IAM 文档 [2] 包含一个AssumeRoleWithSAML事件的示例:
{
"eventVersion": "1.05",
"userIdentity": {
"type": "WebIdentityUser",
"principalId": "accounts.google.com:[id-of-application].apps.googleusercontent.com:[id-of-user]",
"userName": "[id of user]",
"identityProvider": "accounts.google.com"
},
"eventTime": "2016-03-23T01:39:51Z",
"eventSource": "sts.amazonaws.com",
"eventName": "AssumeRoleWithWebIdentity",
"awsRegion": "us-east-2",
"sourceIPAddress": "192.0.2.101",
"userAgent": "aws-cli/1.3.23 Python/2.7.6 Linux/2.6.18-164.el5",
"requestParameters": {
"durationSeconds": 3600,
"roleArn": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole",
"roleSessionName": "MyAssignedRoleSessionName"
},
"responseElements": {
"provider": "accounts.google.com",
"subjectFromWebIdentityToken": "[id of user]",
"audience": "[id of application].apps.googleusercontent.com",
"credentials": {
"accessKeyId": "ASIACQRSTUVWRAOEXAMPLE",
"expiration": "Mar 23, 2016 2:39:51 AM",
"sessionToken": "[encoded session token blob]"
},
"assumedRoleUser": {
"assumedRoleId": "AROACQRSTUVWRAOEXAMPLE:MyAssignedRoleSessionName",
"arn": "arn:aws:sts::444455556666:assumed-role/FederatedWebIdentityRole/MyAssignedRoleSessionName"
}
},
"resources": [
{
"ARN": "arn:aws:iam::444455556666:role/FederatedWebIdentityRole",
"accountId": "444455556666",
"type": "AWS::IAM::Role"
}
],
"requestID": "6EXAMPLE-e595-11e5-b2c7-c974fEXAMPLE",
"eventID": "bEXAMPLE-0b30-4246-b28c-e3da3EXAMPLE",
"eventType": "AwsApiCall",
"recipientAccountId": "444455556666"
}
正如我们所看到的,requestParameters
包含一个元素durationSeconds
,它是您要查找的值。
为什么事件不见了?
- 首先,有必要知道您是在使用 AWS CloudTrail 控制台还是在解析传送到 S3 存储桶的 CloudTrail 文件。如果您使用 CloudTrail 控制台,则只能查看AWS 区域中过去 90 天记录的 API 活动和事件!![3]
因此,如果您必须及时追溯,请确保使用 AWS Athena 或其他解决方案。
您必须查看正确区域的踪迹!为此,您可以检查多区域跟踪的相应 S3 前缀,或者如果您使用 AWS CloudTrail 控制台,请单击右上角的所需区域。这很重要,因为区域服务正在记录到他们各自的踪迹!!AWS 提到这一点如下:
如果您在默认全局终端节点以外的区域中激活 AWS STS 终端节点,则您还必须在这些区域中打开 CloudTrail 日志记录。这是记录在这些区域中进行的任何 AWS STS API 调用所必需的。有关更多信息,请参阅 AWS CloudTrail 用户指南中的在其他区域启用 CloudTrail。[4]
确保查看正确的帐户!您必须检查担任角色的帐户的踪迹。我明确提到这一点是因为有可能使用集中式身份帐户等的多帐户环境。
参考
[1] https://aws.amazon.com/de/blogs/security/how-to-easily-identify-your-federated-users-by-using-aws-cloudtrail/
[2] https://docs。 aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html
[3] https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html
[4] https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html