【问题标题】:IAM Policy using Condition ec2:ResourceTag not working使用条件 ec2 的 IAM 策略:ResourceTag 不起作用
【发布时间】:2017-05-03 04:30:41
【问题描述】:

我有 n x EC2 实例,我希望将 ec2 操作限制为具有相同键/值标签 (I.E. platform=dev) 的实例。

我正在考虑使用附加到其默认 IAM 用户所在组的 IAM 策略来执行此操作。

政策:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "ec2:*",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "ec2:ResourceTag/tag:platform": "dev"
            }
        }
    }
]}

我根据在线 AWS 文档进行了设置:Example Policies for Working With the AWS CLI or an AWS SDK

我在 Policy Simulator 中检查了它,它按预期工作(传入一个 dev 并且它被允许,否则被拒绝)。

然后在带有标签键/平台=dev 对的服务器之一上,我运行aws ec2 describe-instances 我得到响应:

An error occurred (UnauthorizedOperation) when calling the DescribeInstances operation: You are not authorized to perform this operation.

但如果我删除 Condition 它会起作用。我不明白我做错了什么。任何帮助将不胜感激!

【问题讨论】:

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


    【解决方案1】:

    问题是不是每个 API Action & Resource 都会接受条件中的 ec2:ResourceTag/tag。

    我认为您可能授予了过于宽泛的权限(操作:ec2:*),因此请弄清楚您的实例需要执行哪些操作,然后决定如何限制它们。

    动作、资源和条件键的列表可以在Supported Resource-Level Permissions for Amazon EC2 API Actions找到。

    【讨论】:

    • 谢谢克里斯,我只测试过这个。我对特定活动进行了测试并在没有条件的情况下工作。通过处理这个问题,我假设我正在减少可能出错的因素,但根据另一个答案,这不是我可以依赖的真实情况(该条件可能只适用于更具体的操作/资源定义) .
    【解决方案2】:

    我之前遇到过这个问题,它与组合通配符和条件有关。为我们解决的问题是对操作(例如["ec2:DescribeInstances"])和资源(arn:aws:ec2:region:accountid:instance/*)更加明确。

    【讨论】:

    • 谢谢 - 在你的两个答案之间我明白了。
    猜你喜欢
    • 1970-01-01
    • 2023-01-04
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多