ファイアウォールルールとは何か? トラフィックの許可とブロック
ファイアウォールルールとは、プロトコル、ポート、ソースまたはデスティネーションのアドレスといった特性に基づいてネットワークトラフィックを許可または拒否する単一の指示です。
ファイアウォールは、どのトラフィックが通過できるかを決めるルールのセットを適用します。各ルールは方向、ポート、アドレスなどの属性でマッチし、それから該当するパケットを許可またはブロックします。CIのpipelineは常にファイアウォールルールに遭遇します。サービスに到達できないデプロイは、しばしばルールによってブロックされています。
ルールの構造
ルールは通常、方向、プロトコル、ポートまたはレンジ、ソース、デスティネーション、そしてallowまたはdenyのアクションを指定します。トラフィックは1つがマッチするまで順にルールと照合されます。
デフォルト拒否
安全なファイアウォールはデフォルトですべてを拒否し、明示的にリストされたものだけを許可します。これは、忘れられたルールが、追加するまで正当なトラフィックを静かにブロックすることを意味します。
ルールが存在する場所
- クラウドのsecurity groupとnetwork ACL。
- iptablesやnftablesのようなホストファイアウォール。
- ネットワークアプライアンスとマネージドファイアウォール。
ファイアウォールルールとCI
runnerがregistry、データベース、APIに到達できないとき、ファイアウォールルールが有力な容疑者です。パケットが決して届かないため、コネクションはtimeoutするか、アプリケーションのエラーなしに拒否されます。
egressとingressのルール
egressルールは、しばしば承認されたホストのallowlistを適用するために、runnerがどこへ接続できるかを制限します。ingressルールは、デプロイされたサービスに誰が接続できるかを制限します。
ブロック対瞬断
ファイアウォールのブロックは、ルールが変わるまで毎回失敗するため決定論的です。Latchkeyのrunnerは本当に一時的なネットワーク失敗はretryしますが、ファイアウォールの拒否は設定の修正であり、retryで解決するものではありません。
重要なポイント
- ファイアウォールルールは、プロトコル、ポート、アドレスによってトラフィックを許可または拒否します。
- 安全なファイアウォールはデフォルトで拒否するため、ルールの欠落は正当なトラフィックを静かにブロックします。
- ファイアウォールのブロックは決定論的で、retryではなくルールの変更が必要です。