您可以使用标签策略对不合规标签的绑定进行事前拦截,规范标签操作。
应用场景
场景一:创建资源时拦截不合规标签
默认功能
创建资源时绑定了所需标签,标签键合规,但是标签值不合规,此时,标签策略会进行拦截,资源创建会失败。
例如:您可以在标签策略中设置创建ECS实例时,必须绑定标签CostCenter:Beijing
。当您实际创建ECS实例时,绑定了不合规标签(例如:costcenter:
beijing或CostCenter:Shenzhen
等)时,ECS实例会创建失败。
支持事前拦截默认功能的资源类型及API,请参见支持标签策略的云服务的支持事前拦截默认功能的API列。
强校验功能
创建资源时未绑定所需标签,此时,标签策略会进行拦截,资源创建会失败。
例如:您可以在标签策略中设置创建ECS实例时,必须绑定标签CostCenter:Beijing
。当您实际创建ECS实例时,未绑定合规标签CostCenter:Beijing
时,ECS实例会创建失败。
强校验功能需要手动开启后,才会生效。对于资源目录,开启后会对资源目录的所有成员生效。
您可以登录标签控制台,在策略库页面,手动开启强校验功能。不用时,也可以随时关闭该功能。
支持强校验功能的资源类型及API,请参见支持标签策略的云服务的支持事前拦截强校验功能的API列。
场景二:为资源绑定标签时拦截不合规标签
为已存在的资源绑定标签时,校验标签策略中设置的标签键和标签值是否符合规则。如符合规则,则标签绑定成功,否则,标签绑定失败。
最佳实践
设置事前拦截,会影响到资源的生产。建议在测试账号进行充分的测试后,再应用到生产账号。
事前拦截策略可能会影响到其他的云服务。例如:设置了ECS实例的标签事前拦截,则弹性伸缩服务和容器服务在进行ECS实例的扩容或缩容时,可能会因为未给实例绑定符合规范的标签而导致ECS实例的扩容或缩容失败。在使用前,请充分确认相关服务能够进行符合规范的标签操作。
操作步骤
标签事前拦截功能可以拦截当前账号或资源目录成员中的不合规标签操作。以下将提供一个资源目录标签策略的示例,使用资源目录管理账号启用并创建标签策略,强制资源目录成员在创建ECS实例时,需要为该ECS实例绑定成本中心标签。其中标签键为CostCenter
,标签值为Beijing
或Shanghai
。设置的标签合规时,ECS实例创建成功;否则,创建失败。
根据安全最佳实践,推荐您为资源目录的管理账号创建一个RAM用户,并授予AdministratorAccess权限,充当资源目录的管理员(简称为RD管理员)。以下操作将使用RD管理员完成。关于如何创建RAM用户并授权的操作,请参见创建RAM用户和为RAM用户授权。
登录标签控制台。
启用标签策略。
具体操作,请参见启用标签策略。
创建标签策略。
在策略库页面的资源目录策略页签,单击创建标签策略。
输入策略名称。
输入策略描述。
使用快速录入模式配置策略信息。
选择策略场景为资源绑定指定标签值。
在标签键文本框,输入
CostCenter
。输入允许的标签值。
支持通过换行设置多个标签值,每行输入一个标签值。本示例中,将添加
Beijing
和Shanghai
两个标签值。选中事前拦截,然后单击指定资源类型。
在指定事前拦截的范围对话框,先阅读并确认事前拦截的风险,然后选中资源类型为ECS实例,最后单击确定。
单击创建。
绑定标签策略。
在标签策略列表中,找到步骤3创建的标签策略,单击其操作列的绑定。
在绑定对话框,选择绑定目标,然后单击确定。
不同绑定目标的生效范围如下。您可以先绑定到某一个用于测试的成员上,测试无误后,再绑定到Root资源夹或指定资源夹上。
Root资源夹:标签策略对整个资源目录内的全部成员生效。
指定资源夹:标签策略仅对指定资源夹内的全部成员生效。
指定成员:标签策略仅对指定成员生效。
验证标签策略是否生效。
RD管理员访问步骤4绑定的资源目录成员。
具体操作,请参见成员登录阿里云控制台。
在成员的管理控制台上,创建一个ECS实例,验证标签策略是否生效。
创建成功
当ECS实例绑定标签
CostCenter:Beijing
或CostCenter:Shanghai
时,ECS实例将会创建成功。创建失败
默认情况,仅针对在标签策略中设置的标签生效。即出现以下情况会创建失败:
输入的标签键或标签值大小写不合规。例如:
costCenter:beijing
。只设置了标签键
CostCenter
,未设置标签值或设置的标签值不合规。
如果您开通了强校验功能,除以上两种情况外,未绑定任何标签或绑定了其他标签的情况,也会创建失败。
错误码
错误码 | 错误信息示例 | 说明 |
Forbidden.TagPolicy | The operation is failure, because the valid tag policy values of 'TagValue' are ["red","green","orange","blue","pink","white","black","grey"], but the value is "xxx". | 标签键合规,但标签值不合规,导致资源创建失败。请输入标签策略中 |
The operation is failure, because the valid tag policy values of 'TagKey' are ["colorful"], but the value is "colorFul". | 标签键大小写不合规,导致资源创建失败。请输入与标签策略中 | |
The operation is failure, because the tag policy keys ["color"] are necessary. | 标签不合规,缺少标签键 |