

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

# 分配和管理 EMR Studio 用户
<a name="emr-studio-manage-users"></a>

创建 EMR Studio 后，您可以分配用户和组到 EMR Studio。分配、更新和删除用户的方法取决于 Studio 身份验证模式。
+ 当您使用 IAM 身份验证模式时，可以在 IAM 中或使用 IAM 和身份提供商配置 EMR Studio 用户任务和权限。
+ 在 IAM 身份中心身份验证模式下，您可以使用 Amazon EMR 管理控制台或 AWS CLI 来管理用户。

要了解有关 Amazon EMR Studio 身份验证的更多信息，请参阅 [为 Amazon EMR Studio 选择身份验证模式](emr-studio-authentication.md)。

## 将用户或组分配到 EMR Studio
<a name="emr-studio-assign-users-groups"></a>

------
#### [ IAM ]

当您使用 [为 Amazon EMR Studio 设置 IAM 身份验证模式](emr-studio-authentication.md#emr-studio-iam-authentication) 时，必须允许 `CreateStudioPresignedUrl` 在用户的 IAM 权限策略中执行操作，并将用户限制到某一特定 Studio。您可以将 `CreateStudioPresignedUrl` 包括在您的 [IAM 身份验证模式的用户权限](how-emr-studio-works.md#emr-studio-iam-authorization) 中，或者使用单独的策略。

要将用户限制到某一 Studio（或某一组 Studio），您可以使用基于属性的访问权限控制（ABAC），或在权限策略的 `Resource` 元素中指定 Studio 的 Amazon 资源名称（ARN）。

**Example 使用 Studio ARN 将用户分配到 Studio**  
以下示例策略允许用户访问特定 EMR Studio，方法是允许 `CreateStudioPresignedUrl` 操作并在 `Resource` 元素指定 Studio 的 Amazon 资源名称（ARN）。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCreateStudioPresignedUrl",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:CreateStudioPresignedUrl"
      ],
      "Resource": [
        "arn:aws:elasticmapreduce:us-east-1:123456789012:studio/studio-id"
      ]
    }
  ]
}
```

**Example 使用 ABAC 将用户分配至 Studio 以进行 IAM 身份验证**  
为 Studio 配置基于属性的访问权限控制（ABAC）的方法有多种。例如，您可以将一个或多个标签附加到 EMR Studio，然后创建 IAM policy，该策略限制附有此类标签的特定或一组 Studio 进行 `CreateStudioPresignedUrl` 操作。  
您可以在 Studio 创建期间或之后添加标签。要将标签添加到现有 Studio，您可以使用 [AWS CLI`emr add-tags`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/emr/add-tags.html) 命令。以下示例将带有键值对的标签 `Team = Data Analytics` 添加到 EMR Studio。  

```
aws emr add-tags --resource-id <example-studio-id> --tags Team="Data Analytics"
```
以下示例权限策略允许 `CreateStudioPresignedUrl` 使用标签键值对 `Team = DataAnalytics` 为 EMR Studios 执行的操作。有关使用标签进行访问控制的更多信息，请参阅[使用标签控制对 IAM 用户和角色的访问以及他们进行的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html)或[使用标签控制对 AWS 资源的访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCreateStudioPresignedUrl",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:CreateStudioPresignedUrl"
      ],
      "Resource": [
        "arn:aws:elasticmapreduce:*:123456789012:studio/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/Team": "Data Analytics"
        }
      }
    }
  ]
}
```

