プロファイル適用性: レベル2
Shielded GKEノードのセキュアブートを有効にして、ノードブートコンポーネントのデジタル署名を検証します。
攻撃者はシステムの初期化中に不正プログラムやルートキットを持続させるためにブートコンポーネントを変更しようとする可能性があります。セキュアブートは、すべてのブートコンポーネントのデジタル署名を検証し、署名の検証が失敗した場合にブートプロセスを停止することで、システムが正規のソフトウェアのみを実行することを保証します。
注意デフォルトでは、GKE Clustersでセキュアブートは無効になっています。デフォルトでは、Shielded GKE Nodesが有効になっている場合、セキュアブートは無効になっています。
|
影響
Secure Bootはサードパーティの署名されていないカーネルモジュールの使用を許可しません。
監査
Google Cloud Consoleを使用する:
- Google CloudコンソールKubernetes EngineページにアクセスしてKubernetes Engineに移動します。
- クラスターの一覧から、テスト中のクラスターの名前をクリックしてください。
- クラスター内の各ノードプールの詳細ペインを開き、セキュリティ見出しの下でセキュアブートが有効になっていることを確認してください。
コマンドラインの使用:
クラスター内のノードプールでセキュアブートが有効かどうかを確認するには、まずノードプール、クラスター名、ロケーション、プロジェクトの4つの変数を定義し、各ノードプールに対して次のコマンドを実行します。
gcloud container node-pools describe $POOL_NAME --cluster $CLUSTER_NAME --location $LOCATION --project $PROJECT_ID --format json | jq .config.shieldedInstanceConfig
Secure Bootが有効になっている場合、以下の値が返されます:
{ "enableSecureBoot": true }
修復
一度ノードプールがプロビジョニングされると、セキュアブートを有効にするために更新することはできません。セキュアブートを有効にした新しいノードプールをクラスター内に作成する必要があります。
Google Cloud Consoleを使用する:
- Google CloudコンソールKubernetes EngineページにアクセスしてKubernetes Engineに移動します。
- クラスターのリストから、更新が必要なクラスターをクリックし、ADD NODE POOLをクリックします。
- シールドオプションの見出しの下にあるセキュアブートのチェックボックスがオンになっていることを確認してください。
- 保存をクリック。
ワークロードは、既存の非準拠ノードプールから新しく作成されたノードプールに移行し、次に非準拠プールを削除する必要があります。
コマンドラインの使用:
クラスター内でセキュアブートが有効なノードプールを作成するには、次のコマンドを実行してください。
gcloud container node-pools create <node_pool_name> --cluster <cluster_name> --location <location> --shielded-secure-boot
ワークロードは、既存の非準拠ノードプールから新しく作成されたノードプールに移行し、次に非準拠プールを削除する必要があります。
