AWS IAM角色:仅对实例本身而非所有资源具有权限的策略

时间:2020-07-16 15:06:38

标签: amazon-ec2 amazon-iam

我将尽力解释我的问题。

我想用自己的RebootPolicy创建一个IAM角色,将其附加到EC2实例后,允许该实例自行重启(但只能自行重启)。目前,我唯一能做的就是创建一个角色,该角色的策略允许在所有实例中重新启动。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ec2:RebootInstances",
            "Resource": "*"
        }
    ]
}

我知道我可以从技术上将实例的特定ID添加到策略中,但是我的想法是,我可以在所需的任何实例中使用该策略,而不仅仅是特定实例。我尝试遵循https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonec2.html上的文档,但我不知道如何实现它。

有什么想法吗? 预先感谢!

2 个答案:

答案 0 :(得分:2)

您可以使用ec2:SourceInstanceARN IAM策略变量自引用EC2。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "ec2:RebootInstances",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ARN": "${ec2:SourceInstanceARN}"
                }
            }
        }
    ]
}

答案 1 :(得分:1)

我认为您可以使用:$(aws:userid)

IAM Policy Elements: Variables and Tags说:

aws:userid将设置为role-id:ec2-instance-id,其中role-id是角色的唯一ID,ec2-instance-id是EC2实例的唯一标识符。