对流媒体实例的访问权限 WorkSpaces 和脚本 - Amazon WorkSpaces

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

对流媒体实例的访问权限 WorkSpaces 和脚本

在 WorkSpaces 流媒体实例上运行的应用程序和脚本必须包括 AWS 他们的凭证 AWS API请求。您可以创建一个IAM角色来管理这些证书。IAM角色指定了一组可用于访问的权限 AWS 资源的费用。但是,此角色并非与一个人唯一关联。相反,任何需要它的人都可以代入该角色。

您可以将IAM角色应用于 WorkSpaces 流媒体实例。当流实例切换到(代入)角色时,该角色提供临时安全凭证。您的应用程序或脚本使用这些凭据对流媒体实例执行API操作和管理任务。 WorkSpaces 为您管理临时凭证切换。

在 WorkSpaces 流媒体实例IAM中使用角色的最佳实践

当您在 WorkSpaces 流媒体实例中使用IAM角色时,我们建议您遵循以下做法:

  • 限制您授予的权限 AWS API行动和资源。

    在创建IAM策略并将其附加到与 WorkSpaces 流媒体实例关联的IAM角色时,请遵循最低权限原则。当您使用需要访问权限的应用程序或脚本时 AWS API操作或资源,确定所需的具体操作和资源。然后,创建允许应用程序或脚本仅执行这些操作的策略。有关更多信息,请参阅《IAM用户指南》中的 “授予最低权限”。

  • 为每种 WorkSpaces 资源创建一个IAM角色。

    为每种 WorkSpaces 资源创建独特的IAM角色是一种遵循最低权限原则的做法。这样做还允许您修改一个资源的权限,而不会影响其他资源。

  • 限制可以使用凭证的位置。

    IAM策略允许您定义使用您的IAM角色访问资源的条件。例如,您可以包含条件以指定请求可以来自的 IP 地址范围。这样做可以防止在您的环境之外使用凭证。有关更多信息,请参阅《IAM用户指南》中的 “使用策略条件提高安全性”。

配置现有IAM角色以用于 WorkSpaces 流式处理实例

本主题介绍如何配置现有IAM角色以便您可以将其与一起使用 WorkSpaces 。

先决条件

要与之搭配使用的IAM角色 WorkSpaces 必须满足以下先决条件:

  • 该IAM角色必须与 WorkSpaces 流媒体实例位于同一个 Amazon Web Services 账户中。

  • 该IAM角色不能是服务角色。

  • 附加到IAM角色的信任关系策略必须将 WorkSpaces 服务作为委托人。委托人是以下领域的实体 AWS 可以执行操作和访问资源。该策略还必须包括 sts:AssumeRole 操作。此策略配置定义 WorkSpaces 为可信实体。

  • 如果您要将IAM角色应用于 WorkSpaces,则 WorkSpaces 必须运行在 2019 年 9 月 3 日当天或之后发布的 WorkSpaces 代理版本。如果您要将IAM角色应用于 WorkSpaces,则 WorkSpaces 必须使用使用在同一日期或之后发布的代理版本的映像。

使 WorkSpaces 服务主体能够代入现有IAM角色

要执行以下步骤,您必须以具有列出和更新IAM角色所需权限的IAM用户身份登录账户。如果您没有所需的权限,则要求您的 Amazon Web Services 账户管理员在您的账户中执行这些步骤或授予您所需权限。

  1. 打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 在您的账户的角色列表中,选择要修改的角色的名称。

  4. 选择 信任关系 选项卡,然后选择 编辑信任关系

  5. 策略文档下,验证信任关系策略是否包含 workspaces.amazonaws.com 服务主体的 sts:AssumeRole 操作:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "workspaces.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 在编辑完信任策略后,请选择更新信任策略以保存所做更改。

  7. 您选择的IAM角色将显示在 WorkSpaces 控制台中。此角色向应用程序和脚本授予在流式处理实例上执行API操作和管理任务的权限。

