arrow_back

Gemini を使用してセキュリティに関する意思決定を行う

ログイン 参加
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Gemini を使用してセキュリティに関する意思決定を行う

Lab 45分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

概要

Gemini for Google Cloud は、あらゆるスキルレベルのユーザーを必要に応じて支援する、常時稼働の AI コラボレーターです。このラボでは、Security Command Center の Gemini 機能を使用して、Google Cloud 環境内のセキュリティに関する構成ミスを特定し、修復する方法を学習します。

注: Duet AI は、Google の次世代モデルである Gemini に名称変更されました。このラボは、この変更を反映して更新されたものです。ラボの手順を実施する際に、ユーザー インターフェースやドキュメントで Duet AI に言及されていた場合は、Gemini と同等であると見なしてください。 注: Gemini は初期段階のテクノロジーであるため、もっともらしく見える出力でも事実に反する場合があります。Gemini からのすべての出力は、使用する前に検証することをおすすめします。詳細については、Gemini for Google Cloud と責任ある AI をご覧ください。

目標

このラボでは、次のタスクの実行方法について学びます。

  • Google Cloud プロジェクト内で Gemini を有効にする
  • サンプルのワークロードを Google Cloud 内の環境にデプロイする
  • Gemini を使用してセキュリティに関する構成ミスを特定する
  • Gemini を使用してセキュリティに関する構成ミスを修復する

シナリオ

インフラストラクチャをモニタリングしてセキュリティ ポスチャーを改善する方法を検討する際、Gemini は、インフラストラクチャや構成の変更を特定するのに役立ち、今後発生し得る問題を回避することができます。

