管理 SSH 访问 - AWS OpsWorks

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

管理 SSH 访问

AWS OpsWorks Stacks 同时支持 Linux 和 Windows 堆栈的 SSH 密钥。

  • 对于 Linux 实例,您可以使用 SSH 登录到实例以运行代理 CLI 命令。

    有关更多信息,请参阅使用 SSH 登录

  • 对于 Windows 实例,您可以使用 SSH 密钥来获取实例的管理员密码,您随后可使用该密码通过 RDP 进行登录。

    有关更多信息,请参阅 使用 RDP 登录

身份验证基于 SSH 密钥对,该密钥对包含公有密钥和私有密钥:

  • 您可以在实例上安装公有密钥。

    位置取决于特定的操作系统,但 AWS OpsWorks Stacks 将为您处理细节。

  • 您在本地存储私有密钥并将其提供给 SSH 客户端 (如 ssh.exe) 以访问该实例。

    SSH 客户端使用私有密钥连接到该实例。

要向堆栈用户提供 SSH 访问权,您需要通过某种方式创建 SSH 密钥对、在堆栈的实例上安装公有密钥并安全地管理私有密钥。

Amazon EC2 提供了一种简单的方式,可在实例上安装公有 SSH 密钥。您可以使用 Amazon EC2 控制台或 API 为计划使用的每个 AWS 区域创建一个或多个密钥对。Amazon EC2 将在 AWS 上存储公有密钥,并且您将本地存储私有密钥。在启动实例时,您可以指定区域的一个密钥对,Amazon EC2 将自动在实例上安装该密钥对。然后,您可以使用相应的私有密钥来登录该实例。有关更多信息,请参阅 Amazon EC2 密钥对

对于 AWS OpsWorks Stacks,您可以在创建堆栈时指定区域的一个 Amazon EC2 密钥对,并可选择在创建每个实例时用其他密钥对覆盖它。当 AWS OpsWorks Stacks 启动相应的 Amazon EC2 实例时,它会指定密钥对,并且 Amazon EC2 会在实例上安装公有密钥。然后,您可以使用私有密钥登录或检索管理员密码,就像您对标准 Amazon EC2 实例所做的一样。有关更多信息,请参阅 安装 Amazon EC2 密钥

使用 Amazon EC2 密钥对很方便,但有两个重要限制:

  • Amazon EC2 密钥对与特定的 AWS 区域关联。

    如果您在多个区域中工作,则必须管理多个密钥对。

  • 您只能在一个实例上安装一个 Amazon EC2 密钥对。

    如果您想允许多个用户登录,这些用户必须具有公有密钥的副本,这不是推荐的安全实践。

对于 Linux 堆栈,AWS OpsWorks Stacks 提供了更简单且更灵活的方法来管理 SSH 密钥对。

  • 每个用户均注册一个个人密钥对。

    他们在本地存储私有密钥并将公有密钥注册到 AWS OpsWorks Stacks,如注册 IAM 用户的公有 SSH 密钥中所述。

  • 当您设置堆栈的用户权限时,可以指定哪些用户应具有对堆栈实例的 SSH 访问权。

    AWS OpsWorks Stacks 会自动在堆栈的实例上为每个授权用户创建一个系统用户,并安装其公有密钥。然后,该用户可以使用相应的私有密钥进行登录,如使用 SSH 登录中所述。

使用个人 SSH 密钥具有以下优势。

  • 无需手动配置实例上的密钥;AWS OpsWorks Stacks 会自动在每个实例上安装适当的公有密钥。

  • AWS OpsWorks Stacks 仅安装授权用户的个人公有密钥。

    未授权用户无法使用其个人私有密钥来获取对实例的访问权。利用 Amazon EC2 密钥对,任何具有相应私有密钥的用户均可登录,无论其是否具有授权的 SSH 访问权。

  • 如果用户不再需要 SSH 访问权,则可使用 Permissions 页撤销用户的 SSH/RDP 权限。

    AWS OpsWorks Stacks 立即从堆栈的实例卸载公有密钥。

  • 您可以对任意 AWS 区域使用相同的密钥。

    用户必须仅管理一个私有密钥。

  • 无需共享私有密钥。

    每个用户均有其自己的私有密钥。

  • 可轻松轮换密钥。

    您或用户更新 My Settings (我的设置) 中的公有密钥,而 AWS OpsWorks Stacks 将自动更新实例。