如何创建用于 WorkSpaces 流媒体实例的IAM角色

本主题介绍如何创建新IAM角色以便您可以将其用于 WorkSpaces

  1. 打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles(角色),然后选择 Create role(创建角色)

  3. 在 “选择可信实体的类型” 中,选择 AWS 服务

  4. 来自清单 AWS 服务,选择WorkSpaces

  5. “选择您的用例” 下,WorkSpaces — 允许 WorkSpaces 实例调用 AWS 已选择代表您提供的服务。选择下一步: 权限

  6. 如果可能,选择要用作权限策略的策略,或选择 Create policy(创建策略)以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息,请参阅《IAM用户指南》中创建IAM策略(控制台)过程中的步骤 4。

    在您创建策略后,关闭该选项卡并返回到您的原始选项卡。选中要拥有的权限策略旁边的复选框。 WorkSpaces

  7. (可选)设置权限边界。这是一项高级特征,可用于服务角色,但不可用于服务相关角色。有关更多信息,请参阅《IAM用户指南》中的IAM实体的权限边界

  8. 选择下一步:标签。您可以选择附加标签作为键值对。有关更多信息,请参阅《IAM用户指南》中的为IAM用户和角色添加标签

  9. 选择下一步:审核

  10. 对于角色名称,请键入在 Amazon Web Services 账户中唯一的角色名称。因为其他 AWS 资源可能会引用角色,但创建角色后您无法编辑其名称。

  11. 对于 Role description (角色描述),请保留默认角色描述或键入新角色描述。

  12. 检查该角色,然后选择创建角色

如何在 WorkSpaces 流媒体实例中使用该IAM角色

创建IAM角色后,可以在启动 WorkSpaces 时将其应用于该角色 WorkSpaces。您也可以将角色应用于现有IAM角色 WorkSpaces。

当您将IAM角色应用到时 WorkSpaces,会 WorkSpaces 检索临时证书并在实例上创建 workspaces_machine_role 凭据配置文件。临时凭证有效期为 1 小时,每小时检索一次新凭证。以前的凭证不会过期,因此只要它们有效,您就可以使用它们。您可以使用凭证配置文件拨打 AWS 通过使用,以编程方式提供服务 AWS 命令行界面 (AWS CLI), AWS 的工具 PowerShell,或者 AWS SDK使用您选择的语言。

拨API打电话时,将 workspaces_machine_role 指定为凭据配置文件。否则,由于权限不足,操作将失败。

WorkSpaces 在预配置流媒体实例时担任指定角色。因为 WorkSpaces 使用连接到你的 elastic network interfac VPC e AWS API调用,您的应用程序或脚本必须等待 elastic network interface 变为可用后才能生成 AWS API呼叫。如果在 API elastic network interface 可用之前进行呼叫,则调用将失败。

以下示例显示了如何使用 workspaces_machine_ role 凭据配置文件来描述流媒体实例(实EC2例)和创建 Boto 客户端。Boto 是 Amazon Web Services (AWS) SDK 适用于 Python。

使用描述流式处理EC2实例(实例) AWS CLI

aws ec2 describe-instances --region us-east-1 --profile workspaces_machine_role

使用描述流式处理EC2实例(实例) AWS 用于 PowerShell

你必须使用 AWS 适用于 3.3.563.1 或更高 PowerShell 版本的工具,而亚马逊 Web Services 则适用于。SDK NET版本 3.3.103.22 或更高版本。你可以下载 AWS 适用于 Windows 安装程序的工具,其中包括 AWS 的工具 PowerShell 和适用于 Amazon Web Services SDK。 NET,来自 AWS PowerShell网站工具。

Get-EC2Instance -Region us-east-1 -ProfileName workspaces_machine_role

使用创建 Boto 客户端 AWS SDK适用于 Python

session = boto3.Session(profile_name=workspaces_machine_role')