访问EC2实例连接的IAM用户

时间:2019-07-12 08:47:41

标签: amazon-web-services amazon-ec2 aws-ec2-instance-connect

如何限制用户使用EC2实例连接连接到我的Linux实例?

我尝试设置策略并附加用户以使用EC2实例连接为我新创建的Amazon Linux 2实例进行连接:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": "arn:aws:ec2:eu-west-2:111122223333:instance/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2-instance-connect:SendSSHPublicKey",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Owner": "Bob"
                }
            }
        }
    ]
}

但是,它似乎不起作用。

当前,每个人都可以访问新创建的实例。

因此,我想为该特定实例设置一个策略,只有指定的IAM用户才能访问它,其他用户则不能。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

您的Deny策略将覆盖您的Allow策略。

您的陈述是这样的:

  • 不允许该用户在任何实例上使用EC2实例连接
  • 允许该用户在具有给定标签的任何实例上使用EC2 Instance Connect

但是,“拒绝”总是胜过“允许”。

您可以删除Deny政策。这将仅授予EC2实例连接权限到已标记的实例(假设未在其他地方为用户提供权限)。