You need to enable JavaScript to run this app.
导航
TOS 鉴权说明
最近更新时间:2024.09.29 15:22:07首次发布时间:2024.03.20 17:12:24

本文介绍 TOS 收到请求后,鉴权的过程及说明,方便您快速理解及选择授权方式。

鉴权过程

TOS 收到请求后,将按照以下顺序判断是否允许该请求。

步骤一:验证身份信息

  • 非匿名请求:验证签名中携带的身份相关的信息。
  • 匿名请求:不需要验证身份信息。

步骤二:收集请求信息

TOS 将收集以下请求信息以判断策略内容:

  • Principal:发起请求的用户或角色等。
  • Action:请求希望执行的操作。
  • Resource:请求希望执行的资源。

步骤三:判断策略内容

TOS 将根据收集的请求信息查找相关的所有策略并判断,TOS 支持的策略类型如下:

注意

任意策略中的显式 Deny 将覆盖显式 Allow,即如果策略中有显式 Deny,请求将直接被拒绝。

策略类型

说明

基于身份的策略

IAM 策略

访问控制 IAM 是火山引擎为您提供的一套权限管理系统,用于控制不同身份对云资源的访问权限。如果该请求仅有基于身份的策略,则策略内容中至少需要有一个 Allow

基于资源的策略

注意

如果该请求有基于身份和资源的策略,则策略内容中至少需要有一个 Allow

桶策略

存储桶策略是针对单独存储桶及桶内资源设置的策略,您可以通过桶策略授予用户或角色相应资源的权限。

桶 ACL

桶 ACL 仅支持公共读、公共读写和私有。

对象 ACL

对象 ACL 仅支持继承桶、公共读、公共读写和私有。如果您在上传对象时没有指定 ACL,也没有设置对象 ACL 默认策略,则对象 ACL 默认为私有。

其他策略

注意

其他策略中,无显式 Allow 即表示Deny

Session Policy(inline Policy)

会话策略,通过 AssumeRole 接口通过角色扮演获取临时安全令牌,可在临时 Session 中通过 Policy 参数添加 inline policy。最终策略内容为 Session 策略和身份策略的合集。

VPC Policy

通过设置 VPC 终端节点策略和桶策略,实现存储桶内资源 VPC 粒度的权限控制。即您可以在私有网络限制 VPC 访问特定的 TOS 存储桶资源,同时在对象存储限制存储桶内资源被特定的 VPC 访问。

步骤四:确定请求结果

发送请求后,TOS 将按照以下流程判断请求结果:

说明

  • 本章节判断流程不包含 VPC Policy。
  • 默认情况下,除根账户外,所有请求都被隐式拒绝,不具备访问权限。
  • 如果策略包含 Deny 语句,则请求会导致显式拒绝。如果策略包含一个 Allow 语句和一个 Deny 语句,Deny 语句优先于 Allow 语句,请求会被拒绝。
  • 当没有适用的 Deny 语句但也没有适用的 Allow 语句时,会发生隐式拒绝。因此授权策略必须包含 Allow 语句,才会授权成功。
  1. 判断会话策略(没有则跳过):如果 Session Policy 没有显式 Allow,则该请求会被隐式 Deny,请求被拒绝;如果有 Allow,则判断下一步。
  2. 判断 IAM 策略和桶策略合集:
    1. 如果存在显式 Deny,则请求被拒绝;如果没有,则判断下一步
    2. 如果存在显式 Allow,则请求被允许,判断结束。
    3. 如果显式 DenyAllow 均不存在,则表示隐式拒绝,判断下一步。
  3. 判断桶 ACL 和对象 ACL:
    • 如果显式 Allow,则允许访问。
    • 如果没有显式 Allow ,则拒绝访问。