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

如何將現有的 Lightsail 防火牆規則複製到不同的 Lightsail 執行個體?

1 分的閱讀內容
0

我想將防火牆規則複製到多個 Amazon Lightsail 執行個體。

簡短描述

若要對多個 Lightsail 執行個體使用相同的防火牆規則,您必須編輯每個執行個體的規則。使用 AWS Command Line Interface (AWS CLI) Lightsail 命令API 動作來擷取目前的防火牆規則。將它們放入 .json 檔案中,然後使用 .json 檔案將所有規則複製到其他 Lightsail 執行個體中。

解決方法

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 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 個月前