是否可以将 EC2 密钥限制为仅 ec2-associate-address?

是否可以将 EC2 密钥限制为仅 ec2-associate-address?

我有一个带有弹性 IP 的常规 EC2 实例。实例停止了几次后,我只需通过 AWS 管理控制台手动重新关联 IP 即可。我现在正在考虑将其迁移到现货实例,这意味着如果机器因价格超出市场而关闭,我希望有一种在启动时自动重新关联 IP 的方法。如何实现这一点在很多地方都有很好的描述(例如这里)。

我的问题是:

像许多遇到此问题的人一样,我对将我的 AWS 凭证文件放在实例本身上持谨慎态度。我模糊地记得看到过一些关于可以创建具有更有限权限的附加密钥的信息,但找不到任何具体的细节。那么:是否可以创建一个密钥,我可以高兴地将其放在机器上,知道它只能用于 ec2-associate-instance(但不能登录其他实例,或者通常与我的 AWS 帐户混在一起),我该如何实现这一点?

答案1

这确实可以通过AWS 身份和访问管理 (IAM), 哪个使您能够安全地控制用户对 AWS 服务和资源的访问(因此,现在强烈建议在日常 AWS 使用中使用 IAM 而不是主账户凭证)。

除其他外,IAM 支持以下用例:

对 AWS 资源进行细粒度的访问控制:IAM 可让您控制对 AWS 服务 API 和特定资源的访问。IAM 还允许您添加特定条件来控制用户使用 AWS 的方式,例如一天中的时间、其原始 IP 地址或他们是否使用 SSL。

各个 AWS 服务之间的粒度各不相同(随着时间的推移,粒度往往会增加),但幸运的是,EC2 API 的粒度很高,您所需的内容很容易获得 - 例如,您可能想查看推荐的AWS 策略生成器,选择类型IAM 策略和服务亚马逊 EC2,这将允许您选择操作关联地址反过来。

因此,你应该能够通过为手头的任务创建一个专用的 IAM 用户来实现你的目标,制定一个 IAM 策略,本质上仅限于关联地址(或许解除关联地址并将此策略分配给 IAM 用户 - 例如,该策略可能如下所示:

{
  "Statement": [
    {
      "Action": [
        "ec2:AssociateAddress",
        "ec2:DisassociateAddress"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

答案2

这是根据文档支持的这里. 确保您在实例和接口上有 TAG(如果您有 2 个接口)。

相关内容