如何使用标签控制对ECS 资源的访问?

问题

如何创建RAM (Resource Access Management)策略以使用标签控制对 云服务器(Elastic Compute Service,ECS)实例的访问?

场景描述

控制对ECS 实例部署的访问,具体操作如下所示

  1. 添加标签:向实例中添加特定标签,​您希望向用户或组授予对这些实例的访问权限。
  2. 创建RAM策略:创建一个 RAM 策略,以授予对任何带该特定标签的实例​的访问权限。
  3. 授权用户:将该 RAM 策略附加到您希望访问实例的用户或组。

解决方法

向 ECS 实例组添加标签

打开 ​ECS 控制台,然后​向 ECS 实例组添加标签,您希望用户或组能够访问这些实例。​如果您还没有标签,请创建一个并加入资源

注意:在为资源添加标签之前,请阅读并了解标签限制。

创建一个 RAM 策略,以授予对带该特定标签的实例​的访问权限

创建一个类似于以下的 RAM 策略:

允许控制带标签的实例。
包含一个条件语句,如果条件键 ecs:tag/Onwer 的值与标签值 [email protected][email protected] 匹配,则该语句允许访问 ECS 资源。
允许访问 带有 标签键owner 标签值为[email protected] 或者[email protected] 的 ECS 资源的 ecs:* 操作,.
明确允许访问ECS查询标签 ecs:DescribeTagKeys 和 ecs:DeleteTags 操作
明确拒绝访问 ecs:DeleteTags 、 ecs:UntagResources 、ecs:CreateTags 及 ecs:TagResources操作,以防止用户创建或删除标签。
注意:这将通过向 ECS 实例中添加特定标签来防止用户控制该实例。
例如,创建完成的策略看起来应如下所示:

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ecs:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ecs:tag/owner": [
                        "[email protected]",
                        "[email protected]"
                    ]
                }
            }
        },
        {
            "Action": "ecs:DescribeTagKeys",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "ecs:DescribeTags",
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ecs:DeleteTags",
                "ecs:UntagResources",
                "ecs:CreateTags",
                "ecs:TagResources"
            ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

将该 RAM 策略附加到您希望访问实例的用户或组a

最后,将已创建的 RAM 策略附加到您希望访问实例的用户或组。您可以使用 RAM 管理控制台、阿里云 CLI 或 阿里云 API 来附加 RAM 策略。

相关信息

向 RAM 用户授予 ECS 资源必需的权限
ECS 的 鉴权规则
ECS TAG功能详解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章