场景: 限制子用户仅能为自己创建Access Key。
策略示例:
{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateAccessKey" ], "Resource": [ "trn:iam::*:user/${volc:UserName}" ] } ] }
解读: IAM的创建访问密钥的操作支持按IAM用户进行资源级权限定义,Resource中子用户TRN的用户名从请求的用户名中取值,形成策略的资源范围,即限定了“访问主体 = 访问客体”,从而限制住IAM用户仅能为自己创建密钥。
场景: 限制用户所在项目与访问的私有网络(VPC)的资源所在项目一致。
策略示例:
{ "Statement": [ { "Effect": "Allow", "Action": [ "vpc:*" ], "Resource": [ "*" ], "Condition":{ "StringEquals":{ "volc:ResourceTag/project":"${volc:PrincipalTag/project}" } } } ] }
解读: 这条策略使用条件键volc:PrincipalTag/project
代替固定的条件值,限制了身份可访问的资源标签与身份上的标签(标签键同为project
)需要完全一致。