分配和管理 EMR Studio 用户 - Amazon EMR

分配和管理 EMR Studio 用户

创建 EMR Studio 后,您可以分配用户和组到 EMR Studio。分配、更新和删除用户的方法取决于 Studio 身份验证模式。

  • 当您使用 IAM 身份验证模式时,可以在 IAM 中或使用 IAM 和身份提供商配置 EMR Studio 用户任务和权限。

  • 通过 IAM Identity Center 身份验证模式,您可以使用 Amazon EMR 管理控制台或 AWS CLI 管理用户。

要了解有关 Amazon EMR Studio 身份验证的更多信息,请参阅 为 Amazon EMR Studio 选择身份验证模式

将用户或组分配到 EMR Studio

IAM

当您使用 为 Amazon EMR Studio 设置 IAM 身份验证模式 时,必须允许 CreateStudioPresignedUrl 在用户的 IAM 权限策略中执行操作,并将用户限制到某一特定 Studio。您可以将 CreateStudioPresignedUrl 包括在您的 IAM 身份验证模式的用户权限 中,或者使用单独的策略。

要将用户限制到某一 Studio(或某一组 Studio),您可以使用基于属性的访问控制 (ABAC),或在权限策略的 Resource 元素中指定 Studio 的 Amazon Resource Name (ARN)。

例 使用 Studio ARN 将用户分配到 Studio

以下示例策略允许用户访问特定 EMR Studio,方法是允许 CreateStudioPresignedUrl 操作并在 Resource 元素指定 Studio 的 Amazon Resource Name (ARN)。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateStudioPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "arn:aws:elasticmapreduce:<region>:<account-id>:studio/<studio-id>" } ] }
例 使用 ABAC 将用户分配至 Studio 以进行 IAM 身份验证

为 Studio 配置基于属性的访问控制 (ABAC) 的方法有多种。例如,您可以将一个或多个标签附加到 EMR Studio,然后创建 IAM policy,该策略限制附有此类标签的特定或一组 Studio 进行 CreateStudioPresignedUrl 操作。

您可以在 Studio 创建期间或之后添加标签。要将标签添加到现有 Studio,您可以使用 AWS CLIemr add-tags 命令。以下示例将带有键值对的标签 Team = Data Analytics 添加到 EMR Studio。

aws emr add-tags --resource-id <example-studio-id> --tags Team="Data Analytics"

以下示例权限策略允许 CreateStudioPresignedUrl 使用标签键值对 Team = DataAnalytics 为 EMR Studios 执行的操作。有关使用标签进行访问控制的更多信息,请参阅使用标签控制对 IAM 用户和角色的访问以及他们进行的访问使用标签控制对 AWS 资源的访问

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateStudioPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "arn:aws:elasticmapreduce:<region>:<account-id>:studio/*", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/Team": "Data Analytics" } } } ] }
例 使用 aws:SourceIdentity 全局条件密钥将用户分配给 Studio

在使用 IAM 联合身份验证时,您可以使用权限策略的全局条件密钥 (global condition key)aws:SourceIdentity,以便在用户担任 IAM 角色进行联合身份验证时向他们授予 Studio 访问权限。

您必须先配置身份提供商 (IdP),以便在用户对联合身份进行身份验证并担任 IAM 角色时返回标识字符串,例如:电子邮件地址或用户名。IAM 将全局条件密钥 (global condition key)aws:SourceIdentity 设置为身份提供商 (IdP) 返回的标识字符串。

有关更多信息,请参阅 AWS 安全博客中的如何将 IAM 角色活动与公司身份关联起来的博客文章,以及全局条件密钥参考中的 aws:SourceIdentity 条目。

以下示例策略允许 CreateStudioPresignedUrl 操作并为用户提供 aws:SourceIdentity,匹配<example-source-identity>访问由 <example-studio-arn>指定的 EMR Studio。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "elasticmapreduce:CreateStudioPresignedUrl", "Resource": "<example-studio-arn>", "Condition": { "StringLike": { "aws:SourceIdentity": "<example-source-identity>" } } } ] }
IAM Identity Center

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

注意

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

使用 Amazon EMR 控制台将用户或组分配到 EMR Studio
  1. 导航到 Amazon EMR 新控制台,然后从侧面导航栏中选择切换到旧控制台。有关切换到旧控制台后预期情况的更多信息,请参阅 Using the old console

  2. 从左侧导航中选择 EMR Studio

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

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

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

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

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

  8. 按照更新分配给 Studio 的用户或组的权限中的说明优化用户或组的 Studio 权限。

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

为以下 create-studio-session-mapping 参数插入您自己的值。有关 create-studio-session-mapping 命令的更多信息,请参阅 AWS CLI 命令参考

  • --studio-id – 要将用户或组分配到 Studio 的 ID。有关如何检索 Studio ID 的说明,请参阅 查看 Studio 详细信息

  • --identity-name – Identity Store 中的用户或组的名称。有关更多信息,请参阅《 Identity Store API 参考》中的用户的 UserName 和组的 DisplayName

  • --identity-type – 使用 USERGROUP 指定身份类型。

  • --session-policy-arn – 您要与用户或组关联的会话策略的 Amazon Resource Name(ARN)。例如,arn:aws:iam::<aws-account-id>:policy/EMRStudio_Advanced_User_Policy。有关更多信息,请参阅 为 EMR Studio 用户创建权限策略

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 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号(^)。

使用 get-studio-session-mapping 命令验证新分配。将 <example-identity-name> 替换为您更新的用户或组的 IAM Identity Center 名称。

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

更新分配给 Studio 的用户或组的权限

IAM

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

有关更多信息,请参阅 IAM 身份验证模式的用户权限

IAM Identity Center
使用控制台更新用户或组的 EMR Studio 权限
  1. 导航到 Amazon EMR 新控制台,然后从侧面导航栏中选择切换到旧控制台。有关切换到旧控制台后预期情况的更多信息,请参阅 Using the old console

  2. 从左侧导航中选择 EMR Studio

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

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

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

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

使用 AWS CLI更新用户或组的 EMR Studio 权限

为以下 update-studio-session-mappings 参数插入您自己的值。有关 update-studio-session-mappings 命令的更多信息,请参阅 AWS CLI 命令参考

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 Identity Center 名称。

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

从 Studio 中删除用户或组

IAM

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateStudioPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "arn:aws:elasticmapreduce:<region>:<account-id>:studio/*", "Condition": { "StringEquals": { "emr:ResourceTag/Team": [ "Data Analytics", "Quality Assurance" ] } } } ] }
IAM Identity Center
使用控制台从 EMR Studio 中删除用户或组
  1. 导航到 Amazon EMR 新控制台,然后从侧面导航栏中选择切换到旧控制台。有关切换到旧控制台后预期情况的更多信息,请参阅 Using the old console

  2. 从左侧导航中选择 EMR Studio

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

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

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

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

为以下 delete-studio-session-mapping 参数插入您自己的值。有关 delete-studio-session-mapping 命令的更多信息,请参阅 AWS CLI 命令参考

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> \