web-dev-qa-db-ja.com

ec2-create-imageにはどのIAMアクセス許可が必要ですか?

私は 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を作成することができます(したがって再起動が発生します)。

どうすればこれをロックできますか?

7
wwarren

残念ながら、現時点ではこれをリソースレベルでロックすることはできません。リソースレベルの権限をサポートしない EC2アクションの束 があり、ec2:CreateImageはその1つです。

7
Bazze

イメージの作成には、そのインスタンスにアタッチされたスナップショットの作成も含まれます。以下のIAMポリシーが機能するはずです。

{     
  "Effect": "Allow",
  "Action": [
    "ec2:Describe*",
    "ec2:CreateSnapshot",
    "ec2:CreateImage"
  ],
  "Resource": [
    "*"
  ]
}
7
nkryption

リソースレベルでCreateImageをロック/制限することはできず、@ nkryptionの答えは正しかった。 http://docs.aws.Amazon.com/AWSEC2/latest/APIReference/ec2-api-permissions.html

0
Ryan

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)
0
Baibhav Vishal