アイデンティティとセキュリティ

プレビュー版を提供開始した Confidential GKE Node の詳細

Exploring container security full.png

※この投稿は米国時間 2020 年 10 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。

従来のオンプレミスのアーキテクチャと比較した際のコンテナと Kubernetes のメリットについては十分に立証済みであり、かつ広く理解されています。しかし、クラウドへの移行を考えた場合に組織が求めるのは、リスクやデータ漏洩の可能性を限定することです。

Google は 7 月に、Confidential Computing プロダクト ファミリーの提供開始を発表しました。これは、アプリケーションにコード変更を加えることなく、使用中、つまり処理中のデータを暗号化する画期的なテクノロジーです。また、そのプロダクト ファミリーの最初のメンバーとして Confidential VMs を導入し、通常の VM に匹敵するレベルのパフォーマンスを実現しました。

数週間前には、Confidential Google Kubernetes Engine(GKE)Node プレビュー版の近日リリースを発表しました。そして今回は、サイバーセキュリティ月間を開始するにあたり、Confidential GKE Node のプレビュー版をリリースいたします。Confidential GKE Node を使用することで、パフォーマンスを大幅に低下させることなく、GKE クラスタ内で処理される使用中のデータの暗号化を実現できます。

AMD Secure Encrypted Virtualization(SEV)機能を利用する Confidential VMs 上に構築された Confidential GKE Node は、AMD EPYC™ プロセッサに組み込まれている AMD Secure Processor で生成、管理されるノードごとの専用インスタンス キーを使用して、ノードのメモリとノード上で実行されるワークロードを暗号化します。これらのキーはノード作成時に AMC Secure Processor で生成されて VM 内のみに置かれるため、Google や、同一ホスト上で稼働している他の VM が利用することはできません。これにより、保存データおよび転送データの暗号化のための他の既存のソリューションや、GKE Sandbox などのワークロード分離モデルと組み合わせることで、データを引き出す攻撃に対してさらに深く多層的な厚い防御が提供されます。また、Confidential GKE Node は、シールドされた GKE ノードを活用してルートキットとブートキットに対する保護を提供し、Confidential GKE Node で実行するオペレーティング システムの整合性を確保します。

Confidential GKE Node の有効化

新しいクラスタを作成する際に、--enable-confidential-nodes オプションを指定することで、Confidential GKE Node を有効にすることができます。

  gcloud components update
gcloud beta container clusters create [CLUSTER_NAME] \
  --release-channel=rapid \
  --machine-type=n2d-standard-2 \ 
  --enable-confidential-nodes

Confidential GKE クラスタの作成後、作成したすべてのノードとノードプールは機密扱いになります。

クラスタが Confidential GKE Node を使用しているかどうかは、次の describe コマンドを使用して確認できます。

  gcloud beta container clusters describe [CLUSTER_NAME]

Confidential GKE Node が有効化されていると、コマンドの出力に次の行が含まれます。

  confidentialNodes:
enabled: true

Confidential GKE Node でアプリケーションを実行できるようにする

Confidential GKE Node を活用するには、アプリケーションで何を変更する必要があるのか疑問に思われることでしょう。しかし、何も変更する必要はありません。Confidential Computing に対する Google のアプローチは、既存のアプリケーションのリフト&シフトを手間なくできるようにすることです。現在実行しているすべての GKE ワークロードは、コードに一切変更を加えることなく、Confidential GKE Node 上で実行できます。

アプリケーション構成の保存に GitOps モデルを使用している場合は、必要に応じて cloud.google.com/gke-confidential-nodes nodeSelector を使用することで、機密性が高いワークロードが確実に Confidential GKE Node でのみスケジュールされるよう宣言することができます。これは、後になって、ワークロードが Confidential GKE Node 上でのみ実行されていることを監査機関に実証する際に役立ちます。

  apiVersion: v1

kind: Pod

spec:

  containers:

  - name: my-super-confidential-app

    image: gcr.io/myproject/my-super-app

  nodeSelector:

    cloud.google.com/gke-confidential-nodes:true

最新の Google Cloud Security Talks では、Confidential Computing やその他のクラウド セキュリティの分野について詳しく紹介しています。


-Google Kubernetes Engine セキュリティ チーム プロダクト マネージャー Ibrahim Damlaj

-Confidential Computing チーム Google Cloud セキュリティおよびプライバシー担当プロダクト マネージャー Anoosh Saboori