AWS CloudFormation で、リソース AWS::ElasticLoadBalancingV2::ListenerRule を使用してスタックを作成または更新したときに発生するエラーを解決したいです。
簡単な説明
このエラーの原因となる可能性があるものを次に示します。
- 無効なリスナー Amazon リソースネーム (ARN)
- AWS Identity and Access Management (AWS IAM) のアクセス許可が欠けているか不十分である
- ルールのクォータを超える条件値
- 条件のフィールド値として許可されていない文字を使用している
解決策
次のセクションで、一般的なエラーをいくつか示します。
無効なリスナー Amazon リソースネーム (ARN)
リスナーの ARN 形式が誤っているかどうかを確認します。リソース AWS::ElasticLoadBalancingV2::ListenerRule は、Elastic Load Balancer にアタッチされたリスナーリソースにアタッチされます。正しいリスナー ARN がリスナー ARN プロパティに渡されていることを確認します。
リスナー ARN のフォーマット例を次に示します。
arn:aws:elasticloadbalancing:us-east-2:123456789012:listener/app/Application-Load-Balancer/0b761fa41d0fbe95/9e86778540dfe57b
IAM アクセス許可が欠けているか不十分
CloudFormation サービスロールまたはスタックを作成するユーザーに、必要なアクセス許可があることを確認します。以下のアクセス許可により、サービスロールまたはユーザーはリスナールールを正常に作成または変更できます。
- elasticloadbalancing:DescribeRules
- elasticloadbalancing:CreateRule
- elasticloadbalancing:ModifyRule
ルールのクォータを超える条件値 (EDIT)
リスナールールには、1 つのルールにつき 5 個の条件値しか設定できません。指定された条件で 5 個よりも多い値が必要な場合、このクォータは調整できません。
条件のフィールド値として許可されていない文字を使用している
リスナールール条件では、Field プロパティには次の文字のみを使用できます。
Field がホストヘッダーであり、HostHeaderConfig を使用していない場合は、ホスト名を 1 つ指定します (my.example.com など)。ホスト名は大文字と小文字を区別せず、128 文字まで使用できます。詳細については、Application Load Balancer のリスナーで、「ホスト条件」を参照してください。
HostHeaderConfig を使用して複数のホスト名を指定する場合、プロパティには許可されたパターンの文字のみを使用する必要があります。
Field が パスパターンであり、PathPatternConfig を使用していない場合は、単一のパスパターン (/img/ など) を指定します。パスパターンでは大文字と小文字が区別され、文字長は最大 128 文字です。詳細については、Application Load Balancer のリスナーで、「Path の条件」を参照してください。
PathPatternConfig を使用して複数のパスパターンを指定する場合、プロパティでは許可されたパターンの文字のみを使用する必要があります。
次の例を確認してください。フィールドがホストヘッダーであり、渡された値がホストヘッダーで許可されている値でない場合は、ValidationException エラーが発生します。次の例では、/dev はホストヘッダーの値として許可されていません。/ には、フィールドタイプのパスパターンを使用します。
Conditions:
- Field: host-header
Values:
- "admin-test.com/dev”
AWS CloudTrail を検証する
上記のオプションのいずれでも解決できない場合、スタックの作成中に呼び出された CreateRule、ModifyRule、または DescribeRulesAPI コールを確認してください。CloudTrail ログで見つかったエラーは、CloudFormation がリスナールールの作成または更新に失敗した理由の詳細を示しています。
関連情報
AWS Elastic Load Balancing V2 のアクション、リソース、条件キー
Application Load Balancer のクォータ
ルール条件の種類