¿Cómo puedo copiar las reglas del firewall de Lightsail existentes en diferentes instancias de Lightsail?

Última actualización: 28-09-2021

¿Cómo copio las reglas del firewall en varias instancias de Amazon Lightsail?

Descripción breve

Las reglas del firewall son exclusivas de cada instancia de Lightsail. Si quiere que varias instancias tengan las mismas reglas, debe editar las reglas de cada una. Puede utilizar AWS Command Line Interface (AWS CLI) y llamadas a la API para recuperar las reglas del firewall actuales y, a continuación, generarlas en un archivo .json. Puede utilizar el archivo .json para copiar todas las reglas en otra instancia de Lightsail.

Nota: debe instalar y configurar AWS CLI para llevar a cabo los siguientes pasos de resolución. Si recibe errores al ejecutar comandos de AWS CLI, asegúrese de que utiliza la versión más reciente de AWS CLI También puede utilizar AWS CloudShell para llevar a cabo estos pasos.

Resolución

1.    Ejecute el siguiente comando para recuperar las configuraciones actuales que quiera copiar de la instancia existente y, a continuación, envíela a un archivo .json. Esto genera un archivo .json que contiene la configuración del firewall. En el siguiente ejemplo, sustituya SourceInstanceName y RegionName por la información correcta de su instancia.

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

2.    Abra el archivo .json, firewall.json de este ejemplo y, a continuación, sustituya "portStates" por "portInfos". Este parámetro se encuentra al principio del archivo, como se muestra en el siguiente ejemplo:

{
    "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.    Después de cambiar el parámetro a "portInfos", puede usar el archivo .json para agregar las mismas configuraciones a otras instancias. En el siguiente ejemplo, sustituya DestinationInstanceName, firewall.json y RegionName por la información correcta de su instancia.

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