配置訪問(wèn)憑證
本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。
使用 Go SDK 發(fā)起請(qǐng)求訪問(wèn) Tablestore,您需要配置訪問(wèn)憑證。阿里云服務(wù)會(huì)通過(guò)訪問(wèn)憑證驗(yàn)證您的身份信息和訪問(wèn)權(quán)限。您可以根據(jù)使用場(chǎng)景對(duì)認(rèn)證和授權(quán)的要求,配置不同類型的訪問(wèn)憑證。
前提條件
配置訪問(wèn)憑證前,您需要完成安裝表格存儲(chǔ) Go SDK 的準(zhǔn)備工作。具體操作,請(qǐng)參見(jiàn)安裝 Go SDK。
訪問(wèn)憑證
訪問(wèn)憑證選型
臨時(shí)訪問(wèn)憑證:對(duì)于需要高安全性的場(chǎng)景,建議使用臨時(shí)訪問(wèn)憑證。臨時(shí)訪問(wèn)憑證可以限制訪問(wèn)的有效期,從而減少訪問(wèn)憑證泄露的風(fēng)險(xiǎn)。此外,臨時(shí)訪問(wèn)憑證支持權(quán)限控制,可以有效地避免權(quán)限過(guò)大的問(wèn)題。
長(zhǎng)期訪問(wèn)憑證:出于安全性考慮,不建議您使用長(zhǎng)期訪問(wèn)憑證。對(duì)于需要便利性的場(chǎng)景,長(zhǎng)期訪問(wèn)憑證可以在較長(zhǎng)時(shí)間內(nèi)免除多次刷新的麻煩。
重要建議每三個(gè)月更換一次長(zhǎng)期訪問(wèn)憑證,以提高賬號(hào)的安全性。
當(dāng)長(zhǎng)期訪問(wèn)憑證泄露或者不再使用時(shí),應(yīng)該及時(shí)刪除或者禁用相關(guān)的訪問(wèn)憑證,以免造成安全風(fēng)險(xiǎn)。
臨時(shí)訪問(wèn)憑證
當(dāng)您準(zhǔn)備臨時(shí)使用 Go SDK 訪問(wèn) Tablestore 服務(wù)時(shí),您可以通過(guò) STS 服務(wù)頒發(fā)一個(gè) STS 臨時(shí)訪問(wèn)憑證。臨時(shí)訪問(wèn)憑證無(wú)需透露您的 RAM 用戶密鑰,使 Tablestore 的訪問(wèn)更加安全。
創(chuàng)建 RAM 用戶。具體操作,請(qǐng)參見(jiàn)創(chuàng)建 RAM 用戶。
為 RAM 用戶授予
AliyunSTSAssumeRoleAccess
權(quán)限。具體操作,請(qǐng)參見(jiàn)為 RAM 用戶授權(quán)。創(chuàng)建 RAM 角色,并為 RAM 角色授予自定義權(quán)限策略。具體操作,請(qǐng)參見(jiàn)創(chuàng)建 RAM 角色和為 RAM 角色授予自定義權(quán)限策略。
使用 RAM 用戶扮演 RAM 角色獲取 STS 臨時(shí)訪問(wèn)憑證。具體操作,請(qǐng)參見(jiàn)獲取 STS 臨時(shí)訪問(wèn)憑證。
配置 STS 臨時(shí)訪問(wèn)憑證。
環(huán)境變量
使用臨時(shí)身份憑證設(shè)置環(huán)境變量。
Mac OS X/Linux/Unix
export OTS_AK_ENV=<OTS_AK_ENV> export OTS_SK_ENV=<OTS_SK_ENV> export OTS_SESSION_TOKEN=<OTS_SESSION_TOKEN>
Windows
以管理員身份運(yùn)行命令提示符,執(zhí)行以下命令。
setx OTS_AK_ENV <OTS_AK_ENV> /m setx OTS_SK_ENV <OTS_SK_ENV> /m setx OTS_SESSION_TOKEN <OTS_SESSION_TOKEN> /m
說(shuō)明環(huán)境變量配置完成后,為確保新的設(shè)置被正確應(yīng)用,您可能需要重啟相關(guān)的開(kāi)發(fā)工具(IDE 等)或服務(wù)。
通過(guò)環(huán)境變量來(lái)傳遞憑證信息。
accessKeyId := os.Getenv("OTS_AK_ENV") accessKeySecret := os.Getenv("OTS_SK_ENV") securityToken := os.Getenv("OTS_SESSION_TOKEN")
靜態(tài)憑證
您可以在代碼中使用變量來(lái)引用憑證,這些變量在運(yùn)行時(shí)會(huì)被環(huán)境變量、配置文件或其他外部數(shù)據(jù)源中的實(shí)際憑證值填充。
以下操作步驟以配置文件為例。
創(chuàng)建配置文件
config.ini
。[credentials] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV> OTS_SESSION_TOKEN = <OTS_SESSION_TOKEN>
使用配置文件來(lái)傳遞憑證信息。
// 讀取配置文件 config, err := ini.Load("config.ini") if err != nil { fmt.Println("無(wú)法讀取配置文件:", err) } // 從配置文件中獲取Access Key ID和Access Key Secret access_key_id := config.Section("credentials").Key("OTS_AK_ENV").String() access_key_secret := config.Section("credentials").Key("OTS_SK_ENV").String() security_token := config.Section("credentials").Key("OTS_SESSION_TOKEN").String()
長(zhǎng)期訪問(wèn)憑證
如果您的應(yīng)用程序部署運(yùn)行在安全、穩(wěn)定且不易受外部攻擊的環(huán)境中,需要長(zhǎng)期使用 Go SDK 訪問(wèn)您的 Tablestore,您可以使用阿里云賬號(hào)或 RAM 用戶的 AK(Access Key ID、Access Key Secret)的方式訪問(wèn)。如何獲取 AK,請(qǐng)參見(jiàn)使用 RAM 用戶密鑰發(fā)起請(qǐng)求。
阿里云賬號(hào)擁有資源的全部權(quán)限,AK 一旦泄露,會(huì)給系統(tǒng)帶來(lái)巨大風(fēng)險(xiǎn),不建議使用。推薦使用最小化授權(quán)的 RAM 用戶的 AK。
環(huán)境變量
使用 AK 設(shè)置環(huán)境變量。
Mac OS X/Linux/Unix
export OTS_AK_ENV=<OTS_AK_ENV> export OTS_SK_ENV=<OTS_SK_ENV>
Windows
以管理員身份運(yùn)行命令提示符,執(zhí)行以下命令。
setx OTS_AK_ENV <OTS_AK_ENV> /m setx OTS_SK_ENV <OTS_SK_ENV> /m
說(shuō)明環(huán)境變量配置完成后,為確保新的設(shè)置被正確應(yīng)用,您可能需要重啟相關(guān)的開(kāi)發(fā)工具(IDE 等)或服務(wù)。
使用環(huán)境變量來(lái)傳遞憑證信息。
accessKeyId := os.Getenv("OTS_AK_ENV") accessKeySecret := os.Getenv("OTS_SK_ENV")
靜態(tài)憑證
您可以在代碼中使用變量來(lái)引用憑證,這些變量在運(yùn)行時(shí)會(huì)被環(huán)境變量、配置文件或其他外部數(shù)據(jù)源中的實(shí)際憑證值填充。以下操作步驟以配置文件為例。
創(chuàng)建配置文件
config.ini
。[credentials] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV>
使用配置文件來(lái)傳遞憑證信息。
// 讀取配置文件 config, err := ini.Load("config.ini") if err != nil { fmt.Println("無(wú)法讀取配置文件:", err) } // 從配置文件中獲取Access Key ID和Access Key Secret access_key_id := config.Section("credentials").Key("OTS_AK_ENV").String() access_key_secret := config.Section("credentials").Key("OTS_SK_ENV").String()
后續(xù)步驟
初始化憑證提供者后,您需要使用憑證提供者來(lái)創(chuàng)建 OTSClient 實(shí)例。詳情請(qǐng)參見(jiàn)初始化 OTSClient。