セキュリティ ブループリント: GKE での PCI

GKE での PCI ブループリントには、Google Cloud で PCI 環境をブートストラップする方法を示す Terraform 構成とスクリプトが含まれています。このブループリントの中核は Online Boutique アプリケーションで、ユーザーはアイテムを閲覧してカートに追加し、購入できます。

このブループリントを使用すると、サポートされている再現性のある安全な方法で、Payment Card Industry Data Security Standard(PCI DSS)に準拠した GKE でのワークロードのデプロイを迅速かつ簡単に実行できます。

アーキテクチャ

プロジェクトの概要

このブループリントでは、次のリソース階層を含む Google Cloud のカード所有者データ環境(CDE)をブートストラップします。

  • 組織リソース。
  • フォルダ リソース。フォルダ リソースを使用すると、プロジェクトをグループ化してプロジェクトを分離できます。
  • プロジェクト リソース。次の Google Cloud プロジェクトをデプロイします。

    • ネットワーク: 共有 VPC のホスト プロジェクト。
    • 管理: ロギングとモニタリングのインフラストラクチャ(Cloud Logging など)を保持するプロジェクト。
    • 対象範囲内: 対象範囲内のリソースを含むプロジェクト。このソリューションでは、プロジェクトは対象範囲内のアプリケーションを実行するように設計された GKE クラスタで構成されています。この例では、フロントエンド サービス、支払いサービス、チェックアウト サービスが含まれます。
    • 対象範囲外: 対象範囲外のリソースを含むプロジェクト。このソリューションでは、これが残りのサービスを実行するように設計された GKE クラスタです。

プロジェクトの概要

アプリケーションとプロジェクト

次の図は、Google Cloud の CDE の境界と、マイクロサービス デモ アプリケーションの PCI 評価の対象となるプロジェクトを示しています。環境を構築する際に、次のような図を使用して、Google Cloud に PCI 境界内外のリソースに関する情報を伝えます。

1 というラベルの付いたパスは、Cloud Logging に送信される Kubernetes クラスタのログデータを示します。

アプリケーションのデプロイ

ネットワーク レイアウト

この図は、各プロジェクト内のネットワークとサブネットの詳細を示しています。プロジェクト間と CDE 境界内外のデータフローを文書化します。

ネットワーク レイアウト

暗号化されたトラフィック

次の図は、PCI 境界を出入りする暗号化されたトラフィックを示しています。

  1. VPC 外部からの TLS で暗号化された(HTTPS)トラフィックは、対象範囲内のパブリック ロードバランサに送られます。
  2. 対象範囲内の Kubernetes クラスタノードから対象範囲外のクラスタへの TLS で暗号化されたトラフィックは、内部ロードバランサに送られます。
  3. 内部ロードバランサから対象範囲外のクラスタへのトラフィックは、Istio を使用して mTLS で暗号化されます。
  4. 各クラスタ内の通信は、Istio を使用して mTLS で暗号化されます。

暗号化されたトラフィック

コンプライアンス マッピング

このドキュメントで説明するブループリントは、さまざまな PCI DSS コンプライアンス要件に対応しています。このセクションの表に、これらの要件の一部を示します。

次の表の項目は、すべての要件に対応しているわけではありません。Google Cloud インフラストラクチャは、お客様と Google の間で共有される責任の一環として、いくつかの要件に準拠しています。他の要件への準拠はお客様ご自身で行っていただく必要があります。共有責任モデルの詳細については、Google Cloud ブログのコンテナ セキュリティの調査: GKE の共有責任モデルをご覧ください。

かっこ内の数字は、Payment Card Industry(PCI)Data Security Standard のドキュメントの各セクションを指しています。このドキュメントは、PCI Security Standards Council のウェブサイトにあるドキュメント ライブラリからダウンロードできます。

要件 セクション 説明
セグメンテーションと境界保護の実装 1.3.2、1.3.4 このブループリントは、Google Cloud プロジェクトを使用して論理セグメンテーションを実装するのに役立ちます。セグメンテーションを使用すると、PCI 評価の境界を作成できます。このブループリントは、Google Kubernetes Engine での Istio をアドオンとして実行し、必要なすべてのコンポーネントを含む GKE クラスタにサービス メッシュを作成できます。このブループリントでは、VPCを使用して、PCI の対象範囲内にあるすべての Google Cloud プロジェクトにもセキュリティ境界が作成されます。
Google Cloud リソースへの最小限のアクセス権限の構成 7.1、7.2 このブループリントは、ロールベースのアクセス制御を実装して、Google Cloud リソースにアクセスできるユーザーを管理するのに役立ちます。また、ロールベースのアクセス制御(RBAC)名前空間などの GKE 固有のアクセス制御を実装して、クラスタ リソースへのアクセスを制限します。
組織レベルのポリシーの確立   このブループリントでは、次のような Google Cloud 組織リソースに適用されるポリシーを確立します。
共有 VPC を使用した職掌分散の適用 7.1.2、7.1.3 このブループリントは、接続と分離されたネットワーク制御用に共有 VPCを使用して職掌分散を適用します。
クラスタのセキュリティの強化 2.2、2.2.5 このブループリントの GKE クラスタは、GKE 強化ガイドで説明されているように強化されています。

このリストは、PCI DSS の要件を満たすことができるブループリントで実装されているセキュリティ制御のサブセットです。これらの要件の詳細な一覧については、GitHub の PCI DSS の要件(PDF)ドキュメントをご覧ください。

デプロイ可能なアセット

GitHub の PCI と GKE のブループリント リポジトリには、Google Cloud で PCI 環境をブートストラップする方法を示す Terraform 構成とスクリプトが含まれています。GKE プロジェクトでの PCI では、独自の Google Cloud PCI 環境の開始に役立つ Google Cloud サービス、ツール、プロジェクトも紹介しています。

よくある質問

リソース

  • Google Cloud での PCI DSS コンプライアンス。このガイドは、PCI DSS 要件に関するお客様の責任を実装する際に、Google Kubernetes Engine(GKE)アプリケーション固有の懸念事項に対処するのに役立ちます。