2010access密钥(分享给大家一个简单的阿里云RDS添加
在如今云盛行的年代。安全,显得尤为重要。对于创业公司来说,相较于笨重地机房建设,选择公有云,能减少很多地人力成本、机器成本。公有云也更有保障,更容易扩容。
在这里,小编给大家免费提供一个RDS添加白名单的Golang编写的脚本,虽然简单,却能增加安全性。
package securitygroup
import (
"github/aliyun/alibaba-cloud-sdk-go/services/rds"
"github/gin-gonic/gin"
)
type RDS struct {
AessKeyId string 阿里云账号的aesskey
AessSecret string 阿里云账号的aess secret密钥
DBInstanceId string RDS实例名
DBInstanceIPArrayName string RDS白名单组名
ModifyMode string 白名单分组处理模式。Append为增加白名单
}
func (r RDS) AddRDSwhitelist(c gin.Context) {
client, err := rds.NewClientWithAessKey("ap-southeast-3", r.AessKeyId, r.AessSecret)
request := rds.CreateModifySecurityIpsRequest()
request.Scheme = "https"
request.DBInstanceId = r.DBInstanceId
request.SecurityIps = c.ClientIP() 通过gin框架自带的clientIP()方法获取客户端IP,再加入白名单
request.DBInstanceIPArrayName = r.DBInstanceIPArrayName
request.WhitelistNetworkType = "MIX"
request.ModifyMode = r.ModifyMode
_, err = client.ModifySecurityIps(request)
if err != nil {
c.String(400,"RDS白名单添加失败,错误信息%s\n",err.Error())
return
}
c.String(200,"%s","RDS白名单添加成功")
return
}
上述部分,定义了一个添加白名单的方法,通过web的client方法可以很容易地获取客户端IP,然后添加到RDS白名单。
package main
import (
"github/gin-gonic/gin"
"rds-whitelist/myip"
"rds-whitelist/securitygroup"
)
//初始化ak,ak密钥
const (
AesskeyID = "xxxxxx"
AesskeySecret = "xxxxxx"
)
func main() {
//初始化基本参数
var rds = securitygroup.RDS{
AesskeyID,
AesskeySecret,
"xxxxxx",
"auto_add_whitelist",
"Append",
}
engine := gin.Default()
//处理增加RDS白名单
engine.Handle("GET","/add_rds_whitelist",rds.AddRDSwhitelist)
//运行
engine.Run("0.0.0.0:9090")
}
上面这段部分为程序的主体,利用gin框架启动了一个增加白名单的接口。访问这个接口,即可添加白名单。
执行结果
脚本逻辑简单,却能增加RDS数据库的安全性。只需要将数据库暴露给特定的IP,只允许特定IP访问,总比暴露给外网强吧。
上述内容,均为使用过的,个人想法实现。如有更好的方式地,更好地想法的,不妨评论交流,我会虚心地向大家请教学习,欢迎大家批评指正。
如有不清楚的,我们也可以互相交流。