IAM权限策略

更新时间:2025-08-18 15:58:39

IAM权限政策(IAM Policy)是身份和访问管理中的一个关键要素,用于定义用户、用户组或者角色对资源的访问权限。其作用是通过一系列权限规则来精细化地控制谁(用户或实体)可以访问哪些资源、可以执行哪些具体操作。IAM政策的核心目的是确保资源的安全,防止未经授权的访问,同时提供灵活的权限管理以满足不同业务需求。通过这样的方式,企业可以有效管理用户权限,遵循最小权限原则,降低潜在的安全风险。它们通常采用JSON格式,详细描述了允许或拒绝的特定操作。例如,一个IAM政策可以允许某个用户组访问特定的存储桶,或者限制其仅能进行读取操作。

如何创建IAM权限策略

权限策略的格式形如:

{
    "version": "1",
    "statement": [
        {
            "action": [
                "wos:GetBucket"
            ],
            "resource": [
                "wsc:wos:*:*:testbucket"
            ],
            "effect": "allow"
        },
        {
            "action": [
                "wos:PutObject",
                "wos:GetObject",
                "wos:DeleteObject"
            ],
            "resource": [
                "wsc:wos:*:*:testbucket/*"
            ],
            "effect": "allow"
        }
    ]
}

主帐号可以通过这样的策略在IAM系统中授权给子帐号。在该策略中有一个声明(statement)(一个策略中可以有多个声明)。声明中指定了相应的操作(action)、资源(resource)和效力(effect)。

此策略配置的权限:列出空间testbucket中的所有文件信息;上传文件到testbucket空间;下载testbucket空间中的文件;删除testbucket空间中的文件。

参数说明及配置规则

Version

version定义了权限策略的版本,目前支持的版本是“1”。

Statement

通过声明来描述授权语义,根据业务场景可以包含多条语义,每条包含操作(action)、效力(effect)和资源(resource)的描述。每次请求时,系统会逐一进行匹配和检查。所有成功匹配的声明会根据效果设置分为允许(allow)和拒绝(deny),其中拒绝优先。如果所有匹配均通过,则请求会被认证;如匹配成功但有禁止项或没有条目成功匹配,请求将被禁止访问。

Action

Action指的是wos提供的S3 API或控制台的操作。操作规则为wos:{action_name},支持 * 通配符,可以用 * 代表0个或多个任意英文字符。例如,wos:List*表示所有wos提供的action_name以List开头的S3 API或控制台操作。
Action是一个列表,可以选择一个或多个操作,所有的action_name必须以"wos:"为前缀。可以有多个操作。

操作分为三类:
1. Service级操作 。与wos:GetService等操作类似。
具体操作与S3 API的对应关系如下:

S3 API action
GetService wos:GetService

具体操作与控制台操作的对应关系如下:

控制台操作 action
存储空间
查看 wos:GetService
存储空间-空间管理-基础数据 / 鉴定统计 / 概览
查看 wos:GetBucketAnalysis

注意:

  1. 如果将GetService权限分配给子账号,子账号可以获取其所属主账号拥有的所有空间。(对于子账号创建的空间,其所有者是其主账号)
  2. 所有使用控制台的子账号必须具备GetService权限,否则控制台上的其他操作可能无法正常使用。
  3. 如果将GetBucketAnalysis权限分配给子账号,子账号可以查看统计分析下的所有菜单项。

2. Bucket级操作。与wos:PutBucketLifecycle、wos:GetBucket等操作类似。操作对象是Bucket。
具体操作与S3 API的对应关系如下:

S3 API action
GetBucket(ListObjects) wos: GetBucket
GetBucketLifecycle wos: GetBucketLifecycle
PutBucketLifecycle wax: PutBucketLifecycle
DeleteBucketLifecycle wos:DeleteBucketLifecycle
ListMultipartUploads wos: ListMultipartUploads

具体操作与控制台操作的对应关系如下:

控制台操作 action
存储空间
新增空间 wos:PutBucket
存储空间-空间管理-文件管理
查询(查看) wos:GetBucket
存储空间-空间管理-基本设置
查看-镜像回源 wos:GetBucketMirror
编辑-镜像回源 wos:PutBucketMirror
删除-镜像回源 wos:DeleteBucketMirror
查看-生命周期设置 wos:GetBucketLifecycle
创建规则-生命周期设置 wos:PutBucketLifecycle
编辑-生命周期设置 wos:PutBucketLifecycle
清空全部规则-生命周期设置 wos:DeleteBucketLifecycle
删除-生命周期设置 wos:DeleteBucketLifecycle
创建规则-跨域设置 wos:PutBucketCors
编辑-跨域设置 wos:PutBucketCors
查看-跨域设置 wos:GetBucketCors
删除-跨域设置 wos:DeleteBucketCors
清除所有规则-跨域设置 wos:DeleteBucketCors
删除空间 wos:DeleteBucket
存储空间-空间管理-域名管理
查看-域名 wos:GetBucketDomain
绑定自定义域名 wos:PutBucketDomain
修改协议 wos:PutBucketDomain
删除-域名 wos:DeleteBucketDomain

3. Object级操作。与wos:GetObject、wos:PutObject、wos:DeleteObject和wos:AbortMultipartUpload等操作类似。操作对象是Object。
具体操作与S3 API的对应关系如下:

S3 API action
GetObject wos:GetObject
HeadObject wos:HeadObject
PutObject wos:PutObject
PostObject wos:PutObject
InitiateMultipartUpload wos:PutObject
UploadPart wos:PutObject
CompleteMultipartUpload wos:PutObject
DeleteObject wos:DeleteObject
MultiDelete wos:DeleteObject
AbortMultipartUpload wos:AbortMultipartUpload
ListParts wos:ListParts
CopyObject wos:GetObject,wos:PutObject
RestoreObject wos:RestoreObject

具体操作与控制台操作的对应关系如下:

控制台操作 action
存储空间-空间管理-文件管理
新建文件夹 wos:PutFolder
上传文件 wos:PutObject
删除 wos:DeleteObject
重命名 wos:PutObject
解冻 wos:RestoreObject
设置过期时间 wos:DeleteObject

Resource

资源指的是存储在wos上的资源。资源规则为wsc:wos:{region}:{bucket_owner}:{bucket_name}/{object_name},支持通配符。可以用代表0个或多个任意英文字符。region字段暂不支持,设置为"*".
resource也是一个列表,可以包含一个或多个资源。可以有多个资源。

  • 对于所有Service级操作,不支持指定特定资源,即wsc:wos:* ::.
  • 对于所有Bucket级操作,仅支持指定特定空间,即wsc:wos:{region}:{bucket_owner}:{bucket_name}。
  • 对于所有Object级操作,支持分配给特定文件,即wsc:wos:{region}:{bucket_owner}:{bucket_name}/{object_name}。

Effect

效力代表本文中声明授权的结果,定义授权结果优先级。分为允许(allow)和拒绝(deny)两类,分别指通过和禁止。当多个声明同时成功匹配时,拒绝优先级更高。
例如,期望禁止用户删除某个目录,但对其他文件拥有全部权限:

{
  "version": "1",
  "statement": [
    {
      "effect": "allow",
      "action": [
        "wos:*"
      ],
      "resource": [
        "wsc:wos:*:*:bucketname/*"
      ]
    },
    {
      "effect": "deny",
      "action": [
        "wos:DeleteObject"
      ],
      "resource": [
        "wsc:wos:*:*:bucketname/test/*"
      ]
    }
  ]
}
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!