配置訪問憑證
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業(yè)務(wù)造成影響,請務(wù)必仔細(xì)閱讀。
使用Python SDK發(fā)起請求訪問Tablestore,您需要配置訪問憑證。阿里云服務(wù)會通過訪問憑證驗(yàn)證您的身份信息和訪問權(quán)限。您可以根據(jù)使用場景對認(rèn)證和授權(quán)的要求,配置不同類型的訪問憑證。
前提條件
配置訪問憑證前,您需要完成安裝表格存儲Python SDK的準(zhǔn)備工作。具體操作,請參見安裝Python SDK。
訪問憑證
訪問憑證選型
臨時(shí)訪問憑證:對于需要高安全性的場景,建議使用臨時(shí)訪問憑證。臨時(shí)訪問憑證可以限制訪問的有效期,從而減少訪問憑證泄露的風(fēng)險(xiǎn)。此外,臨時(shí)訪問憑證支持權(quán)限控制,可以有效地避免權(quán)限過大的問題。
長期訪問憑證:出于安全性考慮,不建議您使用長期訪問憑證。對于需要便利性的場景,長期訪問憑證可以在較長時(shí)間內(nèi)免除多次刷新的麻煩。
重要建議每三個(gè)月更換一次長期訪問憑證,以提高賬號的安全性。
當(dāng)長期訪問憑證泄露或者不再使用時(shí),應(yīng)該及時(shí)刪除或者禁用相關(guān)的訪問憑證,以免造成安全風(fēng)險(xiǎn)。
臨時(shí)訪問憑證
當(dāng)您準(zhǔn)備臨時(shí)使用Python SDK訪問Tablestore服務(wù)時(shí),您可以選擇以下方式配置臨時(shí)訪問憑證。
配置STS臨時(shí)訪問憑證
如果您需要在規(guī)定時(shí)間內(nèi)訪問Tablestore,您可以通過STS服務(wù)頒發(fā)一個(gè)STS臨時(shí)訪問憑證。臨時(shí)訪問憑證無需透露您的RAM用戶密鑰,使Tablestore的訪問更加安全。
創(chuàng)建RAM用戶。具體操作,請參見創(chuàng)建RAM用戶。
為RAM用戶授予
AliyunSTSAssumeRoleAccess
權(quán)限。具體操作,請參見為RAM用戶授權(quán)。創(chuàng)建RAM角色,并為RAM角色授予自定義權(quán)限策略。具體操作,請參見創(chuàng)建RAM角色和為RAM角色授予自定義權(quán)限策略。
使用RAM用戶扮演RAM角色獲取STS臨時(shí)訪問憑證。具體操作,請參見獲取STS臨時(shí)訪問憑證。
配置STS臨時(shí)訪問憑證。
環(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
說明環(huán)境變量配置完成后,為確保新的設(shè)置被正確應(yīng)用,您可能需要重啟相關(guān)的開發(fā)工具(IDE等)或服務(wù)。
通過環(huán)境變量來傳遞憑證信息。
# -*- coding: utf-8 -*- import os access_key_id = os.getenv("OTS_AK_ENV") access_key_secret = os.getenv("OTS_SK_ENV") sts_token = os.getenv("OTS_SESSION_TOKEN")
靜態(tài)憑證
您可以在代碼中使用變量來引用憑證,這些變量在運(yùn)行時(shí)會被環(huán)境變量、配置文件或其他外部數(shù)據(jù)源中的實(shí)際憑證值填充。
以下操作步驟以配置文件為例。
創(chuàng)建配置文件
config.ini
。[configName] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV> OTS_SESSION_TOKEN = <OTS_SESSION_TOKEN>
使用配置文件來傳遞憑證信息。
# -*- coding: utf-8 -*- import configparser # 讀取配置文件 config = configparser.ConfigParser() # 假設(shè)config.ini位于腳本同級目錄下 config.read('config.ini') # 從配置文件中獲取Access Key ID和Access Key Secret access_key_id = config.get('configName', 'OTS_AK_ENV') access_key_secret = config.get('configName', 'OTS_SK_ENV') security_token = config.get('configName', 'OTS_SESSION_TOKEN')
使用函數(shù)計(jì)算上下文中的Credentials
如果您的應(yīng)用程序的函數(shù)部署運(yùn)行在函數(shù)計(jì)算中,您可以使用函數(shù)計(jì)算上下文中的Credentials獲取臨時(shí)訪問憑證。
該方式底層實(shí)現(xiàn)是STS Token。函數(shù)計(jì)算根據(jù)函數(shù)配置的角色,通過扮演服務(wù)角色,而獲取一個(gè)STS Token,然后通過上下文中的參數(shù)Credentials將STS Token傳遞給您的應(yīng)用程序。該STS Token的有效期為36小時(shí),且不支持修改。函數(shù)的最大執(zhí)行時(shí)間為24小時(shí),因此,執(zhí)行函數(shù)過程中,STS Token不會過期,您無需考慮刷新問題。該方式無需您提供一個(gè)AK或STS Token,消除了手動維護(hù)AK或STS Token的風(fēng)險(xiǎn)。如何授予函數(shù)計(jì)算訪問Tablestore的權(quán)限,請參見授予函數(shù)計(jì)算訪問其他云服務(wù)的權(quán)限。
使用函數(shù)計(jì)算上下文中的Credentials獲取臨時(shí)訪問憑證。
# -*- coding: utf-8 -*- def handler(event, context): # 獲取密鑰信息,執(zhí)行前,確保函數(shù)所在的服務(wù)配置了角色信息,并且角色需要擁有Tablestore的權(quán)限,建議直接使用AliyunFCDefaultRole角色 creds = context.credentials access_key_id = creds.access_key_id access_key_secret = creds.access_key_secret security_token = creds.security_token # 后續(xù)操作... return 'success'
長期訪問憑證
如果您的應(yīng)用程序部署運(yùn)行在安全、穩(wěn)定且不易受外部攻擊的環(huán)境中,需要長期使用Python SDK訪問您的Tablestore,您可以使用阿里云賬號或RAM用戶的AK(Access Key ID、Access Key Secret)的方式訪問。如何獲取AK,請參見使用RAM用戶密鑰發(fā)起請求。
阿里云賬號擁有資源的全部權(quán)限,AK一旦泄露,會給系統(tǒng)帶來巨大風(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
說明環(huán)境變量配置完成后,為確保新的設(shè)置被正確應(yīng)用,您可能需要重啟相關(guān)的開發(fā)工具(IDE等)或服務(wù)。
使用環(huán)境變量來傳遞憑證信息。
# -*- coding: utf-8 -*- import os access_key_id = os.getenv("OTS_AK_ENV") access_key_secret = os.getenv("OTS_SK_ENV")
靜態(tài)憑證
您可以在代碼中使用變量來引用憑證,這些變量在運(yùn)行時(shí)會被環(huán)境變量、配置文件或其他外部數(shù)據(jù)源中的實(shí)際憑證值填充。
以下操作步驟以配置文件為例。
創(chuàng)建配置文件
config.ini
。[configName] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV>
使用配置文件來傳遞憑證信息。
# -*- coding: utf-8 -*- import configparser # 讀取配置文件 config = configparser.ConfigParser() # 假設(shè)config.ini位于腳本同級目錄下 config.read('config.ini') # 從配置文件中獲取Access Key ID和Access Key Secret access_key_id = config.get('configName', 'OTS_AK_ENV') access_key_secret = config.get('configName', 'OTS_SK_ENV')
后續(xù)步驟
初始化憑證提供者后,您需要使用憑證提供者來創(chuàng)建OTSClient實(shí)例。詳情請參見初始化OTSClient。