

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

# 使用 SourceDentity 监控 SageMaker 来自 AI Studio Classic
<a name="monitor-user-access"></a>

使用 Amazon SageMaker Studio Classic，您可以监控用户资源访问情况。要查看资源访问活动，您可以按照记录 [Amazon SageMaker API 调用](https://docs.amazonaws.cn/sagemaker/latest/dg/logging-using-cloudtrail.html)中的步骤进行配置 Amazon CloudTrail ，以监控和记录用户活动 Amazon CloudTrail。

但是，资源访问 Amazon CloudTrail 日志仅将 Studio Classic 执行 IAM 角色列为标识符。当每个用户配置文件都有不同的执行角色时，此级别的日志记录足以审计用户活动。但是，当多个用户配置文件之间共享单个执行 IAM 角色时，您无法获取有关访问 Amazon 资源的特定用户的信息。  

通过使用 `sourceIdentity` 配置传播 Studio Classic 用户配置文件名称，您可以在使用共享执行角色时，从 Amazon CloudTrail 日志中获取有关哪一特定用户执行了操作的信息。有关源身份的更多信息，请参阅[监控和控制使用代入角色执行的操作](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html)。要开`sourceIdentity`启或关闭 CloudTrail 日志功能，请参阅[在 AI Studio Classic 的 CloudTrail 日志中开启 Source SageMaker D](monitor-user-access-how-to.md)。

## 使用 sourceIdentity 时的注意事项
<a name="monitor-user-access-considerations"></a>

当您从 Studio Classic 笔记本电脑、 SageMaker Canvas 或 Amazon SageMaker Data Wrangler 发出 Amazon API 调用时，只有当这些调用`sourceIdentity`是使用 Studio [Classic [执行角色会话或该会话中的任何链接角色](sagemaker-roles.md)](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining)进行调用时，才会记录在中 CloudTrail 。

当这些 API 调用去调用其他服务来执行其他操作时，`sourceIdentity` 日志记录取决于所调用服务的具体实施。
+ Amazon SageMaker Training and Processing：当您使用训练功能或处理功能创建任务时，任务创建 API 调用会话中`sourceIdentity`存在的。因此，从这些作业发出的任何 Amazon API 调用都会记录`sourceIdentity`在 CloudTrail 日志中。
+ Amazon P SageMaker ipelines：当您使用自动 CI/CD 管道创建任务时，`sourceIdentity`会向下游传播，并且可以在 CloudTrail日志中查看。
+ [亚马逊 EMR：使用[运行时角色](studio-notebooks-emr-cluster-rbac.md)从 Studio Classic 连接亚马逊 EMR 时，管理员必须明确设置该字段。 PropagateSourceIdentity ](https://docs.amazonaws.cn/emr/latest/ManagementGuide/emr-steps-runtime-roles.html)由此可确保 Amazon EMR 会将调用凭证中的 `sourceIdentity` 用于作业或查询会话。然后`sourceIdentity`将其记录在 CloudTrail 日志中。

**注意**  
使用 `sourceIdentity` 时存在以下例外：  
SageMaker Studio Classic 共享空间不支持`sourceIdentity`直通。 Amazon 从 SageMaker AI 共享空间发出的 API 调用不会记录`sourceIdentity`在 CloudTrail 日志中。
如果 Amazon API 调用是通过用户或其他服务创建的会话进行的，并且会话不是基于 Studio Classic 执行角色会话，`sourceIdentity`则不会记录在 CloudTrail 日志中。

# 在 AI Studio Classic 的 CloudTrail 日志中开启 Source SageMaker D
<a name="monitor-user-access-how-to"></a>

使用 Amazon SageMaker Studio Classic，您可以监控用户资源访问情况。但是， Amazon CloudTrail 资源访问日志仅将 Studio Classic 执行 IAM 角色列为标识符。在多个用户配置文件之间共享单个执行 IAM 角色时，您必须使用该`sourceIdentity`配置来获取有关访问 Amazon 资源的特定用户的信息。

以下主题介绍了如何打开或关闭 `sourceIdentity` 配置。

**Topics**
+ [

## 先决条件
](#monitor-user-access-prereq)
+ [

## 打开 sourceIdentity
](#monitor-user-access-enable)
+ [

## 关闭 sourceIdentity
](#monitor-user-access-disable)

## 先决条件
<a name="monitor-user-access-prereq"></a>
+ 按照安装[或更新最新版本中的步骤安装](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)和配置 Amazon Command Line Interface 以下步骤 Amazon CLI。
+ 确保您所在域中的 Studio Classic 用户没有允许他们更新或修改域的政策。  
+ 要打开或关闭 `sourceIdentity` 传播，域中的所有应用程序都必须处于 `Stopped` 或 `Deleted` 状态。有关如何停止和关闭应用程序的更多信息，请参阅[关闭和更新 Studio Classic 应用程序](https://docs.amazonaws.cn/sagemaker/latest/dg/studio-tasks-update-apps.html)。
+ 如果启用了源身份传播，所有执行角色都必须拥有以下信任策略权限： 
  + 域的执行角色所担任的任何角色都必须具有信任策略中的 `sts:SetSourceIdentity` 权限。如果缺少此权限，在调用作业创建 API 时，操作将以 `AccessDeniedException` 或 `ValidationError` 失败。下面的示例信任策略包含 `sts:SetSourceIdentity` 权限。

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "sagemaker.amazonaws.com"
                },
                "Action": [
                    "sts:AssumeRole",
                    "sts:SetSourceIdentity"
                ]
            }
        ]
    }
    ```

------
  + 当您使用一个角色担任另一角色（称为角色链）时，请执行以下操作：
    + 在担任角色的主体的权限策略和目标角色的角色信任策略中都需要对 `sts:SetSourceIdentity` 的权限。否则，担任角色的操作将失败。
    +  这种角色链可能发生在 Studio Classic 或任何其他下游服务（例如 Amazon EMR）中。有关角色链的更多信息，请参阅[角色术语和概念](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)。

## 打开 sourceIdentity
<a name="monitor-user-access-enable"></a>

默认情况下，Studio Classic 中传播用户配置文件名称作为 `sourceIdentity` 的功能已关闭。

要启用将用户配置文件名称传播为的功能`sourceIdentity`，请在创建域和更新域名 Amazon CLI 时使用。此功能在域级别启用，而不是在用户配置文件级别启用。

 启用此配置后，管理员可以在 Amazon CloudTrail 日志中查看所访问服务的用户配置文件。用户配置文件在 `userIdentity` 部分中作为 `sourceIdentity` 值给出。有关在 SageMaker AI 中使用 Amazon CloudTrail 日志的更多信息，请参阅使用记录 A [mazon SageMaker AI API 调用 Amazon CloudTrail](https://docs.amazonaws.cn/sagemaker/latest/dg/logging-using-cloudtrail.html)。

在使用 `create-domain` API 创建域时，可使用以下代码启用传播用户配置文件名称作为 `sourceIdentity`。

```
create-domain
--domain-name <value>
--auth-mode <value>
--default-user-settings <value>
--subnet-ids <value>
--vpc-id <value>
[--tags <value>]
[--app-network-access-type <value>]
[--home-efs-file-system-kms-key-id <value>]
[--kms-key-id <value>]
[--app-security-group-management <value>]
[--domain-settings "ExecutionRoleIdentityConfig=USER_PROFILE_NAME"]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

在更新域期间，您可以使用 `update-domain` API 启用传播用户配置文件名称作为 `sourceIdentity`。

要更新此配置，域中的所有应用程序都必须处于 `Stopped` 或 `Deleted` 状态。有关如何停止和关闭应用程序的更多信息，请参阅[关闭和更新 Studio Classic 应用程序](https://docs.amazonaws.cn/sagemaker/latest/dg/studio-tasks-update-apps.html)。

使用以下代码启用传播用户配置文件名称作为 `sourceIdentity`.

```
update-domain
--domain-id <value>
[--default-user-settings <value>]
[--domain-settings-for-update "ExecutionRoleIdentityConfig=USER_PROFILE_NAME"]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```

## 关闭 sourceIdentity
<a name="monitor-user-access-disable"></a>

您也可以使用 Amazon CLI关闭传播用户配置文件名称作为 `sourceIdentity`。为此，在更新域期间，通过在 `update-domain` API 调用中为 `--domain-settings-for-update` 参数传递 `ExecutionRoleIdentityConfig=DISABLED` 值即可。

在中 Amazon CLI，使用以下代码禁用将用户配置文件名称传播为`sourceIdentity`。

```
update-domain
 --domain-id <value>
[--default-user-settings <value>]
[--domain-settings-for-update "ExecutionRoleIdentityConfig=DISABLED"]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
```