首页 > 解决方案 > AWS IAM:如何使用全局条件键创建条件

问题描述

我想创建一个策略,以便用户只能创建名称为“test-key-pair*”的 EC2 密钥对,而不是任何其他名称的密钥对。但看起来没有这样的方法。

事实上,当我使用 EC2:CreateKeyPair 操作创建策略时,它会显示“您选择的操作支持所有资源。”。但我确实想设置一些限制。于是我点击“请求条件”,里面显示了一些“全局条件键”的列表,比如aws:TagKeys。我为 EC2 创建了以下条件:CreateKeyPair。我的理解是在这种情况下,当用户创建密钥对时,只有同时设置标签密钥 CostCenter 和标签密钥部门,才能创建密钥对,否则不能。

但是,这种情况根本不起作用。用户无需设置任何标签密钥即可创建密钥对。所以我不知道如何使用“全局条件键”。我确实知道如何为用户服务相关条件。此外,我不明白密钥对之类的资源,为什么我不允许使用诸如:test-key-pair * 来限制资源,

"Statement": [
    {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": "ec2:CreateKeyPair",
        "Resource": "*",
        "Condition": {
            "ForAllValues:StringEquals": {
                "aws:TagKeys": [
                    "CostCenter",
                    "Department"
                ]
            }
        }
    }

这是全局条件键的链接:

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#AvailableKeys

标签: amazon-web-servicesamazon-iam

解决方案


标签不能与密钥对关联。

我尝试了一些条件,但无法将操作限制为特定的键名。

因此,您似乎无法根据密钥名称限制密钥对的创建。

一些替代方案:

  • 使用AWS Service Catalog通过规则预置资源
  • 创建某种形式的“前端”,代表他们创建密钥对,遵循某些规则(可以是应用程序,可以使用 Lambda)

推荐阅读