我想创建 AWS Identity and Access Management(IAM)策略以使用标签控制对 Amazon Elastic Compute Cloud(Amazon EC2)实例的访问。
简短描述
按照以下方法控制对 Amazon EC2 实例小型部署的访问:
1. 向实例添加特定标签,您希望向用户或组授予对这些实例的访问权限。
2. 创建一个 IAM policy,以授予对任何带该特定标签的实例的访问权限。
3. 将该 IAM policy 附加到您希望访问实例的用户或组。
解决方法
向 EC2 实例组添加标签
打开 Amazon EC2 控制台,然后向 EC2 实例组添加标签,您希望用户或组能够访问这些实例。如果您还没有标签,则创建一个新标签。
**注意:**在为资源添加标签之前,请阅读并了解标签限制。Amazon EC2 标签区分大小写。
创建一个 IAM 策略,以授予对带该特定标签的实例的访问权限
创建一个类似于以下内容的 IAM 策略:
- 允许控制带标签的实例。
- 包含一个条件语句,如果条件键 ec2:ResourceTag/UserName 的值与策略变量 aws:username 匹配,则该语句允许访问 Amazon EC2 资源。通过 IAM 评估策略时,策略变量 ${aws:username} 替换为当前 IAM 用户的易记名称。
- 允许访问 Amazon EC2 资源的 ec2:Describe* 操作。
- 明确拒绝访问 ec2:CreateTags 和 ec2: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": "*"
}
]
}
**注意:**此策略适用于使用 ec2:ResourceTag 条件密钥的 Amazon EC2 实例。要限制使用标签启动新的 Amazon EC2 实例,请参阅如何使用 IAM 策略标签来限制 EC2 实例或 EBS 卷的创建方式?
将该 IAM 策略附加到您希望访问实例的用户或组
最后,将已创建的 IAM 策略附加到您希望访问实例的用户或组。您可以使用 AWS 管理控制台、AWS CLI 或 AWS API 来附加 IAM 策略。
相关信息
Granting required permissions for Amazon EC2 resources(授予 Amazon EC2 资源必需的权限)
适用于 Amazon EC2 的 IAM policy