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

1 分的閱讀內容
0

如何將防火牆規則複製到多個 Amazon Lightsail 執行個體?

簡短描述

防火牆規則對每個 Lightsail 執行個體都是唯一的。如果您希望多個執行個體具有相同的規則,則必須編輯每個執行個體的規則。您可以使用 AWS Command Line Interface (AWS CLI) 和 API 呼叫來擷取目前的防火牆規則,然後將其輸出到 .json 檔案中。您可以使用 .json 檔案將所有規則複製到另一個 Lightsail 執行個體中。

**注意:**您必須安裝設定 AWS CLI 才能執行下列解決方案步驟。注意:如果您在執行 AWS CLI 命令時收到錯誤,請確保您使用的是最新版 AWS CLI。 您也可以使用 AWS CloudShell 來執行這些步驟。

解決方案

1.    執行下列命令,以擷取您想要從現有執行個體複製的目前組態,然後將其輸出至 .json 檔案。這會產生包含防火牆組態的 .json 檔案。在下列範例中,將 SourceInstanceNameRegionName 取代為執行個體的正確資訊。

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

2.    在此範例中,開啟 .json 檔案,firewall.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.    將參數變更為 "portInfos" 後,您可以使用 .json 檔案將相同的組態新增至其他執行個體中。在下列範例中,將 DestinationInstanceNamefirewall.jsonRegionName 取代為您執行個體的正確資訊。

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

相關資訊

AWS CLI 命令參考 - lightsail

Amazon Lightsail API 參考 - 行動

get-instance-port-states

open-instance-public-ports

AWS 官方
AWS 官方已更新 3 年前