【问题标题】:Creating IAM policy in AWS to protect seeing all EC2 instances在 AWS 中创建 IAM 策略以保护看到所有 EC2 实例
【发布时间】:2021-10-06 08:29:40
【问题描述】:

我希望来宾组中的 userA 有一个策略,允许使用 EC2 实例执行所有操作,但只能查看此实例。我不希望用户看到我所有的 EC2 实例列表。

我做到了:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "abc",
                "Effect": "Allow",
                "Action": [
                    "ec2:RebootInstances",
                    "ec2:StartInstances",
                    "ec2:StopInstances"
                ],
                "Resource": "arn:aws:ec2:us-east-1:33333333333:instance/i-444444444444444"
            },
            {
                "Sid": "abb",
                "Effect": "Allow",
                "Action": "ec2:DescribeInstances",
                "Resource": "arn:aws:ec2:us-east-1:33333333333:instance/i-444444444444444"
            }
        ]
    }

出现错误: "您策略中的操作不支持资源级权限,需要您选择所有资源"

尝试添加

"Condition": {
            "StringEquals": {
                "ec2:ResourceTag,UserName": "abc"
            }
        }

虽然我的 EC2 有标签 key: "name" and value: "abc"

在这种情况下得到:

这意味着如果用户没有看到我所有的 EC2 机器,就不可能授予对一个 EC2 实例的访问权限?

【问题讨论】:

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


    【解决方案1】:

    我建议您查看可用于权限的actions related to EC2。 DescribeInstances 操作具有 List 的Access level,这意味着它根据定义适用于实例列表。

    List permissions:

    列表:允许列出服务内的资源以确定 对象是否存在。具有此访问级别的操作可以列出 对象,但看不到资源的内容。例如, Amazon S3 操作 ListBucket 具有 List 访问级别。

    所以,您是正确的,使用DescribeInstances 操作,您不能在一个实例中允许它,而对所有其他实例都允许它。该操作不会授予 other 对实例的访问权限 - 只是访问以查看实例信息。

    这是an official AWS word,关于“最重要的 Amazon EC2 操作不支持资源级权限”,它还说:

    如果您必须按区域或任何条件隔离您的资源 同一个账号,先查看支持的EC2操作列表 资源级权限和条件,以验证您的用例 支持这个解决方案。

    【讨论】:

    猜你喜欢
    • 2020-05-14
    • 2020-05-14
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2021-02-15
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多