本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
使用Python SDK发起请求访问Tablestore,您需要配置访问凭证。阿里云服务会通过访问凭证验证您的身份信息和访问权限。您可以根据使用场景对认证和授权的要求,配置不同类型的访问凭证。
前提条件
配置访问凭证前,您需要完成安装表格存储Python SDK的准备工作。具体操作,请参见安装Python SDK。
访问凭证
访问凭证选型
临时访问凭证:对于需要高安全性的场景,建议使用临时访问凭证。临时访问凭证可以限制访问的有效期,从而减少访问凭证泄露的风险。此外,临时访问凭证支持权限控制,可以有效地避免权限过大的问题。
长期访问凭证:出于安全性考虑,不建议您使用长期访问凭证。对于需要便利性的场景,长期访问凭证可以在较长时间内免除多次刷新的麻烦。
重要建议每三个月更换一次长期访问凭证,以提高账号的安全性。
当长期访问凭证泄露或者不再使用时,应该及时删除或者禁用相关的访问凭证,以免造成安全风险。
临时访问凭证
当您准备临时使用Python SDK访问Tablestore服务时,您可以选择以下方式配置临时访问凭证。
配置STS临时访问凭证
如果您需要在规定时间内访问Tablestore,您可以通过STS服务颁发一个STS临时访问凭证。临时访问凭证无需透露您的RAM用户密钥,使Tablestore的访问更加安全。
创建RAM用户。具体操作,请参见创建RAM用户。
为RAM用户授予
AliyunSTSAssumeRoleAccess
权限。具体操作,请参见为RAM用户授权。创建RAM角色,并为RAM角色授予自定义权限策略。具体操作,请参见创建RAM角色和为RAM角色授予自定义权限策略。
使用RAM用户扮演RAM角色获取STS临时访问凭证。具体操作,请参见获取STS临时访问凭证。
配置STS临时访问凭证。
环境变量
使用临时身份凭证设置环境变量。
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
以管理员身份运行命令提示符,执行以下命令。
setx OTS_AK_ENV <OTS_AK_ENV> /m setx OTS_SK_ENV <OTS_SK_ENV> /m setx OTS_SESSION_TOKEN <OTS_SESSION_TOKEN> /m
说明环境变量配置完成后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。
通过环境变量来传递凭证信息。
# -*- 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")
静态凭证
您可以在代码中使用变量来引用凭证,这些变量在运行时会被环境变量、配置文件或其他外部数据源中的实际凭证值填充。
以下操作步骤以配置文件为例。
创建配置文件
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() # 假设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')
使用函数计算上下文中的Credentials
如果您的应用程序的函数部署运行在函数计算中,您可以使用函数计算上下文中的Credentials获取临时访问凭证。
该方式底层实现是STS Token。函数计算根据函数配置的角色,通过扮演服务角色,而获取一个STS Token,然后通过上下文中的参数Credentials将STS Token传递给您的应用程序。该STS Token的有效期为36小时,且不支持修改。函数的最大执行时间为24小时,因此,执行函数过程中,STS Token不会过期,您无需考虑刷新问题。该方式无需您提供一个AK或STS Token,消除了手动维护AK或STS Token的风险。如何授予函数计算访问Tablestore的权限,请参见授予函数计算访问其他云服务的权限。
使用函数计算上下文中的Credentials获取临时访问凭证。
# -*- coding: utf-8 -*- def handler(event, context): # 获取密钥信息,执行前,确保函数所在的服务配置了角色信息,并且角色需要拥有Tablestore的权限,建议直接使用AliyunFCDefaultRole角色 creds = context.credentials access_key_id = creds.access_key_id access_key_secret = creds.access_key_secret security_token = creds.security_token # 后续操作... return 'success'
长期访问凭证
如果您的应用程序部署运行在安全、稳定且不易受外部攻击的环境中,需要长期使用Python SDK访问您的Tablestore,您可以使用阿里云账号或RAM用户的AK(Access Key ID、Access Key Secret)的方式访问。如何获取AK,请参见使用RAM用户密钥发起请求。
阿里云账号拥有资源的全部权限,AK一旦泄露,会给系统带来巨大风险,不建议使用。推荐使用最小化授权的RAM用户的AK。
环境变量
使用AK设置环境变量。
Mac OS X/Linux/Unix
export OTS_AK_ENV=<OTS_AK_ENV> export OTS_SK_ENV=<OTS_SK_ENV>
Windows
以管理员身份运行命令提示符,执行以下命令。
setx OTS_AK_ENV <OTS_AK_ENV> /m setx OTS_SK_ENV <OTS_SK_ENV> /m
说明环境变量配置完成后,为确保新的设置被正确应用,您可能需要重启相关的开发工具(IDE等)或服务。
使用环境变量来传递凭证信息。
# -*- coding: utf-8 -*- import os access_key_id = os.getenv("OTS_AK_ENV") access_key_secret = os.getenv("OTS_SK_ENV")
静态凭证
您可以在代码中使用变量来引用凭证,这些变量在运行时会被环境变量、配置文件或其他外部数据源中的实际凭证值填充。
以下操作步骤以配置文件为例。
创建配置文件
config.ini
。[configName] OTS_AK_ENV = <OTS_AK_ENV> OTS_SK_ENV = <OTS_SK_ENV>
使用配置文件来传递凭证信息。
# -*- coding: utf-8 -*- import configparser # 读取配置文件 config = configparser.ConfigParser() # 假设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')
后续步骤
初始化凭证提供者后,您需要使用凭证提供者来创建OTSClient实例。详情请参见初始化OTSClient。