如何创建 IAM 策略,以使用标签控制对 Amazon EC2 实例组(由 5 到 10 个此类实例组成)的访问?

通过执行以下操作,您可以控制对小型​ EC2 实例部署(一次部署 5 到 10 个实例)的访问:

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

向 EC2 实例组添加标签

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

注意:在为资源添加标签之前,请阅读并了解 标签限制。​EC2 标签区分大小写。

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

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

  • 允许控制带标签的实例。
  • 包含一个条件语句,该条件语句通过将 ec2:ResourceTag/UserName 标签的值和 aws:username 策略变量的值进行匹配,来允许访问 EC2 资源。
  • 允许对 EC2 资源进行 ec2:Describe* 操作访问。
  • 明确拒绝访问 ec2:CreateTagsec2:DeleteTags 操作,以防止用户创建或删除标签。
    注意:这将通过向 EC2 实例中添加特定标签来防止用户控制该实例。

例如,创建完成的策略看起来应如下所示:

{
    "Version" : "2012-10-17",
        "Statement" :
    [
        {
            "Effect" : "Allow",
            "Action" : "ec2:*",
            "Resource" : "*",
            "Condition" : {
                "StringEquals" : {
                    "ec2:ResourceTag/UserName" : "${aws:username}"
                }
            }
        },
        {
            "Effect" : "Allow",
            "Action" : "ec2:Describe*",
            "Resource" : "*"
        },
        {
            "Effect" : "Deny",
            "Action" :
                [
                 "ec2:CreateTags",
                 "ec2:DeleteTags"
                ],
            "Resource" : "*"
        }        
    ]                                        
}

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

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


此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助?访问 AWS 支持中心

发布时间:2015 年 10 月 12 日

更新时间:2018 年 7 月 19 日