1

我试图找出 AD 用户的使用情况,通过 AssumeRoleWithSAML 使用 AWS,遵循这个墨水,https: //aws.amazon.com/blogs/security/how-to-easily-identify-your-federated-users-by -使用-aws-cloudtrail/

但是,我在 Cloudtrails 中根本看不到 AssumeRoleWithSAML 事件,尽管我可以清楚地看到该用户的活动。我一直到 7 月初在 cloudtrail 中查找 AssumeRoleWithSaml 并没有看到任何事件。

我错过了什么吗?这个事件的 Bcos 没有到来,我无法关联该用户在 AWS 中所做的事情。

谢谢阿米特

4

1 回答 1

1

没错,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,它是您要查找的值。

为什么事件不见了?

  1. 首先,有必要知道您是在使用 AWS CloudTrail 控制台还是在解析传送到 S3 存储桶的 CloudTrail 文件。如果您使用 CloudTrail 控制台,则只能查看AWS 区域中过去 90 天记录的 API 活动和事件!![3]
    因此,如果您必须及时追溯,请确保使用 AWS Athena 或其他解决方案。
  2. 您必须查看正确区域的踪迹!为此,您可以检查多区域跟踪的相应 S3 前缀,或者如果您使用 AWS CloudTrail 控制台,请单击右上角的所需区域。这很重要,因为区域服务正在记录到他们各自的踪迹!!AWS 提到这一点如下:

    如果您在默认全局终端节点以外的区域中激活 AWS STS 终端节点,则您还必须在这些区域中打开 CloudTrail 日志记录。这是记录在这些区域中进行的任何 AWS STS API 调用所必需的。有关更多信息,请参阅 AWS CloudTrail 用户指南中的在其他区域启用 CloudTrail。[4]

  3. 确保查看正确的帐户!您必须检查担任角色的帐户的踪迹。我明确提到这一点是因为有可能使用集中式身份帐户等的多帐户环境。

参考

[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

于 2019-08-03T12:12:30.037 回答