使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何将现有的 Lightsail 防火墙规则复制到不同的 Lightsail 实例?

1 分钟阅读
0

我想将防火墙规则复制到多个 Amazon Lightsail 实例。

简短描述

要对多个 Lightsail 实例使用相同的防火墙规则,必须编辑每个实例的规则。使用 AWS 命令行界面(AWS CLI)Lightsail 命令API 操作来检索当前的防火墙规则。将这些规则加入一个 .json 文件中,然后使用这个 .json 文件将所有规则复制到其他 Lightsail 实例中。

解决方法

**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 Troubleshoot AWS CLI errors。此外,确保您使用的是最新版本的 AWS CLI

  1. 要检索要从现有实例复制的当前配置,请运行 get-instance-port-states 命令:

    $ aws lightsail get-instance-port-states --instance-name SourceInstanceName --region RegionName | grep -v "state" > firewall.json

    **注意:**前面的命令生成一个包含防火墙配置信息的 .json 文件。将 SourceInstanceName 替换为您的源实例名称,将 RegionName 替换为您的实例所在的 AWS 区域。

  2. 打开 .json 文件,然后将 portStates 替换为 portInfos

    {      
            "portStates": [
            {
                "fromPort": 80,
                "toPort": 80,
                "protocol": "tcp",
                "cidrs": [
                    "0.0.0.0/0"
                ],
                "cidrListAliases": []
            },
            {
                "fromPort": 22,
                "toPort": 22,
                "protocol": "tcp",
                "cidrs": [
                    "0.0.0.0/0"
                ],
                "cidrListAliases": []
            },
            {
                "fromPort": 8080,
                "toPort": 8080,
                "protocol": "tcp",
                "cidrs": [
                    "11.11.11.0/20",
                    "22.22.22.0/20"
                ],
                "cidrListAliases": []
            }
        ]
    }
  3. 要将相同的配置添加到其他实例,请运行 put-instance-public-ports 命令:

    $ aws lightsail put-instance-public-ports --instance-name DestinationInstanceName  --cli-input-json file://firewall.json --region
    RegionName

    **注意:**将 DestinationInstanceName 替换为目标实例,将 firewall.json 替换为您的 .json 文件名,将 RegionName 替换为您的实例所在的区域。

AWS 官方
AWS 官方已更新 8 个月前