[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"$f1poy92099ywgp":3},"\u003Cp>﻿# 阿里云自动化添加安全组\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF\">应用场景\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#%E5%89%8D%E7%BD%AE%E6%9D%A1%E4%BB%B6\">前置条件\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#1-python\">1. Python\u003C\u002Fa>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#11-%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85\">1.1 安装依赖包\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#12-%E7%BC%96%E5%86%99%E8%84%9A%E6%9C%AC\">1.2 编写脚本\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#13-%E6%89%A7%E8%A1%8C%E4%BB%A3%E7%A0%81\">1.3 执行代码\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#2-golang\">2. Golang\u003C\u002Fa>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#21-%E5%AE%89%E8%A3%85%E4%BE%9D%E8%B5%96%E5%8C%85\">2.1 安装依赖包\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#22-%E7%BC%96%E5%86%99%E8%84%9A%E6%9C%AC\">2.2 编写脚本\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#23-%E6%89%A7%E8%A1%8C%E4%BB%A3%E7%A0%81\">2.3 执行代码\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#reference\">reference\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"应用场景\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#应用场景\">\u003Cspan>应用场景\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>每次去阿里云控制台 \u003Cstrong>将自己的外网IP添加为白名单操作过于繁琐\u003C\u002Fstrong>，一切可以自动化的事情应该要自动化，所以我们需要一个 \u003Cstrong>自动将本机外网IP添加为安全组规则的脚本\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch2 id=\"前置条件\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#前置条件\">\u003Cspan>前置条件\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>拥有可以操作 \u003Ccode>AuthorizeSecurityGroup\u003C\u002Fcode> API 的 \u003Ccode>AccessKey\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>前往 \u003Ca href=\"https:\u002F\u002Fram.console.aliyun.com\u002Fmanage\u002Fak\">AccessKey 管理\u003C\u002Fa> 添加 accessKey。\u003C\u002Fp>\n\u003Cp>添加一个子账号，创建 AccessKey \u003Cimg src=\"\u002Fdoc\u002Fram.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>给该 AccessKey 授权一个最小的权限：\u003Ccode>AuthorizeSecurityGroup\u003C\u002Fcode>，只能添加安全组的入方向规则。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002Fram_add_authority.png\" alt=\"\">\u003Cimg src=\"\u002Fdoc\u002FaddCustomRAM-1.png\" alt=\"\">\u003C\u002Fp>\n\u003Cp>准备好了 AccessKey，就可以开始准备脚本了。\u003C\u002Fp>\n\u003Cp>以下提供两种方式， Python 、Golang（推荐，因为编译后看不到密码）。\u003C\u002Fp>\n\u003Cp>代码实现：添加一条安全组入规则，支持本机IP访问 22 端口，如果希望放开所有端口，可以将 request.PortRange 的值修改为 \u003Ccode>1\u002F65535\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch2 id=\"1-python\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#1-python\">\u003Cspan>1. Python\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"11-安装依赖包\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#11-安装依赖包\">\u003Cspan>1.1 安装依赖包\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># pip3 install aliyun-python-sdk-ecs==4.24.3\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"12-编写脚本\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#12-编写脚本\">\u003Cspan>1.2 编写脚本\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>请替换代码中的 \u003Ccode>&lt;accessKeyId&gt;\u003C\u002Fcode>, \u003Ccode>&lt;accessSecret&gt;\u003C\u002Fcode>, \u003Ccode>&lt;RegionId&gt;\u003C\u002Fcode>, \u003Ccode>&lt;YourSecurityGroupId&gt;\u003C\u002Fcode>。\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-python\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">#!\u002Fusr\u002Fbin\u002Fenv python\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">#coding=utf-8\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> requests\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">from\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> aliyunsdkcore\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">client \u003C\u002Fspan>\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> AcsClient\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">from\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> aliyunsdkcore\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">acs_exception\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">exceptions \u003C\u002Fspan>\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> ClientException\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">from\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> aliyunsdkcore\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">acs_exception\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">exceptions \u003C\u002Fspan>\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> ServerException\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">from\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> aliyunsdkecs\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">v20140526\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">AuthorizeSecurityGroupRequest \u003C\u002Fspan>\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> AuthorizeSecurityGroupRequest\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># 获取IPv4地址：https:\u002F\u002F4.wsmdn.dpdns.org\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># 获取IPv6地址：https:\u002F\u002F6.wsmdn.dpdns.org\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># 确认用户网络是IPv4还是IPv6访问优先：https:\u002F\u002Ftest.wsmdn.dpdns.org\u002Fapi\u002Fip\u002Fmyip?json\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">r \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> requests\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">get\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">https:\u002F\u002F4.wsmdn.dpdns.org\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">clientIP \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> r\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">text\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># &#x3C;accessKeyId>, &#x3C;accessSecret>: 前往 https:\u002F\u002Fram.console.aliyun.com\u002Fmanage\u002Fak 添加 accessKey\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># RegionId：安全组所属地域ID ，比如 `cn-guangzhou`\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># 访问 [DescribeRegions:查询可以使用的阿里云地域](https:\u002F\u002Fnext.api.aliyun.com\u002Fapi\u002FEcs\u002F2014-05-26\u002FDescribeRegions) 查阅\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># 国内一般是去掉 ECS 所在可用区的后缀，比如去掉 cn-guangzhou-b 的尾号 -b\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">client \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> AcsClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;accessKeyId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> '\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;accessSecret>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> '\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;RegionId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> AuthorizeSecurityGroupRequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_accept_format\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">json\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_SecurityGroupId\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;YourSecurityGroupId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # 安全组ID\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_IpProtocol\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">tcp\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # 协议,可选 tcp,udp, icmp, gre, all：支持所有协议\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_PortRange\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">22\u002F22\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # 端口范围，使用斜线（\u002F）隔开起始端口和终止端口，如果信任所有端口为 1\u002F65535\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_Priority\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">1\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # 安全组规则优先级，数字越小，代表优先级越高。取值范围：1~100\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_Policy\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">accept\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # accept:接受访问, drop: 拒绝访问\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_NicType\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">internet\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # internet：公网网卡, intranet：内网网卡。\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">set_SourceCidrIp\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">clientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> # 源端IPv4 CIDR地址段。支持CIDR格式和IPv4格式的IP地址范围。\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#DBD7CAEE\">response \u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> client\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">do_action_with_exception\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\"># python2:  print(response)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A965\">print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">str\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">response\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> encoding\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">=\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">utf-8\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">'\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">))\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B8A965\">print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Client IP: \u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">%s\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">  was successfully added to the Security Group.\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> %\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\"> clientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"13-执行代码\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#13-执行代码\">\u003Cspan>1.3 执行代码\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">$\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> python3\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> addSecurityGroupRule.py\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">{\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\"RequestId\"\u003C\u002Fspan>\u003Cspan style=\"color:#B8A965\">:\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">\"1657CAC5-8B1F-4EB8-A947-DC76F44B27C8\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Client\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> IP:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> 119.xx.xx.xx\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">  was\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> successfully\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> added\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> to\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> the\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> Security\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> Group.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"2-golang\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#2-golang\">\u003Cspan>2 Golang\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"21-安装依赖包\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#21-安装依赖包\">\u003Cspan>2.1 安装依赖包\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">$\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> go\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> get\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> github.com\u002Faliyun\u002Falibaba-cloud-sdk-go\u002Fservices\u002Fecs\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"22-编写脚本\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#22-编写脚本\">\u003Cspan>2.2 编写脚本\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>请替换代码中的 \u003Ccode>&lt;accessKeyId&gt;\u003C\u002Fcode>, \u003Ccode>&lt;accessSecret&gt;\u003C\u002Fcode>, \u003Ccode>&lt;RegionId&gt;\u003C\u002Fcode>, \u003Ccode>&lt;YourSecurityGroupId&gt;\u003C\u002Fcode>。\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-go\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">package\u003C\u002Fspan>\u003Cspan style=\"color:#5DA994\"> main\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">import\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> (\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">fmt\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">io\u002Fioutil\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">net\u002Fhttp\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#C98A7D77\">\t\"\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">github.com\u002Faliyun\u002Falibaba-cloud-sdk-go\u002Fservices\u002Fecs\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">func\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\"> main\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tresponseClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> errClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> http\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Get\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">https:\u002F\u002F4.wsmdn.dpdns.org\u002F\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 获取外网 IP\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> errClient\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Printf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">获取外网 IP 失败，请检查网络\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">\t\tpanic\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">errClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\t\u002F\u002F 程序在使用完 response 后必须关闭 response 的主体。\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tdefer\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> responseClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Close\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tbody\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> _\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ioutil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ReadAll\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">responseClient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tclientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> string\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">body\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\u002F\u002F &#x3C;accessKeyId>, &#x3C;accessSecret>: 前往 https:\u002F\u002Fram.console.aliyun.com\u002Fmanage\u002Fak 添加 accessKey\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\u002F\u002F RegionId：安全组所属地域ID ，比如 `cn-guangzhou`\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\u002F\u002F 访问 [DescribeRegions:查询可以使用的阿里云地域](https:\u002F\u002Fnext.api.aliyun.com\u002Fapi\u002FEcs\u002F2014-05-26\u002FDescribeRegions) 查阅\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#758575DD\">\u002F\u002F 国内一般是去掉 ECS 所在可用区的后缀，比如去掉 cn-guangzhou-b 的尾号 -b\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tclient\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ecs\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">NewClientWithAccessKey\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;RegionId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;accessKeyId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;accessSecret>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Error\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">())\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> ecs\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">CreateAuthorizeSecurityGroupRequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">()\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Scheme\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">https\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">SecurityGroupId\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">&#x3C;YourSecurityGroupId>\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 安全组ID\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">IpProtocol\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">tcp\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 协议,可选 tcp,udp, icmp, gre, all：支持所有协议\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">PortRange\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">22\u002F22\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 端口范围，使用斜线（\u002F）隔开起始端口和终止端口\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Priority\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">1\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 安全组规则优先级，数字越小，代表优先级越高。取值范围：1~100\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">Policy\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">accept\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F accept:接受访问, drop: 拒绝访问\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">NicType\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\"> \"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">internet\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F internet：公网网卡, intranet：内网网卡。\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\trequest\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">SourceCidrIp\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> clientIP\u003C\u002Fspan>\u003Cspan style=\"color:#758575DD\"> \u002F\u002F 源端IPv4 CIDR地址段。支持CIDR格式和IPv4格式的IP地址范围。\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tresponse\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> :=\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> client\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">AuthorizeSecurityGroup\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">request\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#4D9375\">\tif\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> err\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> !=\u003C\u002Fspan>\u003Cspan style=\"color:#CB7676\"> nil\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\t\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Print\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\">err\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Error\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">())\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">\t}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#BD976A\">\tfmt\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">.\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">Printf\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Response: \u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">%#v\\n\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">Client IP: \u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">%s\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">  was successfully added to the Security Group.\u003C\u002Fspan>\u003Cspan style=\"color:#C99076\">\\n\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> response\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">,\u003C\u002Fspan>\u003Cspan style=\"color:#BD976A\"> clientIP\u003C\u002Fspan>\u003Cspan style=\"color:#666666\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#666666\">}\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"23-执行代码\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#23-执行代码\">\u003Cspan>2.3 执行代码\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">$\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> go\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> run\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> addSecurityGroupRule.go\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Response:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> &#x26;\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ecs.AuthorizeSecurityGroupResponse\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">{BaseResponse:\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">*responses.BaseResponse\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">)(\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">0xc00014c080\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">), RequestId:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">53C16A7C-91DC-48E6-B6BA-B0830A00C7C1\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Client\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> IP:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> 119.xx.xx.xx\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">  was\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> successfully\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> added\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> to\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> the\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> Security\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> Group.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>无误后，编译程序\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-bash\">\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">$\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> go\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> build\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> addSecurityGroupRule.go\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">$\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> .\u002FaddSecurityGroupRule\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Response:\u003C\u002Fspan>\u003Cspan style=\"color:#666666\"> &#x26;\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">ecs.AuthorizeSecurityGroupResponse\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">{BaseResponse:\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">(\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">*responses.BaseResponse\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">)(\u003C\u002Fspan>\u003Cspan style=\"color:#80A665\">0xc0002c0080\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">), RequestId:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">BEAC369E-2267-4EEF-9463-26A1DEA3ED9B\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D77\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#DBD7CAEE\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#80A665\">Client\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> IP:\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> 119.xx.xx.xx\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\">  was\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> successfully\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> added\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> to\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> the\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> Security\u003C\u002Fspan>\u003Cspan style=\"color:#C98A7D\"> Group.\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>自动化可以解放我们，一起加油吧。\u003C\u002Fp>\n\u003Ch2 id=\"reference\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#reference\">\u003Cspan>reference\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>[1] aliyun. \u003Ca href=\"https:\u002F\u002Fnext.api.aliyun.com\u002Fapi\u002FEcs\u002F2014-05-26\u002FAuthorizeSecurityGroup\">增加一条入方向安全组规则\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",1787918413301]