具有AssociateAddress权限的IAM用户策略的选项,但不允许弹性IP重新关联

时间:2019-05-10 18:14:52

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

我尝试为IAM用户创建一个策略,使用户能够分配和关联弹性IP。

但是问题是用户还能够重新关联另一个实例的已经存在的弹性IP。 在创建策略时是否有办法禁止这种重新关联?

以下是我已应用的政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": "ec2:DisassociateAddress",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:AssociateAddress",
                "ec2:DescribeAddresses",
                "ec2:AllocateAddress"
            ],
            "Resource": "*"
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

您可以执行此操作,但是您必须执行一些IAM策略操作并使用标签来允许或拒绝现有资源访问。可能不是您希望的解决方案,但是您可以使用Name:EIP-Protection,Value = Yes这样的标签来标记现有资源。您可以将标签分配给EC2实例或EIP。

然后,您将IAM策略文档附加到用户/组/角色,该文档将有条件地拒绝或允许访问特定资源或具有该标记/值组合的资源。 查看AWS文档,此链接可能有助于您了解如何实现要求。 https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html

或者仅将策略添加到用户的IAM角色中

{
    "Version": "2012-10-17",
    "Statement": [{
        "Sid": "AllowAllButEC2",
        "Effect": "Allow",
        "NotAction": [
            "ec2:DisassociateAddress",
            "ec2:TerminateInstance"
        ],
        "Resource": "*",
        "Condition": {"StringNotEquals": {"aws:RequestedRegion": [
            "us-east-1"
        ]}}
    }]
}