AWS IAM:如何使用全局条件键创建条件

Posted

技术标签:

【中文标题】AWS IAM:如何使用全局条件键创建条件【英文标题】:AWS IAM: how to create a condition using global condition keys 【发布时间】:2018-05-08 00:45:38 【问题描述】:

我想创建一个策略,以便用户只能创建名称为“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 Athena 中的用户授予/拒绝哪些权限? John Rotenstein:感谢您的回复,我的问题不是关于 Athena,而是关于如何使用条件限制权限以及如何使用 TagKeys。我已经重写了原始帖子以使我的问题更清楚。 【参考方案1】:

标签不能与密钥对关联。

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

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

一些替代方案:

使用AWS Service Catalog 提供资源,并附有规则 按照特定规则创建某种形式的“前端”,代表他们创建密钥对(可以是应用程序,可以使用 Lambda)

【讨论】:

嗨,John Rotenstein,感谢您尝试并回答我。我将尝试 AWS Service Catalog。很高兴知道这一点。

以上是关于AWS IAM:如何使用全局条件键创建条件的主要内容,如果未能解决你的问题,请参考以下文章

如何限制 AWS IAM 组访问 AWS Secret Manager?

AWS IAM 角色的条件

AWS IAM-如何禁止用户通过控制台进行更改,但允许通过CLI更改API

如何根据 IAM 角色 CloudFormation 模板中的参数提供不同的条件

如何使用 terraform 创建具有访问权限和密钥的 AWS IAM 服务账户

如何使用 Terraform 创建没有代入角色策略的 AWS IAM 角色?