1

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

我尝试使用 EC2 Instance Connect 设置策略并附加用户以连接我新创建的 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 用户可以访问它,而其他用户不能。

有没有办法做到这一点?

4

1 回答 1

5

您的Deny保单凌驾于您的Allow保单之上。

你的陈述是说:

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

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

您可以简单地删除您的Deny策略。这将仅将 EC2 Instance Connect 的权限授予标记的实例(假设用户还没有在其他地方获得权限)。

于 2019-07-12T09:46:07.517 回答