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

Amazon web services 具有AssociateAddress权限但不允许重新关联弹性IP的IAM用户策略选项,amazon-web-services,amazon-ec2,amazon-iam,Amazon Web Services,Amazon Ec2,Amazon Iam,我尝试为IAM用户创建一个策略,允许用户分配和关联弹性IP 但问题是,用户还能够重新关联另一个实例的现有弹性IP。 在创建策略时,是否有方法禁止此类重新关联 以下是我申请的政策 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": "ec2:Disassoc

我尝试为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": "*"
        }
    ]
}

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

然后将IAM策略文档附加到用户/组/角色,该用户/组/角色将有条件地拒绝或允许访问特定资源或具有该标记/值组合的资源。 查看AWS文档,此链接可能会对如何实现您的ask有所帮助

或者只是像这样将策略添加到用户的IAM角色

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

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

然后将IAM策略文档附加到用户/组/角色,该用户/组/角色将有条件地拒绝或允许访问特定资源或具有该标记/值组合的资源。 查看AWS文档,此链接可能会对如何实现您的ask有所帮助

或者只是像这样将策略添加到用户的IAM角色

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

非常感谢你的建议。但我需要的不是标记实例。明白,这只是AWS推荐的使用策略来提供对资源的有条件访问的方法,也是我接触过的许多企业组织中使用的方法。用一些策略声明更新了我的答案,以实现您期望的结果。您可以进一步深入,只拒绝特定的ARN、实例id等。再次感谢。我以前确实试过,但没用。我已经用我再次尝试过的策略更新了我的问题,如果您尝试该NotAction版本,它将授予除Allow块中的权限之外的所有EC2权限。似乎你有什么东西在明确拒绝的情况下也在给予许可。非常感谢你的建议。但我需要的不是标记实例。明白,这只是AWS推荐的使用策略来提供对资源的有条件访问的方法,也是我接触过的许多企业组织中使用的方法。用一些策略声明更新了我的答案,以实现您期望的结果。您可以进一步深入,只拒绝特定的ARN、实例id等。再次感谢。我以前确实试过,但没用。我已经用我再次尝试过的策略更新了我的问题,如果您尝试该NotAction版本,它将授予除Allow块中的权限之外的所有EC2权限。似乎你有什么东西在授予许可,即使有明确的拒绝。