【问题标题】:Allow AWS IAM user to launch a maximum number of instances允许 AWS IAM 用户启动最大数量的实例
【发布时间】:2020-07-18 16:59:45
【问题描述】:

我想创建一个策略以允许 IAM 用户启动最大数量的实例(例如 5 个)。我找到了这个问题,但它并不完全符合我的要求:

Allow AWS IAM user to launch only one ec2 instance

此答案将用户限制为只有一个实例,而不是固定数量。

似乎 IAM 没有为此操作提供现成的支持。我一直在考虑尝试计算此用户的实例数并将其用作策略的条件,但我还没有找到明显的方法。

【问题讨论】:

标签: amazon-web-services amazon-ec2 amazon-iam


【解决方案1】:

无法将特定用户限制为特定数量的 Amazon EC2 实例。 (有基于帐户的限制,但没有用户限制)。

我建议您编写一个代表用户启动实例的应用程序,首先检查已在使用的实例数量。要跟踪谁启动了实例,请应用带有用户标识的标签。然后,您可以授予用户使用其特定标签停止/终止任何实例的权限。 (只要确保他们也没有更改标签的权限。)

实际上,用户并没有启动实例——您的脚本正在启动它们。

【讨论】:

    【解决方案2】:

    不能直接限制 IAM 用户通过 IAM 策略创建有限数量的资源(EC2 实例)。解决方案是,如果用户超出给定的限制,您可以删除额外的实例。我遇到了一个微笑的问题,经过大量的研发后,我得到了一个解决方案,可以通过 AWS cloudTrail. 完成这项任务。 您可以在特定区域或使用 S3 存储桶的所有区域中使用 AWS CloudTrail 配置跟踪以保存跟踪日志。要阅读日志,您可以使用如下 AWS CLI 命令 -

    aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=YourIAMuserID --region yourRegionName 2>&1;
    

    在此 CLI 命令的结果中,您将获得实例启动时创建的日志详细信息,您可以从结果数组中统计用户创建的实例数。

    您可以通过以下 CLI 命令终止该用户不需要的实例-

    sudo aws ec2 terminate-instances --instance-ids instanceId --region us-east-1 2>&1
    

    有更多可能的方法来完成这项任务,我正在使用这个,它对我来说工作正常。

    【讨论】:

      【解决方案3】:

      CloudTrail 无法保留超过 90 天的日志。所以用CloudTrail来实现逻辑是不靠谱的。

      【讨论】:

        猜你喜欢
        • 2014-04-08
        • 1970-01-01
        • 2016-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多