本日も乙

ただの自己満足な備忘録。

暗号化済EBSボリュームがアタッチされたEC2インスタンスを起動するIAMポリシー

ちょっとした小ネタです。
KMSによって暗号化したEBSボリュームをEC2インスタンスにアタッチして起動する場合、そのKMSに対して適切な権限がないとEC2インスタンスを起動することができません。起動したとしてもすぐに stopped になってしまいます。
KMSのキーに対してどの権限を付与すればいいのかドキュメントを探して無かったので検証してみた結果を以下に残します。
以下はEC2インスタンスを起動・停止・リブートするために必要な最小限の権限です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:StartInstances",
        "ec2:RebootInstances",
        "ec2:StopInstances"
      ],
      "Resource": [
        "arn:aws:ec2::<リージョン>:<アカウントID>:instance/i-xxxxxxxx"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Decrypt",
        "kms:CreateGrant"
      ],
      "Resource": "arn:aws:kms:<リージョン>:<アカウントID>:key/<KMS ID>"
    }
  ]
}