我将尽力解释我的问题。
我想用自己的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上的文档,但我不知道如何实现它。
有什么想法吗? 预先感谢!
答案 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实例的唯一标识符。