跳至内容

如何使用会话管理器创建端口转发?

1 分钟阅读
0

我想使用会话管理器(AWS Systems Manager 的一项功能)来创建端口转发。

解决方案

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

要使用会话管理器创建端口转发,请完成以下步骤:

  1. 确认 Systems Manager 管理您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。有关详细信息,请参阅使用 Systems Manager 管理 EC2 实例在适用于 Linux 的 EC2 实例上手动安装和卸载 AWS Systems Manager Agent

  2. 为 AWS CLI 安装会话管理器插件

  3. 要验证目标 EC2 实例中的端口是否处于侦听模式,请运行以下命令:
    Linux:

    netstat -plant

    macOS:

    lsof -iTCP -sTCP:LISTEN -P -n

    Windows:

    netstat -nb
  4. 配置 AWS Identity and Access Management (IAM) 策略,允许用户通过 Systems Manager 使用端口转发会话。以下 IAM 策略示例允许在 AWS 账户中的所有 EC2 实例上进行端口转发:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "ssm:StartSession",
                "Resource": [
                    "arn:aws:ec2:*:example-account-id:instance/*",
                    "arn:aws:ssm:*::document/AWS-StartPortForwardingSession"
                ]
            }
        ]
    }

    **注意:**将 example-account-id 替换为您的账户 ID:

  5. 根据您的操作系统运行该命令。
    Linux 或 macOS

    # aws ssm start-session \
     --target example-EC2-instance-ID \
     --document-name AWS-StartPortForwardingSession \  
      --parameters '{"portNumber":["80"], "localPortNumber":["example-local-port"]}'

    **注意:**将 example-EC2-instance-ID 替换为您的 EC2 实例 ID,将 example-local-port 替换为您的本地端口。
    Windows:

    # aws ssm start-session  
     --target "example-EC2-instance-ID" --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["80"],"localPortNumber"=["example-local-port"]

    **注意:**将 example-EC2-instance-ID 替换为您的 EC2 实例 ID,将 example-local-port 替换为您的本地端口。

  6. 要查看实例中的 Web 服务器内容,在本地计算机的浏览器中,加载 http://localhost:example-local-port
    **注意:**无需在安全组或网络访问控制列表中打开托管 EC2 实例上的入站端口 80。

AWS 官方已更新 9 个月前