当您使用SDK向Tablestore发起请求时,认证系统接收到请求后,通过凭证来验证请求发送者的身份。身份验证成功后,您可以访问相应的Tablestore资源。
身份验证
当用户以个人身份向Tablestore发送请求时,身份验证的实现如下:
用户将发送的请求按照指定的格式生成签名字符串。
用户使用AccessKey Secret对签名字符串进行加密产生验证码。
认证系统收到请求后,通过AccessKey ID找到对应的AccessKey Secret,并以同样的方法提取签名字符串和验证码。
如果计算出来的验证码和提供的一致,Tablestore认为该请求有效。
如果计算出来的验证码和提供的不一致,Tablestore将拒绝处理这次请求,并返回HTTP 403错误。
相关概念
访问密钥
访问密钥指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。AccessKey ID和AccessKey Secret一起使用,AccessKey ID用于标识用户,AccessKey Secret用于验证用户的密钥。身份验证成功后,您将可以操作相应的Tablestore资源。
RAM用户的AccessKey Secret只在创建时显示,不支持查询,请妥善保管。
阿里云账号访问密钥
开始使用阿里云服务前,首先需要注册一个阿里云账号。阿里云账号是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。
默认情况下,资源只能被阿里云账号所访问,任何其他用户访问都需要获得阿里云账号的显式授权。阿里云账号就是操作系统的root或Administrator,所以我们有时称它为根账号或主账号。
阿里云账号访问密钥具有所有资源的访问权限。每个阿里云账号能够同时拥有不超过5个访问密钥。每个访问密钥都有以下两种状态:
Active:表明访问密钥处于激活状态,可以在身份验证的时候使用。
Inactive:表明访问密钥处于非激活状态,不能在身份验证的时候使用。
阿里云账号拥有资源的全部权限,访问密钥一旦泄露,会给系统带来巨大风险,不建议使用。推荐使用最小化授权的RAM用户的访问密钥。
RAM用户访问密钥
RAM用户也叫RAM账号,是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。RAM用户具备以下特点:
一个阿里云账号下可以创建多个RAM用户,对应企业内的员工、系统或应用程序。
RAM用户不拥有资源,不能独立计量计费,由所属阿里云账号统一控制和付费。
RAM用户归属于阿里云账号,只能在所属阿里云账号的空间下可见,而不是独立的阿里云账号。
RAM用户必须在获得阿里云账号的授权后才能登录控制台或使用API操作阿里云账号下的资源。
RAM用户访问密钥指的是RAM用户被授权的访问密钥。RAM用户访问密钥只能按照RAM定义的规则去访问Tablestore实例里的资源。通过RAM用户访问密钥,您可以集中管理您的用户(例如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。例如,能够限制您的用户只拥有对某一个Tablestore实例的读权限。
临时访问凭证
除了具备永久访问凭证的RAM用户,阿里云还提供具备临时访问凭证的RAM角色。RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有确定的登录密码或访问密钥,它需要被一个可信的实体用户(RAM用户、阿里云服务或身份提供商)扮演。扮演成功后实体用户将获得RAM角色的临时访问凭证,即安全令牌(STS Token),使用安全令牌就能以RAM角色身份访问被授权的资源。
服务地址
每个表格存储实例对应一个服务地址(Endpoint),您使用阿里云SDK向Tablestore发起请求时需要指定服务地址。服务地址包括公网地址、公网(双栈)地址、VPC地址和经典网地址四种类型。更多信息,请参见服务地址。
请求流程
RAM用户访问密钥请求流程
使用RAM用户访问密钥向Tablestore发起请求的流程如下:
使用RAM用户访问密钥初始化一个OTSClient实例。
调用OTSClient提供的方法向Tablestore发起请求。
OTSClient实例使用RAM用户访问密钥产生签名,并将签名添加到该请求中。
具体操作,请参见使用RAM用户密钥发起请求。
STS临时访问凭证请求流程
RAM用户可以使用阿里云SDK请求STS临时访问凭证,然后使用STS临时访问凭证访问Tablestore资源。STS临时访问凭证将在设置的有效时间到期后失效。
使用STS临时访问凭证向Tablestore发起请求的流程如下:
使用RAM用户访问密钥初始化一个STSClient实例。
调用STS提供的AssumeRole方法获取被授予特定权限的RAM角色的STS临时访问凭证。
使用STS临时访问凭证初始化一个OTSClient实例。
使用OTSClient提供的方法向Tablestore发起请求。
OTSClient实例使用STS临时访问凭证产生签名,并将签名添加到该请求中。
具体操作,请参见使用STS临时访问凭证发起请求。
阿里云SDK
阿里云提供以下语言的SDK: