Requisitos

OCID da subnet de origem Obrigatório
OCID da subnet de destino Obrigatório

Em algum momento trabalhando com Oracle Cloud será a necessário copiar/replicar security list para outros ambientes, seja para obter alta disponibilidade, trabalhar com múltiplas regiões ou simplesmente para criar um lab para testes. Caso tenha SL com muitas regras isso pode se tornar uma tarefa difícil, imagine adicionar 100 regras ou mais uma a uma via console da cloud.

Obtenha o OCID das subnets de origem e destino

Navegue até Networking > Virtual Cloud Networks > Virtual Cloud Network Details > Security Lists, copie o OCID da Security List de Origem, observe as 133 regras entre Ingress Rules e Egress Rules.

sl-01

Copie o OCID da Security List de Destino.

sl-02

Copiando regras da security list de origem

Via interface gráfica copiar e atualizar as regras de uma SL para outra leva muito tempo, mas com o OCI CLI a mesma tarefa leva apenas alguns segundos.

$ oci network security-list get --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaabcsvprvix3wkw5p4we5cvjafpskeaio6kjr2ltbe3dhq6dr5osyq

Observe que o output é toda a estrutura da security list com informações de compartment, display name, egress-security-rules, ingress-security-rules. Mas vamos precisar apenas egress-security-rules e ingress-security-rules.

sl-03

Para filtrar apenas os dados necessários, será utilizado o jq que é um processador de linha de comando para JSON. Será feito em duas etapas para egress-security-rules e ingress-security-rules.

Regras de Egress

$ oci network security-list get --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaabcsvprvix3wkw5p4we5cvjafpskeaio6kjr2ltbe3dhq6dr5osyq | jq '.data."egress-security-rules"'

Com isso o output traz apenas as regras de egress.

sl-04

Adicione as regras de egress a serem “clonadas” para o arquivo egress.json.

$ oci network security-list get --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaabcsvprvix3wkw5p4we5cvjafpskeaio6kjr2ltbe3dhq6dr5osyq | jq '.data."egress-security-rules"' > egress.json

Então atualize a security list de destino com as regras contidas no arquivo egress.json, use o OCID da security list de destino. Quando solicitado confirme as alterações digitando y para confirmar.

$ oci network security-list update --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaa6irvzcxv65aralnk5bt7wzinqhqkgghrbxiepoh5caeu77yafeta --egress-security-rules file://egress.json

Regras de Ingress

Basta repetir os passos da task anterior agora apontando para as regras de Ingress.

$ oci network security-list get --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaabcsvprvix3wkw5p4we5cvjafpskeaio6kjr2ltbe3dhq6dr5osyq | jq '.data."ingress-security-rules"'

Com isso o output traz apenas as regras de ingress.

sl-05

Adicione as regras de ingress a serem “clonadas” para o arquivo ingress.json.

$ oci network security-list get --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaabcsvprvix3wkw5p4we5cvjafpskeaio6kjr2ltbe3dhq6dr5osyq | jq '.data."ingress-security-rules"' > ingress.json

Então atualize a security list de destino com as regras contidas no arquivo ingress.json, use o OCID da security list de destino. Quando solicitado confirme as alterações digitando y para confirmar.

$ oci network security-list update --security-list-id ocid1.securitylist.oc1.sa-saopaulo-1.aaaaaaaa6irvzcxv65aralnk5bt7wzinqhqkgghrbxiepoh5caeu77yafeta --ingress-security-rules file://ingress.json

Agora todas as regras de egress e ingress foram “clonadas” com sucesso.

sl-06