AssumeRoleSaml 会话有效期多长?

How long AssumeRoleSaml session valid?

我正在尝试通过 AssumeRoleWithSAML 使用 AWS,按照此墨水,https://aws.amazon.com/blogs/security/how-to-easily-identify-your-federated-users-by-using-aws-cloudtrail/

找出 AD 用户的使用情况

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

我错过了什么吗?由于此事件不会发生,我无法关联此用户在 AWS 中所做的事情。

谢谢 阿米特

你说得对,CloudTrail 日志中应该有一个名为 AssumeRoleWithSAML 的事件。

您已经引用了正确的 AWS 安全博客 post,其中描述了如何 "identify a SAML federated user"。 [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 控制台,您只能查看 最近 90 天记录的 API activity 和 AWS 区域 中的事件!! [3]
    因此,如果您必须回到过去,请确保使用 AWS Athena 或其他解决方案。
  2. 您必须查看正确区域的踪迹!您可以通过检查多区域跟踪的相应 S3 前缀或单击右上角的所需区域(如果您使用 AWS CloudTrail 控制台)来执行此操作。这很重要,因为区域服务正在记录各自的踪迹!! AWS 提到这一点如下:

    If you activate AWS STS endpoints in Regions other than the default global endpoint, then you must also turn on CloudTrail logging in those Regions. This is necessary to record any AWS STS API calls that are made in those Regions. For more information, see Turning On CloudTrail in Additional Regions in the AWS CloudTrail User Guide. [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