Como faço para copiar regras de firewall do Lightsail existentes para diferentes instâncias do Lightsail?

Data da última atualização: 28/9/2021

Como faço para copiar regras de firewall para várias instâncias do Amazon Lightsail?

Descrição breve

As regras de firewall são exclusivas para cada instância do Lightsail. Se desejar que várias instâncias tenham as mesmas regras, edite as regras para cada uma delas. Você pode usar a AWS Command Line Interface (AWS CLI) e as chamadas de API para recuperar as regras de firewall atuais e, em seguida, enviá-las para um arquivo.json. Também é possível usar o arquivo.json para copiar todas as regras para outra instância do Lightsail.

Observação: você deve instalar e configurar a AWS CLI para executar as seguintes etapas de resolução. Se você receber erros ao executar comandos da AWS CLI, certifique-se de estar usando a versão mais recente da AWS CLI. Você também pode usar o AWS CloudShell para executar essas etapas.

Resolução

1.    Execute o comando a seguir para recuperar as configurações atuais que você deseja copiar da instância existente e, em seguida, imprima para um arquivo.json. Isso gera um arquivo.json contendo a configuração do firewall. No exemplo a seguir, substitua SourceInstanceName e RegionName pelas informações corretas para sua instância.

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

2.    Abra o arquivo.json, firewall.json neste exemplo, e substitua “portStates” por “portInfos”. Esse parâmetro está no início do arquivo, conforme mostrado no exemplo a seguir:

{
    "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.    Depois de alterar o parâmetro para “portInfos”, você pode usar o arquivo.json para adicionar as mesmas configurações a outras instâncias. No exemplo a seguir, substitua DestinationInstanceName, firewall.json e regionName pelas informações corretas para sua instância.

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