You need to enable JavaScript to run this app.
导航

将条件键作为变量使用

最近更新时间2023.09.05 17:54:34

首次发布时间2023.09.05 17:54:34

示例1:将变量运用于资源表达式中。

场景: 限制子用户仅能为自己修改安全邮箱或手机号。
策略示例:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:UpdateSecureContactInfo"
      ],
      "Resource": [
        "trn:iam::2000000000:user/${volc:UserName}"
      ]
    }
  ]
}

解读: IAM的修改安全邮箱或手机的操作(UpdateSecureContactInfo)支持按IAM用户进行资源级权限定义,Resource中子用户TRN的用户名从请求的用户名中取值,形成最终的资源范围,即限定了“访问主体 = 访问客体”,从而限制住IAM用户仅能为自身修改安全邮箱或手机号。

示例2:将变量运用于条件值中。

场景: 限制用户所在项目与访问的私有网络(VPC)的资源所在项目一致。
策略示例:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vpc:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition":{
          "StringEquals":{
                  "volc:ResourceTag/project":"${volc:PrincipalTag/project}"
          }
      }
    }
  ]
}

解读: 这条策略使用条件键volc:PrincipalTag/project代替固定的条件值,限制了身份可访问的资源标签与身份上的标签(标签键同为project)需要完全一致。