0
0

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.

KMSエラーでEC2 Auto Scalingの自動デプロイが失敗する

Last updated at Posted at 2023-03-02

いつものようにAutoScalingグループを作って、試験的にASGの台数を0にしてインスタンス削除後、ASGの指定台数を1にしてデプロイしたら、まさかの失敗。いつもやってることがなぜできない?といろいろ調べたことの顛末。

こんな感じのエラーが出る。
image.png

Status Reason: INstance became unhealthy while waiting for instance to be in InService State.
Termination Reason:Client InternalError: Client error on launch.

いろいろ調べたところ、このインスタンスのEBSはKMSキーで暗号化をかけていた。この暗号化があると、AutoScalingがKMSキーで暗号化されたボリュームのアクセス権限を持っていないため、AutoScalingが発動できずにエラーが出るとのことだった。

なので、KMS側で許可を試みる。
image.png

EBSで暗号化しているキーを選ぶ。
image.png

キーポリシーを編集する。
image.png

編集画面で、AutoScalingサービスが復号化できるように権限を追加する。以下は追加箇所のみ。既存のキーポリシーはそのままに、JSONブロック内の末尾に以下を追記する。
「111111111111」はAWSアカウントIDに置き換える。

json
        {
            "Sid": "Allow service-linked role use of the customer managed key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111111111111:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling"
                ]
            },
            "Action": [
                "kms:CreateGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
             }
         }

キーポリシーを保存したら、再度ASGで台数を0に指定後、台数を1にしてデプロイが正常にされるか確認する。

image.png

image.png

ログを見ると、PreInserviceとなり、AutoScalingが動き出していることがわかる。
image.png

しばらく待つとSuccessfulとなり、正常に完了したことがわかる。
image.png

なんてことないけど、ものすごいハマった記憶。KMSでEBSを暗号化するときはお気を付けて。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?