OCI NSG設定の洗い替え

ネットワークセキュリティグループの洗い替えをコード化してみました。

下記はOCI TokyoリージョンのOCI内部サービスのパブリックIPレンジについて、Egressルールに追加した例です。

たぶん「All NRT Services In Oracle Services Network」をEgressに追加するのと同義のはず。。。

# Steup NSG ID
network_security_group_id=”<Target NSG OCID>”

# Get OCI Service Target CIDR
wget https://docs.cloud.oracle.com/en-us/iaas/tools/public_ip_ranges.json
ip_list=$(jq -r ‘.regions[] | select (.region==”ap-tokyo-1″) | .cidrs[] | select (.cidr | contains(“.”)) | .cidr ‘ < public_ip_ranges.json)

# Check Exist Settings
security_rules=$(oci network nsg rules list –all –nsg-id “${network_security_group_id}” | jq -rc ‘.data’)
security_rule_ids=$(echo “${security_rules}” | jq -rc ‘[.[] | .id]’)

# Add New CIDR
for cidr in ${ip_list}
do
oci network nsg rules add –nsg-id ${network_security_group_id} –security-rules “[{\”description\”: null,\”destination\”: \”${cidr}\”,\”direction\”: \”EGRESS\”,\”is-stateless\”: false,\”protocol\”: \”6\”,\”tcp-options\”: null}]”
done

# Delete Add CIDR
security_rules=$(oci network nsg rules remove –nsg-id “${network_security_group_id}” –security-rule-ids “${security_rule_ids}”)

応用として、外部サービスなどでIP変更可能性があるものを定期的にチェック・洗い替える場合などに使えるかと。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする