Amazon Elastic Compute Cloud
Windows 实例用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

教程:远程管理您的 Amazon EC2 实例

本教程介绍如何从您的本地计算机使用 Systems Manager Run Command 远程管理 Amazon EC2 实例。本教程包含使用 Amazon EC2 控制台、适用于 Windows PowerShell 的 AWS 工具 和 AWS Command Line Interface 执行命令的过程。

注意

借助 Run Command,您还可以在本地环境或其他云提供商提供的环境中管理您的服务器和虚拟机 (VM)。有关更多信息,请参阅在混合环境中设置 Systems Manager

开始前的准备工作

您必须为 Systems Manager 配置 AWS Identity and Access Management (IAM) 实例配置文件。将具有 AmazonEC2RoleforSSM 托管策略的 IAM 角色附加到 Amazon EC2 实例。借助该角色,实例能够与 Systems Manager API 通信。有关如何将角色附加到现有实例的更多信息,请参阅将 IAM 角色附加到实例

您还必须为 Systems Manager 配置您的 IAM 用户账户,如下一节中所述。

向您的用户账户授予对 Systems Manager 的访问权限

必须对您的用户账户进行配置,以便与 SSM API 进行通信。使用下面的过程将托管 AWS Identity and Access Management (IAM) 策略附加到您的用户账户,以便向您授予对 SSM API 操作的完全访问权。

为您的用户账户创建 IAM 策略

  1. 通过以下网址打开 IAM 控制台:https://console.amazonaws.cn/iam/

  2. 在导航窗格中,选择 Policies。(如果这是首次使用 IAM,请选择试用,然后选择创建策略。)

  3. Filter 字段中,键入 AmazonSSMFullAccess 并按 Enter。

  4. 选中 AmazonSSMFullAccess 旁边的复选框,然后依次选择策略操作附加

  5. 附加策略页面上,选择您的用户账户,然后选择附加策略

安装 SSM 代理

SSM 代理处理 Run Command 请求,并配置在请求中指定的实例。该代理默认安装在 Windows AMI(从 2016 年 11 月开始)、Amazon Linux AMI(从 2017 年 9 月开始)以及所有 Amazon Linux 2 AMI 上。

要在 Linux 上安装该代理,请参阅 AWS Systems Manager 用户指南 中的在 Linux 实例上安装和配置 SSM 代理

要在 Windows 上安装该代理,请参阅 AWS Systems Manager 用户指南 中的在 Windows 实例上安装和配置 SSM 代理

使用 EC2 控制台发送命令

使用下面的过程,列出通过从 Amazon EC2 控制台使用 Run Command 在实例上运行的所有服务。

从控制台使用 Run Command 执行命令

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Run Command

  3. 选择 Run a command

  4. 对于 Command document,选择 AWS-RunPowerShellScript (针对 Windows 实例) 和 AWS-RunShellScript (针对 Linux 实例)。

  5. 对于 Target instances,选择您创建的实例。如果您没有看到该实例,请确保您当前位于创建实例时使用的区域。另外,按照前文所述,确保您已配置 IAM 角色和信任策略。

  6. 对于 Commands,键入 Get-Service (Windows) 或 ps aux (Linux)。

  7. (可选) 对于 Working Directory,指定要将命令运行于的 EC2 实例上的文件夹的路径。

  8. (可选) 对于 Execution Timeout,指定 EC2Config 服务或 SSM 代理在超时和失败前将尝试运行命令的秒数。

  9. 对于 Comment,我们建议提供将帮助您在命令列表中标识该命令的信息。

  10. 对于 Timeout (seconds),键入在实例被视为无法访问且命令执行失败之前,Run Command 应尝试连接实例的秒数。

  11. 选择 Run 执行命令。Run Command 将显示一个状态屏幕。选择 View result

  12. 要查看输出,请选择适用于该命令的命令调用,选择 Output 选项卡,然后选择 View Output

     使用 Run Command 执行的命令的列表

有关如何使用 Run Command 执行命令的更多示例,请参阅使用 Systems Manager Run Command 执行命令

使用 适用于 Windows PowerShell 的 AWS 工具 发送命令

使用下面的过程,列出通过从 适用于 Windows PowerShell 的 AWS 工具 使用 Run Command 在实例上运行的所有服务。

执行命令

  1. 在本地计算机上,下载最新版本的 适用于 Windows PowerShell 的 AWS 工具

  2. 在本地计算机上打开 适用于 Windows PowerShell 的 AWS 工具 并执行以下命令来指定凭证。

    Set-AWSCredentials –AccessKey key –SecretKey key
  3. 执行以下命令设置 PowerShell 会话的区域。指定您在前面的步骤中创建实例时使用的区域。此示例使用 us-west-2 区域。

    Set-DefaultAWSRegion -Region us-west-2
  4. 执行以下命令来检索在实例上运行的服务。

    Send-SSMCommand -InstanceId 'Instance-ID' -DocumentName AWS-RunPowerShellScript -Comment 'listing services on the instance' -Parameter @{'commands'=@('Get-Service')}

    命令将返回一个命令 ID,您将使用该 ID 来查看结果。

  5. 以下命令返回原始实例 Send-SSMCommand 的输出。输出在 2500 个字符后被截断。要查看完整服务列表,请在命令中使用 -OutputS3BucketName bucket_name 参数指定 Amazon S3 存储桶。

    Get-SSMCommandInvocation -CommandId Command-ID -Details $true | select -ExpandProperty CommandPlugins

有关如何将 Run Command 与 Windows PowerShell 工具 结合使用来执行命令的更多示例,请参阅使用 适用于 Windows PowerShell 的 AWS 工具 的 Systems Manager Run Command 演练

使用 AWS CLI 发送命令

使用下面的过程,列出通过从 AWS CLI 使用 Run Command 在实例上运行的所有服务。

执行命令

  1. 在您的本地计算机上,下载最新版本的 AWS Command Line Interface (AWS CLI)。

  2. 在本地计算机上打开 AWS CLI 并执行以下命令来指定凭证和区域。

    aws configure
  3. 系统将提示您指定以下内容。

    AWS Access Key ID [None]: key AWS Secret Access Key [None]: key Default region name [None]: region, for example us-east-1 Default output format [None]: ENTER
  4. 执行以下命令来检索在实例上运行的服务。

    aws ssm send-command --document-name "AWS-RunShellScript" --comment "listing services" --instance-ids "Instance-ID" --parameters commands="service --status-all" --region us-west-2 --output text

    命令将返回一个命令 ID,您将使用该 ID 来查看结果。

  5. 以下命令返回原始实例 Send-SSMCommand 的输出。输出在 2500 个字符后被截断。要查看完整服务列表,您需要在命令中使用 --output-s3-bucket-name bucket_name 参数指定 Amazon S3 存储桶。

    aws ssm list-command-invocations --command-id "command ID" --details

有关如何使用 AWS CLI 通过 Run Command 执行命令的更多示例,请参阅使用 AWS CLI 的 Systems Manager Run Command 演练

有关 Run Command 和 Systems Manager 的更多信息,请参阅以下参考资料。