可以通过在 EC2 实例中配置安全组规则来限制 SSM 端口转发的访问。
例如,在安全组设置中,添加针对源 IP(或 IP 范围)和目标端口的出站规则。这将阻止任何尝试使用未经授权的 IP 地址访问目标端口的连接。下面是一个示例安全组出站规则,使用简单的 Python 脚本将本地端口 8080 转发到远程 EC2 实例的 SSH 22 端口:
aws ec2 create-security-group --group-name ssm-port-forward-example --description "Example security group for SSM port forwarding"
aws ec2 authorize-security-group-ingress --group-name ssm-port-forward-example --protocol tcp --port 8080 --cidr 0.0.0.0/0
sudo yum install -y python3
pip3 install aws-ssm-port-forward
aws ssm start-session --target instance-id --document-name AWS-StartPortForwardingSession --parameters "{\"portNumber\":[\"22\"],\"localPortNumber\":[\"8080\"]}"
这将允许来自所有 IP 地址的流量通过本地端口 8080 转发到 SSH 端口 22。要限制一个特定的 IP 地址,请替换 0.0.0.0/0 为您的 IP 地址(使用 CIDR 表示法)。
为了确保您的安全组规则正确工作,请使用 AWS 提供的网络扫描工具检查它是否符合最佳实践。