文档首页/ 统一身份认证服务 IAM_统一身份认证服务(新版)/ 常见问题/ 权限管理类/ 在身份策略中使用NotAction时权限不符合预期怎么办
更新时间:2025-09-25 GMT+08:00
分享

在身份策略中使用NotAction时权限不符合预期怎么办

问题描述

管理员在IAM新版控制台创建Deny语句的身份策略时,使用NotAction排除A云服务授权项之后,发现B云服务的授权项并没有被Deny限制。例如组织中成员账号拥有所有云服务权限时,管理员在创建Deny语句身份策略时使用NotAction排除VPC服务授权项后,发现EIP服务授权项没有被Deny限制。对应的身份策略示例如下:

{
	"Version": "5.0",
	"Statement": [{
		"Effect": "Deny",
		"NotAction": [
			"VPC:*:*"
		]
	}]
}

可能原因

A云服务的某些授权项是B云服务某些授权项的别名。例如,EIP服务为兼容旧版控制台权限,会将VPC服务某些授权项作为EIP服务某些授权项的别名。在身份策略鉴权时,存在别名关系的授权项代表的含义是相同的,因此VPC授权项也会被当做EIP授权项,在配置NotAction排除VPC授权项后,实际上EIP授权项也被排除了,因此EIP授权项最终未被Deny限制。

解决方法

针对如上场景,如果用户需要Allow A云服务且同时Deny B云服务的授权项,那么在使用NotAction排除A云服务授权项时,还需要单独添加一条明确的Deny语句来拒绝B云服务的授权项。例如用户通常需要允许VPC且拒绝EIP的授权项,那么可以在Deny时通过NotAction来排除VPC授权项,然后再单独添加一条明确的Deny语句来拒绝EIP授权项。对应的身份策略示例如下:

{
	"Version": "5.0",
	"Statement": [{
			"Effect": "Deny",
			"NotAction": [
				"VPC:*:*"
			]
		},
		{
			"Effect": "Deny",
			"Action": [
				"EIP:*:*"
			]
		}
	]
}

相关文档