2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EC2の起動ができない?必要な権限はこれ!

Posted at

はじめに

EC2の起動ができないという事象があったので、必要な権限をまとめていきます。
とりあえず多めに権限つけておけば?というのでも開発環境はいいかもですが、本番環境などで、起動停止権限だけ付与したいよという方は必須です。

普通に必要な権限

以下です。
Describeが必要かは状況によりけりです。

"ec2:DescribeInstances"
"ec2:StartInstances"
"ec2:StopInstances"

この場合でも起動できないという事象が発生します。
それはEBSを暗号化しているケースです。
次に、EBSを暗号化しているケースに必要な権限を紹介します。

EBSを暗号化している場合に追加で必要な権限

以下を追加します。

"kms:Encrypt"
"kms:Decrypt"
"kms:ReEncrypt*"
"kms:GenerateDataKey*"
"kms:DescribeKey"

ところが・・・・
この権限で起動しようとすると、EC2が一瞬起動するものの、すぐに停止状態になるという事象が発生します。
調査したところ、以下の権限も追加で必要とのこと。

"kms:CreateGrant"

CreateGrantとは、KMSキーの仕様を指定したプリンシパルつまり別のサービスに使用を許可するということです。EC2は、KMSで暗号化されたEC2インスタンスを起動する際に、CreateGrantにより、EBSにKMSキーの使用を許可しているので必要ということですね。

参考ポリシー

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "ec2:DescribeInstances",
        "ec2:StartInstances,
        "ec2:StopInstances"
      ],
      "Resource": "arn:aws:ec2:XXX",
      "Effect": "Allow"
    },
    {
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:XXX",
      "Effect": "Allow"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:CreateGrant"
      ],
      "Resource": [
        "arn:aws:kms:XXX"
      ],
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}

まとめ

CreateGrantが必要なのをよく忘れがちです。
EC2を起動する際にはCreateGrantが必要!覚えておきます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?