私は official docs を調べましたが、このコマンドを使用するためにIAMユーザーが必要とする権限に関する参照を見つけることができなかったようです。
IAMユーザーがこの特定のインスタンスのイメージのみを作成できるようにしたいので、次のようにポリシーを設定しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt999",
"Effect": "Allow",
"Action": [
"ec2:CreateImage"
],
"Effect": "Allow",
"Resource": [
"arn:aws:ec2:us-east-1:<my account id>:instance/<my instance id>"
]
}
]
}
しかし、EC2 CLIを使用するとAccess Deniedエラーが発生し続けました。 Resource
の部分を"*"
に変更しましたが、機能しますが、IAMユーザーは自分のアカウントのEC2インスタンスにAMIを作成することができます(したがって再起動が発生します)。
どうすればこれをロックできますか?
残念ながら、現時点ではこれをリソースレベルでロックすることはできません。リソースレベルの権限をサポートしない EC2アクションの束 があり、ec2:CreateImage
はその1つです。
イメージの作成には、そのインスタンスにアタッチされたスナップショットの作成も含まれます。以下のIAMポリシーが機能するはずです。
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:CreateSnapshot",
"ec2:CreateImage"
],
"Resource": [
"*"
]
}
リソースレベルでCreateImageをロック/制限することはできず、@ nkryptionの答えは正しかった。 http://docs.aws.Amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html
Create-imageを使用する際は、前述のIAMロールを使用して、「-no-reboot」フラグを設定してみてください。これにより、AMIの作成中にサーバーが再起動しなくなります。例:
##実際のAMIバックアップを取得し、AMI IDを「AMI」に保存します AMI = $(aws ec2 create-image --instance-id $ {instance-id} --name $ {Random-Name } .AutoScript。$ {DATE} --description 'これはamibackup.shによって作成されます' --no-reboot | $ {GREP} -i AMI)