You need to enable JavaScript to run this app.
导航
将条件键作为变量使用
最近更新时间:2024.07.09 21:00:33首次发布时间:2023.09.05 17:54:34

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

场景: 限制子用户仅能为自己创建Access Key。
策略示例:

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

解读: IAM的创建访问密钥的操作支持按IAM用户进行资源级权限定义,Resource中子用户TRN的用户名从请求的用户名中取值,形成策略的资源范围,即限定了“访问主体 = 访问客体”,从而限制住IAM用户仅能为自己创建密钥。

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

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

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

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