Q1. ゼロトラストの基本原則として最も適切なのはどれか?
A. 社内ネットワークは信頼し、外部ネットワークのみ検証する B. VPNで接続したデバイスは全て信頼する C. ネットワークの場所に関係なく、全てのアクセスを検証する D. ファイアウォールの境界防御を最優先で強化する
答えを見る
正解: C
ゼロトラストの原則は「Never Trust, Always Verify(決して信頼せず、常に検証する)」です。NIST SP 800-207では、ネットワーク上の位置に関係なく、全てのリソースへのアクセスをセッション単位で検証することを求めています。従来の境界防御モデル(A, B, D)では、一度内部に入った攻撃者のラテラルムーブメントを防げません。
Q2. OAuth 2.0の Authorization Code Flow + PKCE において、PKCEの主な目的はどれか?
A. トークンの暗号化強度を高める B. Authorization Code の横取り攻撃を防止する C. リフレッシュトークンの有効期限を延長する D. ユーザーのパスワードを安全に保存する
答えを見る
正解: B
PKCE(Proof Key for Code Exchange)は、Authorization Codeの横取り攻撃(interception attack)を防止するための仕組みです。クライアントが認可リクエスト時にcode_challengeを送り、トークン交換時にcode_verifierを送ることで、コードを横取りした攻撃者がトークンを取得できないようにします。特にネイティブアプリやSPAなど、client_secretを安全に保持できないパブリッククライアントで必須です。
Q3. JWTのセキュリティベストプラクティスとして正しくないのはどれか?
A. アルゴリズムにRS256またはES256を使用する B. Access Tokenの有効期限を15分程度に設定する C. トークンをlocalStorageに保存してXSSから保護する D. alg, iss, aud, exp の全てを検証する
答えを見る
正解: C
localStorageはJavaScriptから自由にアクセスできるため、XSS攻撃で容易にトークンを窃取されます。JWTはHttpOnly + Secure + SameSite属性付きのCookieに保存すべきです。HttpOnly属性によりJavaScriptからのアクセスが禁止され、XSSによるトークン窃取を防止できます。他の選択肢はいずれもベストプラクティスとして正しい設定です。
Q4. RBAC、ABAC、ReBACの使い分けとして最も適切なのはどれか?
A. RBACはドキュメント共有に最適、ReBACは組織階層に最適 B. ABACはシンプルなロール管理に最適、RBACは複雑なポリシーに最適 C. RBACは組織のロールが明確な場合、ABACはきめ細かな動的制御が必要な場合に使う D. ReBACは全ての場面で最も推奨されるアクセス制御モデルである
答えを見る
正解: C
各アクセス制御モデルの適切な使い分け:
- RBAC: 組織のロール(管理者、開発者、閲覧者)が明確な場合に最適。シンプルだが、権限の組み合わせが増えると「ロール爆発」が起きやすい。
- ABAC: ユーザー属性(部門、クリアランスレベル)、リソース属性(分類)、環境属性(時間帯、デバイス信頼度)を組み合わせたきめ細かな制御に最適。
- ReBAC: リソース間の関係性(フォルダの所有者はフォルダ内の文書も閲覧可能)に基づく制御に最適。Google Zanzibar/SpiceDBで実装。
Q5. Kubernetes NetworkPolicyでデフォルト拒否を実現する正しい設定はどれか?
A. podSelector: {}と空のIngress/Egressルール
B. podSelector: {matchLabels: {deny: "all"}}
C. NetworkPolicyを作成せず、デフォルトの設定に任せる
D. policyTypes: ["Ingress", "Egress"]とpodSelector: {}で、ingress/egressルールを定義しない
答えを見る
正解: D
Kubernetes NetworkPolicyでデフォルト拒否を実現するには、podSelector: {}で全Podを対象にし、policyTypesでIngress/Egressを指定しつつ、具体的なingress/egressルールを定義しません。これにより、明示的に許可するNetworkPolicyがない限り、全ての通信がブロックされます。注意点として、KubernetesのデフォルトではNetworkPolicyがない場合は全通信が許可されるため(C)、明示的にデフォルト拒否ポリシーを作成する必要があります。
Q6. エンベロープ暗号化の説明として正しいのはどれか?
A. データを2回暗号化して二重の保護を行う手法 B. データキーでデータを暗号化し、マスターキーでデータキーを暗号化する手法 C. 公開鍵と秘密鍵を交互に使ってデータを暗号化する手法 D. データをハッシュ化してから暗号化する手法
答えを見る
正解: B
エンベロープ暗号化は、「データキー(DEK: Data Encryption Key)」でデータを暗号化し、「マスターキー(CMK/KEK: Customer Master Key / Key Encryption Key)」でデータキーを暗号化する手法です。マスターキーはKMS内で管理され外部に出ません。AWS KMSではこのパターンが標準です。利点として、大量のデータに対してもマスターキーの使用回数が少なく、鍵のローテーションが容易です。
Q7. GDPRの「忘れられる権利」(第17条)の技術的実装として適切でないのはどれか?
A. ユーザーの個人情報を完全に削除する B. 法的保持義務のある注文データを匿名化する C. 削除リクエストの監査ログを記録する D. バックアップからの復元時にも削除済みデータを復元する
答えを見る
正解: D
「忘れられる権利」に基づきデータ削除を行った場合、バックアップからの復元時にも削除済みデータが復元されてはなりません。技術的対策としては、暗号学的消去(暗号鍵の破棄)やバックアップの有効期限管理、復元時の削除リストとの照合などがあります。A, B, Cはいずれも適切な実装です。特にBの匿名化は、法的保持義務(例:税法上の取引記録保持)がある場合に個人情報部分だけを削除する方法として重要です。
Q8. BeyondCorp(Googleのゼロトラスト実装)の特徴として正しくないのはどれか?
A. VPNを使用せずに社内リソースにアクセスする B. デバイスの信頼度をスコアリングしてアクセス制御に利用する C. ネットワークの場所に基づいてアクセスを許可する D. Identity-Aware Proxyを通じて全てのアクセスを制御する
答えを見る
正解: C
BeyondCorpの最大の特徴は、ネットワークの場所を信頼しないことです。社内ネットワークにいるかどうかに関係なく、全てのアクセスはIdentity-Aware Proxy(IAP)を通じて制御されます。アクセス判定は、ユーザーのアイデンティティ、デバイスの信頼度スコア、アクセス対象のリソースポリシーに基づいて行われます。「ネットワークの場所に基づいてアクセスを許可する」のは従来の境界防御モデルの考え方であり、ゼロトラストとは矛盾します。
合格基準
- 合格スコア: 80%(8問中7問以上正解)
- 不合格の場合は、Step 2の各レッスンを復習してください
推定読了時間: 15分