访问 EC2 Instance Connect 的 IAM 用户

son*_*ony 1 amazon-ec2 amazon-web-services aws-ec2-instance-connect

如何限制用户使用 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"
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用。

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

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

有办法实现这一点吗?

Joh*_*ein 5

你的Deny政策凌驾于你的Allow政策之上。

你的陈述是这样说的:

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

然而,拒绝总是胜过允许。

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