

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# CloudTrail 用户身份元素
<a name="cloudtrail-event-reference-user-identity"></a>

AWS Identity and Access Management (IAM) 提供不同类型的身份。`userIdentity` 元素包含有关发出请求的 IAM 身份的类型的详细信息，以及使用了哪些凭证。如果使用的是临时证书，则该元素显示证书是如何获取的。

**Contents**
+ [示例](#cloudtrail-event-reference-user-identity-examples)
+ [字段](#cloudtrail-event-reference-user-identity-fields)
+ [SAML 和 Web 联合身份验证的值 AWS STS APIs](#STS-API-SAML-WIF)
+ [AWS STS 来源身份](#STS-API-source-identity)

## 示例
<a name="cloudtrail-event-reference-user-identity-examples"></a>

**`userIdentity` 与 IAM 用户凭证**

以下示例显示使用名为 `Alice` 的 IAM 用户的证书发出的简单请求的 `userIdentity` 元素。

```
"userIdentity": {
    "type": "IAMUser",
    "principalId": "AIDAJ45Q7YFFAREXAMPLE",
    "arn": "arn:aws:iam::123456789012:user/Alice",
    "accountId": "123456789012",
    "accessKeyId": "",
    "userName": "Alice"
}
```

**使用临时安全证书的 `userIdentity`**

以下示例显示使用通过代入 IAM 角色获取的临时安全凭证发出的请求的 `userIdentity` 元素。该元素包含有关为获取证书而担任的角色的其他详细信息。

```
"userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAIDPPEZS35WEXAMPLE:AssumedRoleSessionName",
    "arn": "arn:aws:sts::123456789012:assumed-role/RoleToBeAssumed/MySessionName",
    "accountId": "123456789012",
    "accessKeyId": "",
    "sessionContext": {
        "sessionIssuer": {
            "type": "Role",
            "principalId": "AROAIDPPEZS35WEXAMPLE",
            "arn": "arn:aws:iam::123456789012:role/RoleToBeAssumed",
            "accountId": "123456789012",
            "userName": "RoleToBeAssumed"
        },
        "attributes": {
            "mfaAuthenticated": "false",
            "creationDate": "20131102T010628Z"
        }    
    }
}
```

**代表 IAM Identity Center 用户发出的请求的 `userIdentity`**

以下示例显示代表 IAM Identity Center 用户发出的请求的 `userIdentity` 元素。

```
"userIdentity": {
    "type": "IdentityCenterUser",
    "accountId": "123456789012",
    "onBehalfOf": {
        "userId": "544894e8-80c1-707f-60e3-3ba6510dfac1",
        "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9067642ac7" 
    },
    "credentialId": "EXAMPLEVHULjJdTUdPJfofVa1sufHDoj7aYcOYcxFVllWR_Whr1fEXAMPLE"
}
```

要了解有关如何使用`userId``identityStoreArn`、和`credentialId`的更多信息，请参阅 IAM Ident [ity Center 用户*指南中的在 IAM Identity Center 用户发起 CloudTrail 的事件中识别用户*和会话](https://docs.aws.amazon.com/singlesignon/latest/userguide/sso-cloudtrail-use-cases.html#user-session-iam-identity-center)。

**`userIdentity`根据产品提供商发起的请求**

产品提供商使用临时委派访问权限执行的所有操作都会自动登录 CloudTrail。这使您 AWS 账户中产品提供商活动的全面可见性和可审计性。您可以确定产品提供商采取了哪些操作、操作发生的时间以及执行这些操作的产品提供商账户。

为了帮助您区分自己的 IAM 委托人采取的操作和具有委托访问权限的产品提供商采取的操作， CloudTrail 事件在`userIdentity`元素`invokedByDelegate`下添加了一个名为的新字段。此字段包含产品提供商的 AWS 账户 ID，便于筛选和审计所有委托的操作。

以下示例显示了产品提供商使用临时委托访问权限执行的操作的`userIdentity`元素。

```
"userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAI...",
    "arn": "arn:aws:sts::123456789012:assumed-role/Alice/Session",
    "accountId": "123456789012",
    "sessionContext": {
        "sessionIssuer": {
            "type": "Role",
            "principalId": "AROAI...",
            "arn": "arn:aws:iam::123456789012:role/Alice",
            "accountId": "123456789012",
            "userName": "Alice"
        },
        "attributes": {
            "mfaAuthenticated": "false",
            "creationDate": "20131102T010628Z"
        }
    },
    "invokedByDelegate": {
        "accountId": "999999999999"
    }
}
```

该`invokedByDelegate`字段包含使用委托访问权限执行操作的产品提供商的 AWS 账户 ID。在此示例中，账户 999999999999（产品提供商）在账户 123456789012（客户账户）中执行了操作。

## 字段
<a name="cloudtrail-event-reference-user-identity-fields"></a>

以下字段可显示在 `userIdentity` 元素中。

**`type`**  
身份的类型。以下是可能的值：  
+ `Root`— 请求是使用您的 AWS 账户 凭据提出的。如果 `userIdentity` 类型为 `Root`，并且您为账户设置了别名，则 `userName` 字段包含您的账户别名。有关更多信息，请参阅[您的 AWS 账户 ID 及其别名](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html)。
+ `IAMUser`：已使用 IAM 用户的凭证发出请求。
+ `AssumedRole`：已使用角色通过调用 AWS Security Token Service （AWS STS）[https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API 获得的临时安全凭证发出请求。这可包括[适用于 Amazon EC2 的角色](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)和跨账户 API 访问。
+ `Role`：已由具有特定权限的持久 IAM 身份发出请求。角色会话的发出者始终为角色。有关角色的更多信息，请参阅 *IAM 用户指南*中的[角色术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。
+ `FederatedUser`— 该请求是使用通过调用 AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)API 获得的临时安全证书发出的。`sessionIssuer` 元素指示是使用根还是 IAM 用户凭证调用了该 API。

  有关临时安全凭证的更多信息，请参阅《IAM 用户指南》**中的[临时安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)。
+ `Directory`：向目录服务发出了请求，类型未知。目录服务包括以下内容：Amazon WorkDocs 和 Amazon Quick。
+ `AWSAccount`— 请求是由另一个人提出的 AWS 账户
+ `AWSService`— 该请求是由属于 AWS 账户 的提出的 AWS 服务。例如， AWS Elastic Beanstalk 在您的账户中扮演一个 IAM 角色来 AWS 服务 代表您呼叫其他人。
+ `IdentityCenterUser`：代表 IAM Identity Center 用户发出的请求。
+ `Unknown`— 请求使用 CloudTrail 无法确定的身份类型发出。
**可选**：False  
当使用您拥有的 IAM 角色进行跨账户访问时，日志中将显示 `type` 的 `AWSAccount` 和 `AWSService`。  

**示例：由另一个 AWS 账户发起的跨账户访问**

1. 您在自己的账户中拥有一个 IAM 角色。

1. 另一个 AWS 账户切换到该角色来代替您的账户的角色。

1. 由于您拥有 IAM 角色，因此您将收到一个显示已代入此角色的其他账户的日志。`type` 为 `AWSAccount`。有关日志条目的示例，请参阅[ CloudTrail 日志文件中的AWS STS API 事件](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#stscloudtrailexample)。

**示例：服务发起的跨账户访问 AWS**

1. 您在自己的账户中拥有一个 IAM 角色。

1.  AWS 服务拥有的 AWS 账户将扮演该角色。

1. 由于您拥有 IAM 角色，因此您将收到一个显示已代入此角色的 AWS 服务的日志。`type` 为 `AWSService`。

**`userName`**  
已发出调用的身份的友好名称。`userName` 中显示的值基于 `type` 中的值。下表显示 `type` 和 `userName` 之间的关系：      
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)
当记录的事件为由错误用户名称输入导致的控制台登录失败时，`userName` 字段包含字符串 `HIDDEN_DUE_TO_SECURITY_REASONS`。在此情况下，CloudTrail 不记录内容，因为文本可能包含敏感信息，如以下示例所示：  
+ 用户不小心在用户名称字段中键入了密码。
+ 用户单击一个 AWS 账户登录页面的链接，然后键入另一个账户的账号。
+ 用户意外键入了个人电子邮件账户的账户名称、银行登录标识符或某个其他私有 ID。
**可选**：True

**`principalId`**  
已发出调用的实体的唯一标识符。对于使用临时安全证书发出的请求，此值包括将传递到 `AssumeRole`、`AssumeRoleWithWebIdentity` 或 `GetFederationToken` API 调用的会话名称。  
**可选**：True

**`arn`**  
已发出调用的主体的 Amazon 资源名称（ARN）。arn 的最后一个部分包含已发出调用的用户或角色。  
**可选**：True

**`accountId`**  
拥有已授予请求权限的实体的账户。如果已使用临时安全凭证发出请求，则该账户为拥有用于获取凭证的 IAM 用户或角色的账户。  
如果已使用 IAM Identity Center 授权的访问令牌发出请求，则该账户为拥有 IAM Identity Center 实例的账户。  
**可选**：True

**`accessKeyId`**  
用于对请求签名的 访问密钥 ID。如果已使用临时安全证书发出请求，则为临时证书的访问密钥 ID。出于安全原因,`accessKeyId` 可能不存在，也可能显示为空字符串。  
**可选**：True

**`sessionContext`**  
如果已使用临时安全凭证发出请求，`sessionContext` 会提供为这些凭证创建的会话的相关信息。当您调用任何返回临时凭证的 API 时，会创建会话。用户在控制台中工作时还会创建会话，并使用 APIs 包括[多因素身份验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)在内的请求发出请求。以下属性可以出现在 `sessionContext` 中：  
+ <a name="sessionissuer"></a>`sessionIssuer`：如果用户使用临时安全凭证发出请求，`sessionIssuer` 会提供有关凭证获取方式的信息。例如，如果用户通过代入角色来获取临时安全凭证，则此元素提供有关所代入角色的信息。如果用户通过使用根或 IAM 用户凭证调用 AWS STS `GetFederationToken` 来获取凭证，则此元素提供有关根账户或 IAM 用户的信息。此元素具有以下属性：
  + `type`：临时安全凭证的源，例如 `Root`、`IAMUser` 或 `Role`。
  + `userName`：已发布会话的用户或角色的友好名称。显示的值取决于 `sessionIssuer` 身份 `type`。下表显示 `sessionIssuer type` 和 `userName` 之间的关系：    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)
  + `principalId`：已用于获取凭证的实体的内部 ID。
  + `arn`：已用于获取临时安全凭证的源（账户、IAM 用户或角色）的 ARN。
  + `accountId`：拥有已用于获取凭证的实体的账户。
+ `webIdFederationData`：如果已使用通过 [Web 身份联合验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html)获取的临时安全凭证发出请求，`webIdFederationData` 会列出有关身份提供商的信息。

  此元素具有以下属性：
  + `federatedProvider`：身份提供者的主体名称（例如，适用于 Login with Amazon 的 `www.amazon.com` 或适用于 Google 的 `accounts.google.com`）。
  + `attributes`：提供商报告的应用程序 ID 和用户 ID（例如，适用于 Login with Amazon 的 `www.amazon.com:app_id` 和 `www.amazon.com:user_id`）。
**注意**  
省略此字段或存在此字段且值为空表示没有关于身份提供者的信息。
+ `assumedRoot`— 该值`true`用于管理账户或委托管理员呼叫时的临时会话 AWS STS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoot.html)。有关更多信息，请参阅 *IAM 用户指南 CloudTrail*[中的跟踪特权任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-track-privileged-tasks.html)。此为可选字段。
+ `attributes`：会话的属性。
  + `creationDate`：颁发临时安全凭证时的日期和时间。用 ISO 8601 基本表示法表示。
  + `mfaAuthenticated`：如果将凭证用于请求的根用户或 IAM 用户还通过 MFA 设备进行身份验证，则值为 `true`；否则为 `false`。
+ `sourceIdentity`：请参阅本主题中的 [AWS STS 来源身份](#STS-API-source-identity)。`sourceIdentity` 字段出现在用户代入 IAM 角色执行操作的事件中。`sourceIdentity` 识别发出请求的原始用户身份，无论该用户的身份是 IAM 用户、IAM 角色、通过基于 SAML 的联合身份验证进行身份验证的用户，还是通过符合 OpenID Connect（OIDC）的 Web 身份联合验证进行身份验证的用户。有关配置 AWS STS 以收集源身份信息的更多信息，请参阅 *IAM 用户指南*中的[监控和控制使用代入角色执行的操作](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html)。
+ `ec2RoleDelivery`— `1.0` 如果凭证由 Amazon EC2 实例元数据服务版本 1 (IMDSv1) 提供，则该值为。如果凭证是使用新的 IMDS 方案提供的，则值为 `2.0`。

  AWS 亚马逊 EC2 实例元数据服务 (IMDS) 提供的证书包括 ec2: RoleDelivery IAM 上下文密钥。通过在 IAM 策略、资源策略 service-by-service或 AWS Organizations 服务控制策略中使用上下文密钥作为条件，此上下文密钥便于在或 resource-by-resource的基础上强制使用新方案。有关更多信息，请参阅《Amazon EC2 用户指南**》中的[实例元数据和用户数据](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)。
**可选**：True

**`invokedBy`**  
当请求是由诸如 Amazon EC2 Auto Scaling 或之 AWS 服务 类的公司提出请求时，发出请求的名称 AWS Elastic Beanstalk。 AWS 服务 仅当 AWS 服务发出请求时，此字段才会出现。这包括服务使用正向访问会话 (FAS)、 AWS 服务 委托人、服务相关角色或使用的服务角色发出的请求。 AWS 服务  
**可选**：True

**`invokedByDelegate`**  
跟踪产品提供商在您的 AWS 账户中使用临时委派访问权限发出的请求。仅当产品提供商使用委托权限发起 API 请求时，才会显示此字段。如果存在，则`invokedByDelegate`提供有关提出请求的产品提供商账户的信息。此元素具有以下属性：  
+ `accountId`— 发起请求的产品提供商的 AWS 账户 ID。
有关 CloudTrail 事件中委派访问权限的更多信息和 JSON 示例，请参阅 *IAM 用户指南*中的[临时安全证书CloudTrail 条目](https://docs.aws.amazon.com/IAM/latest/UserGuide/temporary-delegation-cloudtrail.html)。  
**可选**：True

**`onBehalfOf`**  
如果请求由 IAM Identity Center 调用者发出，`onBehalfOf` 会提供有关发出调用的 IAM Identity Center 用户 ID 和身份存储 ARN 的信息。此元素具有以下属性：  
+ `userId`：代表其发出调用的 IAM Identity Center 用户 ID。
+ `identityStoreArn`：代表其发出调用的 IAM Identity Center 身份存储的 ARN。
**可选**：True

**`inScopeOf`**  
如果请求是在范围内（例如 Lambda 或 Amazon ECS）发出的，则它会提供与请求相关的资源或证书的相关信息。 AWS 服务此元素可以包含以下属性：  
+ `sourceArn`— 调用请求的资源的 ARN。 service-to-service
+ `sourceAccount`：`sourceArn`的所有者账户 ID。它与 `sourceArn` 一起出现。
+ `issuerType`：`credentialsIssuedTo`的资源类型。例如 `AWS::Lambda::Function`。
+ `credentialsIssuedTo`：与颁发凭证的环境相关的资源。
**可选**：True

**`credentialId`**  
请求的凭证 ID。只有当调用者使用持有者令牌（例如 IAM Identity Center 授权的访问令牌）时，才会设置此选项。  
**可选**：True

## SAML 和 Web 联合身份验证的值 AWS STS APIs
<a name="STS-API-SAML-WIF"></a>

AWS CloudTrail 支持使用安全断言标记语言 AWS Security Token Service (SAML AWS STS) 和 Web 联合身份验证进行的 logging () API 调用。当用户调用和时 [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) APIs，会 CloudTrail 记录该呼叫[https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html)并将事件传送到您的 Amazon S3 存储桶。

这些`userIdentity`元素 APIs 包含以下值。

**`type`**  
身份类型。  
+ `SAMLUser`：已使用 SAML 断言发出请求。
+ `WebIdentityUser`：已通过 Web 联合身份提供商发出请求。

**`principalId`**  
已发出调用的实体的唯一标识符。  
+ 对于 `SAMLUser`，这是 `saml:namequalifier` 和 `saml:sub` 密钥的组合。
+ 对于 `WebIdentityUser`，这是发布者、应用程序 ID 和用户 ID 的组合。

**`userName`**  
已发出调用的身份的名称。  
+ 对于 `SAMLUser`，这是 `saml:sub` 密钥。
+ 对于 `WebIdentityUser`，这是用户 ID。

**`identityProvider`**  
外部身份提供者的主体名称。只有 `SAMLUser` 或 `WebIdentityUser` 类型才显示此字段。  
+ 对于 `SAMLUser`，这是 SAML 断言的 `saml:namequalifier` 密钥。
+ 对于 `WebIdentityUser`，这是 Web 联合身份验证提供商的发布者名称。它可以是您配置的提供商，如下所示：
  + Amazon Cognito 的 `cognito-identity.amazon.com`
  + Login with Amazon 的 `www.amazon.com`
  + Google 的 `accounts.google.com`
  + Facebook 的 `graph.facebook.com`

下面是 `AssumeRoleWithWebIdentity` 操作的示例 `userIdentity` 元素。

```
"userIdentity": {
    "type": "WebIdentityUser",
    "principalId": "accounts.google.com:{{application-id}}.apps.googleusercontent.com:{{user-id}}",
    "userName": "{{user-id}}",
    "identityProvider": "accounts.google.com"
  }
```

有关`userIdentity`元素的显示方式`SAMLUser`和`WebIdentityUser`类型的日志示例，请参阅使用[记录 IAM 和 AWS STS API 调用 AWS CloudTrail](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html)。

## AWS STS 来源身份
<a name="STS-API-source-identity"></a>

IAM 管理员可以配置 AWS Security Token Service 为要求用户在使用临时证书代入角色时指定其身份。`sourceIdentity` 字段出现在用户代入 IAM 角色或使用代入的角色执行任何操作的事件中。

`sourceIdentity` 字段识别发出请求的原始用户身份，无论该用户的身份是 IAM 用户、IAM 角色、使用基于 SAML 的联合身份进行身份验证的用户，还是使用符合 OpenID Connect（OIDC）的 Web 联合身份进行身份验证的用户。IAM 管理员配置后 AWS STS，在事件 CloudTrail 记录中的以下事件和位置中记录`sourceIdentity`信息：
+ 用户身份代入角色时发出的`AssumeRoleWithSAML`、或`AssumeRoleWithWebIdentity`调用。 AWS STS `AssumeRole` `sourceIdentity`可以在 AWS STS 通话`requestParameters`块中找到。
+ 用户身份使用角色担任另一个角色时发出的`AssumeRoleWithSAML`、或`AssumeRoleWithWebIdentity`调用，称为[角色链](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining)。 AWS STS `AssumeRole` `sourceIdentity`可以在 AWS STS 通话`requestParameters`块中找到。
+  AWS 服务 API 调用是用户身份在担任角色并使用分配的临时凭证时进行的 AWS STS。在服务 API 事件中，`sourceIdentity` 可以位于 `sessionContext` 数据块中。例如，如果用户身份创建新 S3 存储桶，则在 `CreateBucket` 事件的 `sessionContext` 数据块中会发生 `sourceIdentity`。

有关如何进行配置 AWS STS 以收集源身份信息的更多信息，请参阅 *IAM 用户指南*中的[监控和控制使用代入角色执行的操作](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html)。有关记录到 AWS STS 的事件的更多信息 CloudTrail，请参阅 [IAM *用户指南 AWS CloudTrail中的使用记录 IAM* 和 AWS STS API 调用](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html)。

下面是事件的示例代码段，其中显示了 `sourceIdentity` 字段。

**示例 `requestParameters` 部分**

在以下示例事件片段中，用户发出 AWS STS `AssumeRole`请求并设置源身份，此处用`{{source-identity-value-set}}`表示。用户代入由角色 ARN `arn:aws:iam::123456789012:role/Assumed_Role` 表示的角色。`sourceIdentity` 字段位于事件的 `requestParameters` 数据块中。

```
"eventVersion": "1.05",
    "userIdentity": {
        "type": "AWSAccount",
        "principalId": "AIDAJ45Q7YFFAREXAMPLE",
        "accountId": "123456789012"
    },
    "eventTime": "2020-04-02T18:20:53Z",
    "eventSource": "sts.amazonaws.com",
    "eventName": "AssumeRole",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "203.0.113.64",
    "userAgent": "aws-cli/1.16.96 Python/3.6.0 Windows/10 botocore/1.12.86",
    "requestParameters": {
        "roleArn": "arn:aws:iam::123456789012:role/Assumed_Role",
        "roleSessionName": "Test1",
        "sourceIdentity": "{{source-identity-value-set}}",
    },
```

**示例 `responseElements` 部分**

在以下示例事件片段中，用户 AWS STS `AssumeRole`请求代入名为`Developer_Role`的角色并设置源身份。`Admin`用户代入由角色 ARN `arn:aws:iam::111122223333:role/Developer_Role` 表示的角色。`sourceIdentity` 字段显示在事件的 `responseElements` 和 `requestParameters` 数据块中。用于代入角色的临时证书、会话令牌字符串以及代入的角色 ID、会话名称和会话 ARN 与源身份一起显示在 `responseElements` 数据块中。

```
    "requestParameters": {
        "roleArn": "arn:aws:iam::111122223333:role/Developer_Role",
        "roleSessionName": "Session_Name",
        "sourceIdentity": "Admin"
    },
    "responseElements": {
        "credentials": {
            "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
            "expiration": "Jan 22, 2021 12:46:28 AM",
            "sessionToken": "XXYYaz...
                             EXAMPLE_SESSION_TOKEN
                             XXyYaZAz"
        },
        "assumedRoleUser": {
            "assumedRoleId": "AROACKCEVSQ6C2EXAMPLE:Session_Name",
            "arn": "arn:aws:sts::111122223333:assumed-role/Developer_Role/Session_Name"
        },
        "sourceIdentity": "Admin"
    }
...
```

**示例 `sessionContext` 部分**

在以下示例事件片段中，用户扮演一个名为的角色`DevRole`来调用 AWS 服务 API。用户设置源身份，此处用表示{{source-identity-value-set}}。`sourceIdentity` 字段位于 `userIdentity` 数据块中，处在事件的 `sessionContext` 数据块内。

```
{
  "eventVersion": "1.08",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAJ45Q7YFFAREXAMPLE: Dev1",
    "arn": "arn: aws: sts: : 123456789012: assumed-role/DevRole/Dev1",
    "accountId": "123456789012",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAJ45Q7YFFAREXAMPLE",
        "arn": "arn: aws: iam: : 123456789012: role/DevRole",
        "accountId": "123456789012",
        "userName": "DevRole"
      },
      "webIdFederationData": {},
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2021-02-21T23: 46: 28Z"
      },
      "sourceIdentity": "{{source-identity-value-set}}"
    }
  }
}
```