カスタムルールがトリガーされると、そのカスタムルールに含まれる Function Compute 関数がリソースを評価し、Cloud Config の PutEvaluations 操作を呼び出して評価結果を返します。カスタムルールを実行した後、評価結果に「no data」と表示される場合、以下のいずれかの方法でトラブルシューティングを行ってください。
-
ActionTrail を使用したトラブルシューティング
ActionTrail コンソールで、イベントクエリ機能を使用して、PutEvaluations API の呼び出しを確認します。
カスタムルールを実行した後に PutEvaluations 操作の呼び出しレコードが存在する場合は、カスタムルールは正常に実行されましたが、マッチするリソースが見つからなかったことを意味します。それ以外の場合は、カスタムルールの実行に失敗しています。
説明シンガポール リージョンを選択します。
-
Function Compute を使用したトラブルシューティング
関数のロギング機能が有効になっている場合、PutEvaluations 操作の呼び出しレコードを確認できます。関数のロギング機能の有効化方法については、「ロギングの設定」をご参照ください。
カスタムルールを実行した後、[Code] タブでログを出力し、次に [Logs] タブで PutEvaluations API の呼び出しを確認します。PutEvaluations の呼び出しレコードが存在する場合、ルールは正常に実行されましたが、一致するリソースが見つかりませんでした。それ以外の場合、ルールの実行に失敗しました。
-
条件付きルールの featurePath 設定の確認
条件に基づくカスタマイズ を選択して作成する条件付きルールでは、
featurePathプロパティが JSONPath 式を使用して、対象リソースの構成からフィールド値を抽出します。その後、Cloud Config がこの値を期待値と比較します。featurePathで指定された JSONPath がリソースの構成内にマッチするノードを見つけられなかった場合、または空のセットを返した場合、評価結果は「no data」となります。たとえば、セキュリティグループに
SourceCidrIpが0.0.0.0/0のインバウンドルールが存在するかどうかをチェックする条件付きルールを作成するとします。このとき、featurePathは$.Permissions.Permission[?(@.SourceCidrIp=='0.0.0.0/0')].SourceCidrIpと設定されます。あるセキュリティグループにSourceCidrIpが0.0.0.0/0のインバウンドルールが存在しない場合、JSONPath フィルター式は空のセットを返します。そのため、そのセキュリティグループの評価結果は「no data」となります。一方、このようなルールを持つセキュリティグループは、非準拠と判定されます。「no data」という評価結果は、リソースが非準拠であることを意味するものではありません。これは、ルールがリソースの構成から比較用の値を抽出できなかったことを示しています。条件付きルールを作成する前に、リソース詳細ページまたは API を使用して、対象リソースの構成構造に
featurePathで参照されるフィールドが含まれていることを確認してください。