一般登陆云服务器都限制来源 IP,添加白名单较为繁琐,通过接口可以快速添加。
# ./addWhiteIP
{"Response":{"RequestId":"c89ddf9df-738c-4f2a-9f02-dcd3cfe8c852"}}
Outer IP : 134.175.159.160
直接用接口修改安全组存在风险,可以使用安全组的 参数模板,新建一个参数模板,在安全组中引用,这样每次变更只影响安全组中的一行。
在 安全组 中引用即可。
请参照 腾讯云的 API explorer 生成对应的代码。
以下有四处内容需要修改为你的信息。
package main
import (
"fmt"
"io/ioutil"
"net/http"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"
)
// VPC 中添加 IP组的方式管理安全组
func main() {
credential := common.NewCredential(
"<SecretId>", // 请替换为你的腾讯云 SecretId
"<SecretKey>", // 请替换为你的腾讯云 SecretKey
)
cpf := profile.NewClientProfile()
cpf.HttpProfile.Endpoint = "vpc.tencentcloudapi.com"
client, _ := vpc.NewClient(credential, "<Region>", cpf) // 请替换为可用区ID,例如 ap-guangzhou
request := vpc.NewModifyAddressTemplateAttributeRequest()
responseClient, errClient := http.Get("https://ipw.cn/api/ip/myip") // 获取外网 IP
if errClient != nil {
fmt.Printf("获取外网 IP 失败,请检查网络\n")
panic(errClient)
}
// 程序在使用完 response 后必须关闭 response 的主体。
defer responseClient.Body.Close()
body, _ := ioutil.ReadAll(responseClient.Body)
clientIP := string(body)
params := fmt.Sprintf("{\"AddressTemplateId\":\"<AddressTemplateId>\",\"Addresses\":[\"%s\"]}", clientIP) // 请将 AddressTemplateId 替换为参数模板 ID
err := request.FromJsonString(params)
if err != nil {
panic(err)
}
response, err := client.ModifyAddressTemplateAttribute(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
fmt.Printf("An API error has returned: %s", err)
return
}
if err != nil {
panic(err)
}
fmt.Printf("%s", response.ToJsonString())
fmt.Printf("\nOuter IP : %s\n", clientIP)
}
# go build addWhiteIP.go
每次需要添加安全组之前,之前运行程序即可。
# ./addWhiteIP
{"Response":{"RequestId":"c89ddf9df-738c-4f2a-9f02-dcd3cfe8c852"}}
Outer IP : 134.175.159.160
为了更方便,还可以把该程序添加到系统的环境变量中。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。