**Example 使用 aws: SourceIdentity 全局条件键将用户分配到 Studio**  
在使用 IAM 联合身份验证时，您可以使用权限策略的全局条件密钥 (global condition key)`aws:SourceIdentity`，以便在用户担任 IAM 角色进行联合身份验证时向他们授予 Studio 访问权限。  
您必须先配置身份提供商 (IdP)，以便在用户对联合身份进行身份验证并担任 IAM 角色时返回标识字符串，例如：电子邮件地址或用户名。IAM 将全局条件密钥 (global condition key)`aws:SourceIdentity` 设置为身份提供商 (IdP) 返回的标识字符串。  
有关更多信息，请参阅 AWS 安全博客中的[如何将 IAM 角色活动与企业身份关联](https://aws.amazon.com/blogs/security/how-to-relate-iam-role-activity-to-corporate-identity/)博客文章和全局条件密钥参考中的 aws[: SourceIdentity](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceidentity) 条目。  
以下示例策略允许执行该`CreateStudioPresignedUrl`操作，并向用户提供与指定`aws:SourceIdentity`的 EMR Studio *<example-source-identity>* 访问权限相匹配的用户。*<example-studio-arn>*    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:CreateStudioPresignedUrl"
      ],
      "Resource": [
        "arn:aws:elasticmapreduce:us-east-1:123456789012:studio/studio-name"
      ],
      "Condition": {
        "StringLike": {
          "aws:SourceIdentity": "example-source-identity"
        }
      },
      "Sid": "AllowELASTICMAPREDUCECreatestudiopresignedurl"
    }
  ]
}
```

------
#### [ IAM Identity Center ]

将用户或组分配给 EMR Studio 时，请指定会话策略来定义精细权限，例如为该用户或组创建新 EMR 集群的能力。Amazon EMR 存储这些会话策略映射。您可以在分配后更新用户或组的会话策略。

**注意**  
用户或组的最终权限是 EMR Studio 用户角色中定义的权限与用户或组会话策略中定义的权限的交集。如果用户属于分配给 Studio 的多个组，EMR Studio 则将为该用户使用权限联合。

**使用 Amazon EMR 控制台将用户或组分配到 EMR Studio**

1. 导航到 Amazon EMR 新控制台，然后从侧面导航栏中选择**切换到旧控制台**。有关切换到旧控制台后预期情况的更多信息，请参阅 [Using the old console](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)。

1. 从左侧导航中选择 **EMR Studio**。

1. 从 **Studios** 列表选择您的 Studio 名称，或选择 Studio 后选择 **View details (查看详细信息)**，以打开 Studio 详细信息页面。

1. 选择 **Add Users (添加用户)** 以查看 **Users (用户)** 和 **Groups (组)** 搜索表。

1. 选择 **Users (用户)** 选项卡或 **Groups (组)** 选项卡，然后在搜索栏中输入搜索词以查找用户或组。

1. 从搜索结果列表中选择一个或多个用户或组。您可以在 **Users (用户)** 选项卡和 **Groups (组)** 选项卡之间来回切换。

1. 选择要添加到 Studio 的用户和组后，选择 **Add (添加)**。您应该会看到 **Studio users (Studio 用户)** 列表中显示用户和组。列表可能需要几秒钟才能刷新。

1. 按照[更新分配给 Studio 的用户或组的权限](#emr-studio-update-user)中的说明优化用户或组的 Studio 权限。

**使用 AWS CLI，将用户或组分配到 EMR Studio**

为以下 `create-studio-session-mapping` 参数插入您自己的值。有关 `create-studio-session-mapping` 命令的更多信息，请参阅 [https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html](https://docs.aws.amazon.com/cli/latest/reference/emr/create-studio-session-mapping.html)。
+ **`--studio-id`**：要将用户或组分配到 Studio 的 ID。有关如何检索 Studio ID 的说明，请参阅 [查看 Studio 详细信息](emr-studio-manage-studio.md#emr-studio-get-studio-id)。
+ `--identity-name`：Identity Store 中的用户或组的名称。有关更多信息，[UserName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)请参阅 Ident *ity Store API 参考*中的[DisplayName](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)针对用户和群组的信息。
+ **`--identity-type`**：使用 `USER` 或 `GROUP` 指定身份类型。
+ **`--session-policy-arn`**：您要与用户或组关联的会话策略的 Amazon 资源名称（ARN）。例如 `arn:aws:iam::<aws-account-id>:policy/EMRStudio_Advanced_User_Policy`。有关更多信息，请参阅 [为 EMR Studio 用户创建权限策略](emr-studio-user-permissions.md#emr-studio-permissions-policies)。

```
aws emr create-studio-session-mapping \
 --studio-id <example-studio-id> \
 --identity-name <example-identity-name> \
 --identity-type <USER-or-GROUP> \
 --session-policy-arn <example-session-policy-arn>
```

**注意**  
为了便于读取，包含 Linux 行继续符（\$1）。它们可以通过 Linux 命令删除或使用。对于 Windows，请将它们删除或替换为脱字号（^）。

使用 `get-studio-session-mapping` 命令验证新分配。*<example-identity-name>*替换为您更新的用户或群组的 IAM 身份中心名称。

```
aws emr get-studio-session-mapping \
 --studio-id <example-studio-id> \
 --identity-type <USER-or-GROUP> \
 --identity-name <user-or-group-name> \
