このドキュメントでは、 Google Cloudにおける一般的な Google Kubernetes Engine(GKE)アーキテクチャについて説明します。また、GKE ワークロードに適用できるセキュリティのベスト プラクティスも示します。
アーキテクチャ
次の図は、一般的な GKE デプロイの Google Cloud サービスを 示しています。
この図式には次のものが含まれています。
GKE は、コンテナ化されたアプリを実行できる Kubernetes オープンソース コンテナ オーケストレーション プラットフォームのマネージド実装です。 GKE クラスタには、アプリケーション Pod と Policy Controller が含まれます。Policy Controller を使用すると、Kubernetes クラスタに ポリシーを適用できます。
Artifact Registry は、コンテナと アプリの開発とデプロイのプロセスを効率化し、コラボレーションを改善して、 アプリのセキュリティと信頼性を向上させます。
Cloud Audit Logs は、ユーザーが 環境で行った操作を追跡し、トラブルシューティング、監査、インシデント対応の機能を強化します。
Cloud Billing のダッシュボードとアラートを使用すると、GKE ワークロードの使用状況と課金を確認できます。
Cloud Build を使用すると、 にサーバーレス CI/CD プラットフォームをビルド、テスト、デプロイできます Google Cloud。
Cloud Identity は、 の ID、アクセス、 アプリケーション、管理を統合します Google Cloud。
Cloud Key Management Service は、 暗号鍵を作成して管理します。
Cloud Run functions は、タスクの自動化、ジョブのトリガー、他の サービスとの統合、イベント ドリブン開発パイプラインの構築を行います。
Cloud Service Mesh を使用すると、Kubernetes Service が相互に通信できます。
Cloud Storage は、 コンテナとアプリの実行に必要なデータを保存します。
Cloud DNS は、 ドメインの登録、管理、提供を行います。
Identity and Access Management(IAM) は、GKE ワークロード リソースに対して 特定の操作(作成、編集、削除など)を 実行できるユーザーを制御します。
組織のポリシー サービス は、 Google Cloud 環境全体でポリシーを一元的に管理し、適用します。組織のポリシーは、組織内のプロジェクトとリソース全体で一貫した構成とセキュリティ コンプライアンスを確保するのに役立ちます。
Pub/Sub を使用すると、効率的な通信 とワークフロー内の自動化を実現できます。
Resource Manager を使用すると、GKE ワークロードの論理コンポーネントをグループ化して管理できます。
Secret Manager を使用すると、GKE プロジェクトで使用されるセンシティブ データと認証情報を保護できます。
Security Command Center を使用すると、クラウド組織、GKE ワークロード、 に保存するデータを保護できます Google Cloud。Security Command Center には次の機能があります。
- セキュリティの一元管理
- 脅威の検出とインシデント対応
- セキュリティの自動評価
- コンプライアンスと規制に関するレポート
- セキュリティに関する推奨事項とベスト プラクティス
Virtual Private Cloud(VPC)は、安全な環境で GKE リソースをインターネットから隔離します。このネットワーク構成は、センシティブ データとワークロードを不正アクセスや潜在的なサイバー攻撃から保護するのに役立ちます。
Cloud VPN または Cloud Interconnect を使用すると、オンプレミス インフラストラクチャと GKE 環境の間に安全なネットワーク接続を確立できます。 Cloud VPN または Cloud Interconnect を使用すると、プライベート ネットワークと Google Cloud リソース間のデータ 転送と通信をシームレスに行うことができます。この統合は、モデル トレーニングのためにオンプレミス データにアクセスしたり、推論のためにオンプレミス リソースにモデルをデプロイするシナリオで検討してください。
GKE ワークロードのベスト プラクティス
このセクションでは、GKE を使用するワークロードのベスト プラクティスへのリンクを示します。
- 推奨されるユーザー グループと IAM ロール
安全なエンタープライズ基盤のベスト プラクティス
認証と認可のベスト プラクティス
- デフォルトのサービス アカウントに対する IAM ロールの自動付与を無効にする
- 外部サービス アカウント キーの作成をブロックする
- サービス アカウント キーのアップロードをブロックする
- 組織のポリシー管理者の職務分離を構成する
- 特権管理者アカウントで 2 段階認証プロセスを有効にする
- 特権管理者組織部門に 2 段階認証プロセスを適用する
- メインの特権管理者専用のメールアドレスを作成する
- 冗長管理者アカウントを作成する
- タグを実装して、IAM ポリシーと組織のポリシーを効率的に割り当てる
- IAM に対するリスクの高い変更を監査する
- Cloud Identity の管理対象ユーザー アカウントの Cloud Shell へのアクセスをブロックする
- Google コンソールのコンテキストアウェア アクセスを構成する
- 特権管理者アカウントの自己復元をブロックする
- 使用していない Google サービスをオフにする
組織のベスト プラクティス
ネットワーキングのベスト プラクティス
ロギング、モニタリング、アラートのベスト プラクティス
鍵とシークレットの管理のベスト プラクティス
セキュリティ ポスチャーと分析のベスト プラクティス
インフラストラクチャのベスト プラクティス
コンピューティング ベスト プラクティス
コンテナのおすすめの設定
- コントロール プレーンへのアクセスを制限する
- 最小権限のファイアウォール ルールを使用する
- RBAC に Google グループを使用する
- Shielded GKE Nodes を有効にする
- containerd ランタイムを含む Container-Optimized OS を使用する
- Workload Identity Federation for GKE を使用する
- GKE Sandbox を有効にする
- kubelet 読み取り専用ポートを無効にする
- Namespace と RBAC を使用してクラスタ リソースへのアクセスを制限する
- Pod 間のトラフィックを制限する
- アドミッション コントローラを使用してポリシーを適用する
- ワークロードの自己変更機能を制限する
- クラスタ構成をモニタリングする
- Binary Authorization を適用する
データ管理のベスト プラクティス
ストレージのベスト プラクティス
- Cloud Storage バケットへのパブリック アクセスをブロックする
- 均一なバケットレベルのアクセスの使用
- サービス アカウントの HMAC キーを保護する
- サービス アカウントによる Cloud Storage バケットの列挙を検出する
- Cloud Storage バケットの保持ポリシーでバケットロックが使用されていることを確認する
- SetStorageClass アクションのライフサイクル ルールを設定する
- ストレージ クラスの許可リージョンを設定する
- Cloud Storage バケットのライフサイクル管理を有効にする
- アクティブなオブジェクトの一時保留を確認して評価する
- Cloud Storage バケットに保持ポリシーを適用する
- Cloud Storage バケットの分類タグを適用する
- Cloud Storage バケットのログバケットを適用する
- Cloud Storage バケットの削除ルールを構成する
- 削除ルールの isLive 条件が False であることを確認する
- Cloud Storage バケットのバージョニングを適用する
- Cloud Storage バケットのオーナーを適用する
- Cloud Storage の主なアクティビティのロギングを有効にする
エージェントとアプリケーションのベスト プラクティス
次のステップ
- エンタープライズ デベロッパー プラットフォームを にデプロイする方法を確認する Google Cloud。