Network Policies クイズ
このクイズでは、Kubernetes Network Policies、Cilium Network Policies、および microsegmentation についての理解を確認します。
クイズ問題
1. Kubernetes NetworkPolicy のデフォルトの動作は何ですか?
A. すべてのトラフィックをブロックする B. すべてのトラフィックを許可する C. 受信のみをブロックする D. 送信のみをブロックする
答えを表示
答え: B. すべてのトラフィックを許可する
解説: NetworkPolicy がない場合、Kubernetes はデフォルトですべての Pods 間のトラフィックを許可します。NetworkPolicy を作成すると、その policy の podSelector に一致する Pods に対して「default deny」の動作が有効になります。
2. NetworkPolicy で特定の Pods を選択するフィールドはどれですか?
A. selector B. podSelector C. matchLabels D. targetPods
答えを表示
答え: B. podSelector
解説: NetworkPolicy の spec.podSelector フィールドは、policy が適用される Pods を選択します。
spec:
podSelector:
matchLabels:
app: web空の podSelector ({}) は、namespace 内のすべての Pods を選択します。
3. NetworkPolicy で受信ルールと送信ルールを定義するフィールドはどれですか?
A. inbound/outbound B. ingress/egress C. input/output D. incoming/outgoing
答えを表示
答え: B. ingress/egress
解説:
- ingress: 受信トラフィックルール
- egress: 送信トラフィックルール
spec:
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
egress:
- to:
- podSelector:
matchLabels:
role: database4. CiliumNetworkPolicy では、L7 HTTP ルールはどこで定義されますか?
A. spec.http B. spec.ingress.toPorts.rules.http C. spec.rules.http D. spec.layer7.http
答えを表示
答え: B. spec.ingress.toPorts.rules.http
解説: CiliumNetworkPolicy の L7 ルールは、toPorts 内の rules セクションで定義されます。
spec:
ingress:
- toPorts:
- ports:
- port: "80"
rules:
http:
- method: GET
path: "/api/.*"5. default deny policy を実装するための正しい NetworkPolicy はどれですか?
A. policyTypes に Ingress のみを指定する B. podSelector を空に設定し、policyTypes に Ingress と Egress を指定する C. ingress ルールと egress ルールを空のままにする D. B と C の両方
答えを表示
答え: D. B と C の両方
解説: default deny policy の例:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
spec:
podSelector: {} # Select all Pods
policyTypes:
- Ingress
- Egress
# No ingress and egress rules = block all traffic空の podSelector はすべての Pods を選択し、ルールがない場合、そのトラフィックタイプはブロックされます。
6. CiliumClusterwideNetworkPolicy の特徴は何ですか?
A. 特定の namespace にのみ適用される B. クラスター全体に適用される C. 外部トラフィックのみを制御する D. L7 policies のみをサポートする
答えを表示
答え: B. クラスター全体に適用される
解説: CiliumClusterwideNetworkPolicy は、namespace に関係なくクラスター全体に適用されます。共通のセキュリティルール(例: すべての namespaces から metadata service へのアクセスをブロックする)を実装する場合に役立ちます。
7. NetworkPolicy で特定の namespace からのすべての Pods を許可するにはどうすればよいですか?
A. namespaceSelector のみを使用する B. podSelector のみを使用する C. namespaceSelector と空の podSelector を組み合わせる D. namespace フィールドを使用する
答えを表示
答え: A. namespaceSelector のみを使用する
解説:
ingress:
- from:
- namespaceSelector:
matchLabels:
name: monitoringnamespaceSelector のみを使用すると、その namespace からのすべての Pods が許可されます。podSelector を一緒に使用すると、その namespace 内の特定の Pods のみが選択されます。
8. CiliumNetworkPolicy で FQDN ベースの egress ルールを定義するフィールドはどれですか?
A. toFQDNs B. toDomains C. toHosts D. toEndpoints
答えを表示
答え: A. toFQDNs
解説: CiliumNetworkPolicy の toFQDNs は、DNS 名に基づく egress トラフィックを許可します。
spec:
egress:
- toFQDNs:
- matchName: "api.example.com"
- matchPattern: "*.amazonaws.com"
toPorts:
- ports:
- port: "443"9. NetworkPolicy の影響を受けないトラフィックはどれですか?
A. Pods 間のトラフィック B. 同じ Pod 内の containers 間のトラフィック (localhost) C. Services 経由のトラフィック D. 外部ソースからのトラフィック
答えを表示
答え: B. 同じ Pod 内の containers 間のトラフィック (localhost)
解説: NetworkPolicy は Pods 間のネットワークトラフィックに適用されます。同じ Pod 内の containers 間の localhost 通信は、NetworkPolicy の範囲外です。また、node の hostNetwork を使用する Pods にはいくつかの制限があります。
10. Cilium の Identity ベース policy の利点は何ですか?
A. IP アドレスの変更の影響を受けない B. 処理速度が速い C. メモリ使用量が少ない D. DNS lookup が不要
答えを表示
答え: A. IP アドレスの変更の影響を受けない
解説: Cilium Identity は Pod labels に基づいて生成されます。Pod が再起動して IP が変更されても、同じ labels を持っていれば同じ Identity を維持します。これにより、IP ベース policies の制限を克服できます。
11. 3-tier architecture における backend tier の正しい network policy はどれですか?
A. すべてのトラフィックを許可する B. frontend からの ingress のみを許可する C. frontend からの ingress を許可し、database への egress を許可する D. database への egress のみを許可する
答えを表示
答え: C. frontend からの ingress を許可し、database への egress を許可する
解説: 3-tier microsegmentation では、backend について:
- Ingress: frontend tier からのみ許可
- Egress: database tier へのみ許可
これは最小権限の原則に従い、tiers 間のトラフィックフローを明確に制御します。
12. NetworkPolicy で ipBlock による CIDR 範囲を指定する際、特定の IPs を除外するフィールドはどれですか?
A. exclude B. except C. notIn D. excludeCIDR
答えを表示
答え: B. except
解説: ipBlock の except フィールドは、特定の CIDRs を除外できます。
ingress:
- from:
- ipBlock:
cidr: 10.0.0.0/8
except:
- 10.0.1.0/24
- 10.0.2.0/24これにより、10.0.1.0/24 と 10.0.2.0/24 を除く 10.0.0.0/8 範囲からのトラフィックが許可されます。