IAM策略将用户限制为特定VPC中的实例

Aje*_*han 9 amazon-web-services amazon-iam

我试图IAM policy限制用户访问特定的所有实例VPC.遵循我的政策,但没有工作.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1450441260778",
            "Action": "ec2:*",
            "Effect": "Allow",
            "Resource": "arn:aws:ec2:region:Account_num:vpc/vpc-id"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我已经填写相应account_numvpc-id政策英寸

Ank*_*rni 3

您想要限制用户访问,并且您已经使用了allow授予访问实例权限的属性。这是期望的行为吗?

如果您确实想限制,请尝试"Effect": "Deny"相同的策略。

但是,如果您想向某些用户授予访问权限,可以按以下方法操作。

在这种情况下,以下政策对我来说很有效。我用它来帮助开发人员限制启动停止实例的访问。您可以在第二个块中添加任意数量的权限。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances*",
                "ec2:StopInstances*"
            ],
            "Resource": "arn:aws:ec2:ap-southeast-1:ACCOUNT_ID:instance/i-32ds2a29"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

ap-southeast-1是我的案例的区域。要控制特定 vpc 中的实例,您只需使用其 id 即可。vpc+instance_id 没有单独的 arn,您可以使用arn:aws:ec2:region:account-id:instance/instance-idas arn引用 this

同样,您可以使用相同的策略来限制特定 vpc 中的用户,方法是使用arn:aws:ec2:region:account-id:vpc/vpc-idas arn,添加 Actionec2:*denyineffect 。