为 Linux 和 macOS 托管式节点开启“运行身份”支持
默认情况下,Session Manager 将使用在托管节点上创建的系统生成的 ssm-user
账户的凭证,对连接进行身份验证。(在 Linux 和 macOS 计算机上,此账户添加到 /etc/sudoers/
。) 如果您选择,则可以改为使用操作系统 (OS) 用户账户或已加入 Active Directory 的示例的域用户的凭据对会话进行身份验证。在这种情况下,Session Manager 会在启动会话之前验证节点上或域中是否存在您指定的操作系统账户。如果您尝试使用节点上或域中不存在的操作系统账户启动会话,则连接将失败。
注意
Session Manager 不支持使用操作系统的 root
用户账户对连接进行身份验证。对于使用操作系统用户账户进行身份验证的会话,节点的操作系统级别和目录策略(如登录限制或系统资源使用限制)可能不适用。
工作方式
如果为会话启用“运行身份”支持,系统将检查访问权限,如下所示:
-
对于正在启动会话的用户,是否使用
SSMSessionRunAs =
标记了其 IAM 实体(用户或角色)?os user account name
如果是,托管节点上是否存在该操作系统用户名? 如果存在,启动会话。否则,不允会话启动。
如果尚未使用
SSMSessionRunAs =
标记 IAM 实体,请继续执行步骤 2。os user account name
-
如果尚未使用
SSMSessionRunAs =
标记 IAM 实体,是否已在 AWS 账户 的 Session Manager 首选项中指定了操作系统用户名?os user account name
如果是,托管节点上是否存在该操作系统用户名? 如果存在,启动会话。否则,不允会话启动。
注意
当您激活“运行方式”支持时,它将阻止 Session Manager 使用托管节点上的 ssm-user
账户启动会话。这意味着,如果 Session Manager 无法使用指定的操作系统用户账户进行连接,则它不会退回到使用默认方法进行连接。
如果您在未指定操作系统账户或标记 IAM 实体的情况下激活“运行方式”,并且未在 Session Manager 首选项中指定操作系统账户,则会话连接尝试将失败。
为 Linux 和 macOS 托管式节点启用“运行身份”支持
访问 https://console.aws.amazon.com/systems-manager/
,打开 AWS Systems Manager 控制台。 -
在导航窗格中,选择 Session Manager。
-
选择首选项选项卡,然后选择编辑。
-
选中为 Linux 实例启用运行身份支持旁边的复选框。
-
请执行以下操作之一:
-
选项 1:在操作系统用户名字段中,输入您要用于启动会话的操作系统用户账户的名称。使用此选项,所有会话都由同一操作系统用户为您的 AWS 账户 中使用 Session Manager 连接的所有用户运行。
-
选项 2(建议):选择 IAM 控制台链接。在导航窗格中,选择用户或角色。选择要将标签添加到的实体(用户或角色),然后选择标签选项卡。对于密钥名称,输入
SSMSessionRunAs
。对于密钥值,输入操作系统用户账户的名称。选择保存更改。如果您选择此选项,则您可以使用此选项为不同 IAM 实体指定唯一的操作系统用户。有关标记 IAM 实体(用户或角色)的更多信息,请参阅《IAM 用户指南》中的标记 IAM 资源
示例如下:
-
-
选择保存。