ここでは、マネージド Kubernetes クラスタを定期的にデプロイしている e コマース企業を例に挙げます。あなたは、この会社のセキュリティ エンジニアです。構成ミスがないかどうかを確認する方法を必要としており、利用しているクラウド環境でそれらの問題を修正するための迅速な手順を探しています。

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. Qwiklabs にシークレット ウィンドウでログインします。

  2. ラボのアクセス時間(例: 1:15:00)に注意し、時間内に完了できるようにしてください。
    一時停止機能はありません。必要な場合はやり直せますが、最初からになります。

  3. 準備ができたら、[ラボを開始] をクリックします。

  4. ラボの認証情報(ユーザー名パスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。

  5. [Google Console を開く] をクリックします。

  6. [別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
    他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。

  7. 利用規約に同意し、再設定用のリソースページをスキップします。

タスク 1. Gemini を有効にする

まず、Google Cloud プロジェクトで Gemini を有効にし、Google Cloud Qwiklabs ユーザー アカウントに必要な権限を設定します。

  1. Google Cloud コンソールのツールバーの右上にある Cloud Shell アイコン(Cloud Shell アイコン)をクリックします。

  2. 次のコマンドを実行して、プロジェクト ID とリージョンの環境変数を設定します。

PROJECT_ID=$(gcloud config get-value project) REGION={{{project_0.default_region|lab region}}} echo "PROJECT_ID=${PROJECT_ID}" echo "REGION=${REGION}"
  1. ログインに使用した Google ユーザー アカウントを環境変数に保存するには、次のコマンドを実行します。
USER=$(gcloud config get-value account 2> /dev/null) echo "USER=${USER}"
  1. [承認] をクリックします(求められた場合)。

  2. Gemini 用の Cloud AI Companion API を有効にします。

gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}
  1. Gemini を使用できるよう、必要な IAM ロールを Google Cloud の Qwiklabs ユーザー アカウントに付与します。
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer

これらのロールを追加すると、ユーザーは Gemini の支援機能を利用できるようになります。

[進行状況を確認] をクリックして、実行したタスクを確認します。 Gemini を有効にする

タスク 2. GKE クラスタを作成してウェブアプリをデプロイする

ここで、Google Kubernetes Engine(GKE)クラスタを作成し、いくつかのマイクロサービスを実行します。

  1. 次のコマンドを実行して、test という名前の GKE クラスタを作成します。
gcloud container clusters create test --region={{{project_0.default_region|lab region}}} --num-nodes=1

これには数分かかることがあります。完了すると、次のような結果が返されます。

Creating cluster test in {{{project_0.default_region|lab region}}}... Cluster is being health-checked (master is healthy)...done. Created [https://container.googleapis.com/v1/projects/agmsb-gke-lab/zones/us-central1/clusters/test]. To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1/test?project=agmsb-gke-lab kubeconfig entry generated for test. NAME: test LOCATION: {{{project_0.default_region|lab region}}} MASTER_VERSION: 1.27.3-gke.100 MASTER_IP: 34.66.224.143 MACHINE_TYPE: e2-medium NODE_VERSION: 1.27.3-gke.100 NUM_NODES: 3 STATUS: RUNNING
  1. ここで、ウェブアプリのコードを含むリポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/microservices-demo && cd microservices-demo
  1. kubectl を使用して、一連のマイクロサービスを GKE クラスタにデプロイします。
kubectl apply -f ./release/kubernetes-manifests.yaml
  1. 数分後、次のコマンドを実行して、ブラウザでウェブアプリにアクセスするためのパブリック IP アドレスを取得します。
kubectl get service frontend-external | awk '{print $4}'
  1. 上記のコマンド出力から IP アドレスをコピーし、新しいブラウザタブに貼り付けます。

次のようなウェブアプリが表示されます。

ウェブアプリ

[進行状況を確認] をクリックして、実行したタスクを確認します。 GKE クラスタを作成してウェブアプリをデプロイする

タスク 3. Gemini を使用してセキュリティに関する構成ミスを特定する

GKE クラスタで e コマース アプリを実行できるようになったので、セキュリティ ポスチャーを改善できる分野を Gemini を使用して特定します。

  1. Google Cloud コンソールのタブに戻ります。

  2. Google Cloud コンソール ページを更新します。

  3. Cloud Shell ペインを最小化します。

  4. Google Cloud コンソールのツールバーの右上にある Gemini アイコン(Gemini アイコン)をクリックします。

  5. [チャットを開始] をクリックします。

  6. 次のプロンプトを入力します。

What services in Google Cloud can help me identify areas to improve security for a set of microservices running in a GKE cluster?

Gemini から、次のような回答が返されます。

There are a number of services in Google Cloud that can help you identify areas to improve security for a set of microservices running in a GKE cluster. These include:

  • Security Command Center can help you identify and prioritize security risks across your Google Cloud environment, including GKE clusters.
  • Cloud Asset Inventory can help you track and manage your Google Cloud resources, including GKE clusters.
  • Cloud Logging can help you collect and analyze logs from your GKE clusters.
  • Cloud Monitoring can help you monitor the performance and health of your GKE clusters.
These are just a few of the many services in Google Cloud that can help you improve the security of your microservices. By using these services, you can help protect your data from unauthorized access, and you can also help improve your security posture over time.

このシナリオでは、Security Command Center を使用します。

  1. ナビゲーション メニューを開き、[セキュリティ] > [リスクの概要] を選択します。

脆弱性について説明しているビジュアリゼーションが複数あるため、Security Command Center で何が脆弱性として分類されているかをすぐに理解できるよう Gemini に尋ねます。

  1. 次のプロンプトを入力します。
How does Security Command Center define a vulnerability?

Gemini から、次のような回答が返されます。

Security Command Center defines a vulnerability as a flaw or weakness in software programs that an attacker could use to gain access to or otherwise compromise your Google Cloud environment.

Source: https://cloud.google.com/security-command-center/docs/finding-classes
  1. ドキュメントのリンクをクリックすると、検出結果クラスの詳細を確認できます。

  2. 確認後、タブを閉じて Google Cloud コンソールに戻ります。

  3. Google Cloud コンソールのサイドバーにある [検出結果] をクリックします。

  4. GKE クラスタの検出結果を確認するには、[クイック フィルタ] セクションの [リソースの種類] にある [Google container cluster] を選択します。

重大度が中の検出結果が表示されます。

  1. クラスタ シークレットの暗号化が無効になっている検出結果をクリックします。

この検出結果パネルの上部には「AI 生成の概要」というタイトルのセクションがあり、次のような Gemini による要約が表示されます。

Security Command Center の Security Health Analytics により、test という名前の google.container.ClusterCLUSTER_SECRETS_ENCRYPTION_DISABLED タイプの重大度がの検出結果を特定しました...

この検出結果は、アプリケーション レイヤでの Secret の暗号化がこのクラスタで有効になっていないことを示しています。また、センシティブ データ(ユーザー定義の Secret など)や、クラスタのオペレーションに必要な Secret(サービス アカウント キーなど)が書式なしテキストで etcd に保存されることを意味します。攻撃者が etcd にアクセスすると、これらの Secret を読み取れる可能性があるため、これはセキュリティ リスクとなります。

この検出結果を修正するには、このクラスタのアプリケーション レイヤでの Secret の暗号化を有効にする必要があります。これを行うには、Google Kubernetes Engine(GKE)コンソールに移動して [セキュリティ] タブを選択し、[アプリケーション レイヤでの Secret の暗号化] で [アプリケーション レイヤでの Secret の暗号化を編集] をクリックします。[アプリケーション レイヤでの Secret の暗号化を有効にする] チェックボックスをオンにしてデータベース暗号鍵を選択し、[変更を保存] をクリックします。

Gemini によるこの要約は、検出結果の簡単な説明を拡張したもので、Secret を平文で保存する場合の問題についてより詳細に説明するとともに、この検出結果を修正する手順の一例を示しています。

  1. この情報パネルを閉じます。

  2. 次に、過剰な権限を持つアカウントの検出結果をクリックし、Gemini による要約を表示します。次のような要約が表示されます。

Security Health Analytics in Security Command Center has identified a MEDIUM severity finding of type OVER_PRIVILEGED_ACCOUNT in the google.container.Cluster named test...

The finding is caused by the fact that the GKE node uses the Compute Engine default service account, which has broad access by default and may be over privileged for running your Kubernetes Engine cluster.

This finding poses a risk because the Compute Engine default service account has access to all of the resources in the project, including the GKE cluster. If an attacker were to gain access to the service account, they would be able to access all of the resources in the project...

この要約では、GKE クラスタに使用する最小権限のサービス アカウントを作成することによって検出結果を修正する方法について、Google が提供する具体的なドキュメントについても紹介しています。

  1. この情報パネルを閉じます。

  2. 最後に、マスター承認済みネットワークが無効になっている検出結果をクリックします。Gemini から、次のような回答が返されます。

Security Health Analytics in Security Command Center has identified a MEDIUM severity finding of type MASTER_AUTHORIZED_NETWORKS_DISABLED in the google.container.Cluster named test...

Control plane authorized networks improve security for your container cluster by blocking specified IP addresses from accessing your cluster's control plane.

To fix this finding, go to the Kubernetes cluster and click Edit. The edit button might be disabled if the cluster configuration recently changed. If you aren't able to edit the cluster settings, wait a few minutes and try again. On the Control plane authorized networks drop-down list, select Enabled. Click Add authorized network. Specify the authorized networks you want to use. Click Save....
  1. この情報パネルを閉じます。

これで、利用している環境のセキュリティに関する構成ミスについて理解できました。次は、Gemini の推奨事項を活用して、これらを修正します。

タスク 4. セキュリティに関する構成ミスを修復する

GKE クラスタのセキュリティを改善できる分野について確認できたので、Security Command Center の Gemini による要約で提供された手順を使用して、「マスター承認済みネットワークが無効」になっている検出結果を修復します。

  1. ナビゲーション メニューを開き、[Kubernetes Engine] > [クラスタ] を選択します。

  2. 先ほど作成したクラスタの名前(test)をクリックします。

  3. [ネットワーキング] セクションまで下方向にスクロールします。

  4. [コントロール プレーン承認済みネットワーク] の横にある鉛筆アイコンをクリックします。

  5. [コントロール プレーン承認済みネットワークを有効にする] の横にあるチェックボックスをオンにします。

  6. [Google Cloud のパブリック IP アドレスを介したアクセスを許可する] の下にあるチェックボックスをオンにします。

  7. [保存] をクリックします。

  8. サイドバーから [クラスタ] をクリックします。

[ステータス] セクションに回転するホイールのアイコンが表示され、クラスタが更新されていることが示されます。

  1. コントロール プレーンのネットワーク ポリシーの更新が行われている間に、Google Cloud コンソールのツールバーから Gemini を開きます。

  2. 次のプロンプトを入力します。

How do control plane authorized networks work in GKE?

Gemini から、次のような回答が返されます。

Control plane authorized networks allow you to restrict access to the control plane of your GKE cluster. By default, the control plane is accessible from any address. However, you can add one or more authorized networks to restrict access to only those networks.

To add an authorized network, go to the Google Kubernetes Engine page in the Google Cloud console. Click the name of the cluster you want to modify. Under Networking, in the Control plane authorized networks field, click edit Edit control plane authorized networks...

更新したコントロール プレーン ポリシーが適用されるまで、数分かかる場合があります。

  1. クラスタ構成が正常に更新されると、クラスタの横に表示される [ステータス] 列に緑色のチェックマークが表示されます。

[進行状況を確認] をクリックして、実行したタスクを確認します。 セキュリティに関する構成ミスを修復する

ラボを終了する

ラボでの学習が完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Qwiklabs から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバック、ご提案、修正が必要な箇所については、[サポート] タブからお知らせください。

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。