```

------

## 更新分配给 Studio 的用户或组的权限
<a name="emr-studio-update-user"></a>

------
#### [ IAM ]

要在使用 IAM 身份验证模式时更新用户或组权限，请使用 IAM 更改附加到 IAM 身份（用户、组或角色）的 IAM 权限策略。

有关更多信息，请参阅 [IAM 身份验证模式的用户权限](how-emr-studio-works.md#emr-studio-iam-authorization)。

------
#### [ IAM Identity Center ]

****使用控制台更新用户或组的 EMR Studio 权限****

1. 导航到 Amazon EMR 新控制台，然后从侧面导航栏中选择**切换到旧控制台**。有关切换到旧控制台后预期情况的更多信息，请参阅 [Using the old console](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)。

1. 从左侧导航中选择 **EMR Studio**。

1. 从 **Studios** 列表选择您的 Studio 名称，或选择 Studio 后选择 **View details (查看详细信息)**，以打开 Studio 详细信息页面。

1. 在 Studio 详细信息页面上的 **Studio users (Studio 用户)** 列表中，搜索要更新的用户或组。您可以按名称或身份类型进行搜索。

1. 选择要更新的用户或组，然后选择 **Assign policy (分配策略)** 以打开 **Session policy (会话策略)** 对话框。

1. 选择要应用于您在步骤 5 中选择的用户或组的策略，然后选择 **Apply policy (应用策略)**。**Studio users (Studio 用户)** 列表应在 **Session policy (会话策略)** 列中显示您更新的用户或组的策略名称。

**要更新用户或群组的 EMR Studio 权限，请使用 AWS CLI**

为以下 `update-studio-session-mappings` 参数插入您自己的值。有关 `update-studio-session-mappings` 命令的更多信息，请参阅 [https://docs.aws.amazon.com/cli/latest/reference/emr/update-studio-session-mapping.html](https://docs.aws.amazon.com/cli/latest/reference/emr/update-studio-session-mapping.html)。

```
aws emr update-studio-session-mapping \
 --studio-id <example-studio-id> \
 --identity-name <name-of-user-or-group-to-update> \
 --session-policy-arn <new-session-policy-arn-to-apply> \
 --identity-type <USER-or-GROUP> \
```

使用 `get-studio-session-mapping` 命令验证新的会话策略分配。*<example-identity-name>*替换为您更新的用户或群组的 IAM 身份中心名称。

```
aws emr get-studio-session-mapping \
 --studio-id <example-studio-id> \
 --identity-type <USER-or-GROUP> \
 --identity-name <user-or-group-name> \
```

------

## 从 Studio 中删除用户或组
<a name="emr-studio-remove-user"></a>

------
#### [ IAM ]

要在使用 IAM 身份验证模式时从 EMR Studio 中删除用户或组，必须通过重新配置用户的 IAM 权限策略来撤销该用户对 Studio 的访问权限。

在以下示例策略中，假设您有附加标签键值对 `Team = Quality Assurance` 的 EMR Studio。根据该策略，用户可以访问标有 `Team` 键的 Studios，该键的值等于 `Data Analytics` 或者 `Quality Assurance`。要从标记为 `Team = Quality Assurance` 的 Studio 中删除用户，必须从标签值列表中删除 `Quality Assurance`。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCreateStudioPresignedUrl",
      "Effect": "Allow",
      "Action": [
        "elasticmapreduce:CreateStudioPresignedUrl"
      ],
      "Resource": [
        "arn:aws:elasticmapreduce:us-east-1:123456789012:studio/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticmapreduce:ResourceTag/Team": [
            "Data Analytics",
            "Quality Assurance"
          ]
        }
      }
    }
  ]
}
```

------

------
#### [ IAM Identity Center ]

****使用控制台从 EMR Studio 中删除用户或组****

1. 导航到 Amazon EMR 新控制台，然后从侧面导航栏中选择**切换到旧控制台**。有关切换到旧控制台后预期情况的更多信息，请参阅 [Using the old console](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)。

1. 从左侧导航中选择 **EMR Studio**。

1. 从 **Studios** 列表选择您的 Studio 名称，或选择 Studio 后选择 **View details (查看详细信息)**，以打开 Studio 详细信息页面。

1. 在 Studio 详细信息页面上的 **Studio users (Studio 用户)** 列表中，查找要从 Studio 中删除的用户或组。您可以按名称或身份类型进行搜索。

1. 选择要删除的用户或组，选择 **Delete (删除)** 并确认。您删除的用户或组将从 **Studio users (Studio 用户)** 列表中消失。

**使用 AWS CLI从 EMR Studio 中删除用户或组**

为以下 `delete-studio-session-mapping` 参数插入您自己的值。有关 `delete-studio-session-mapping` 命令的更多信息，请参阅 [https://docs.aws.amazon.com/cli/latest/reference/emr/delete-studio-session-mapping.html](https://docs.aws.amazon.com/cli/latest/reference/emr/delete-studio-session-mapping.html)。

```
aws emr delete-studio-session-mapping \
 --studio-id <example-studio-id> \
 --identity-type <USER-or-GROUP> \
 --identity-name <name-of-user-or-group-to-delete> \
```

------