如何允许AWS用户通过ID或TAG只在一个VPC中启动实例



我有多个VPCs,每个环境一个。我希望Dev组中的用户只能在该VPC中启动实例。其他环境也是如此。如何做到这一点?现在,我可以限制用户不能基于Tag(Environment=Dev)停止、启动实例。

有没有可能有这样的策略,只允许在特定的专有网络或带有特定标签的专有网络中启动实例?

您可以创建一个类似IAM的"开发人员"组,并在其中拥有以下权限:

{
"Version": "2014-11-28",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": "ec2:RunInstances",
        "Resource": [
            "arn:aws:ec2:< region >::subnet/subnet-00000000",
            "arn:aws:ec2:< region >::network-interface/*",
            "arn:aws:ec2:< region >::instance/*",
            "arn:aws:ec2:< region >::volume/*",
            "arn:aws:ec2:< region >::image/ami-*",
            "arn:aws:ec2:< region >::key-pair/*",
            "arn:aws:ec2:< region >::security-group/*"
        ]
    }
]

}

则这足以从AWS CLI:

发出

aws ec2 run-instances --key-name yourkey --image-id ami-00000000 --security-group-ids sg-00000000 --instance-type t2.micro --subnet-id subnet-00000000

不要忘记替换区域、帐号、密钥名称、AMI、安全组id、实例类型、子网id。

然后您可以添加以下内容:

{
  "Sid": "TheseActionsSupportResourceLevelPermissionsWithInstancesAndTags",
  "Effect": "Allow",
  "Action": [
    "ec2:TerminateInstances",
    "ec2:StopInstances",
    "ec2:StartInstances"
  ],
  "Resource": "arn:aws:ec2:REGION:ACCOUNTID:instance/*",
  "Condition": {
    "StringEquals": {
      "ec2:ResourceTag/yourTAG": "yourVALUE"
    }
  }
}

尽管这些是EC2标签而不是VPC,但如果您标记您想要的标签或从一开始就使用标签启动,它仍然可以完美工作。

相关内容

  • 没有找到相关文章

最新更新