Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling ライフサイクルフック作成時に検証エラーが発生しています。エラーは「通知ターゲットにテストメッセージを発行できません」または「ターゲットとロールの設定を確認して、ライフサイクルフックを再度配置してください」と表示されています。 これらのエラーをトラブルシューティングするにはどうすればよいですか?
簡単な説明
Amazon Simple Queue Service (Amazon SQS) にメッセージを発行するには、ライフサイクルフックの AWS Identity and Access Management (IAM) のロールは、次の要件を満たしている必要があります。
- インスタンスに割り当てられた IAM ロールと異なるものである。
- AWS Key Management Service (AWS KMS) キーポリシーにキーユーザーとしてリストされている。
- Auto Scaling サービスのためにアタッチされた信頼ポリシーを持っている。
- 具体的な管理ポリシーアクションが含まれている。
- Amazon EC2 Auto Scaling グループと関連付けられている。
- Amazon SQS が使用する暗号化キーにアクセスできる。
解決方法
1. ライフサイクルフックのために使用している IAM ロールが、インスタンスにすでに割り当てられたものとは異なっていることを確認します。
注: IAM ロールを作成するか、必要なアクセス許可をすべて持つ次の AWS マネージドロールを使用できます。
arn:aws:iam::aws:policy/service-role/AutoScalingNotificationAccessRole
2. KMS キーポリシーのキーユーザーとしてロールが含まれていることを確認します。これを行うには、以下を実行します。
AWS KMS コンソールを開きます。
KMS キーを選択します。
[Key policy] (キーポリシー) タブの [Key users] (キーユーザー) の下にロールが表示されていることを確認します。ロールが一覧に表示されていない場合は、そのロールを検索し、[Add] (追加) を選択します。
3. ライフサイクルフックの IAM ロールに、Amazon EC2 Auto Scaling サービスのためにアタッチされた信頼ポリシーがあることを確認します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "autoscaling.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
4. ライフサイクルフックの IAM ロールのマネージドポリシーが、以下のアクションを含むことをを検証します。
SQS メッセージの場合sqs:SendMessage
sqs:GetQueueUrl
SNS 通知の場合
sns:Publish
5. AWS コマンドラインインターフェイス (AWS CLI) で、aws autoscaling put-lifecycle-hook コマンドを実行します。
6. 次のコマンドを実行して、ライフサイクルフックが Auto Scaling グループと関連付けられていることを確認します。
aws autoscaling describe-lifecycle-hooks --auto-scaling-group-name "ExampleSQSQueueName"
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
関連情報
Amazon EC2 Auto Scaling ライフサイクルフック