TECH PLAY

株式会社G-gen

株式会社G-gen の技術ブログ

812

G-gen の武井です。当記事では、Google Cloud のセキュリティ対策を観点ごとに整理し、網羅的にまとめます。 はじめに 全体像 証跡管理 概要 関連サービス・機能 Cloud Audit Logs Cloud Logging Cloud Asset Inventory 予防的統制(統制の基盤を整備する) 概要 関連サービス・機能 組織(Organization) 階層構造 組織を使わないリスク 予防的統制(ID・認証基盤を整備する) 概要 関連サービス・機能 Google Workspace / Cloud Identity MFA / パスキー Workforce Identity Federation(外部 IdP 連携) Workload Identity Federation(ワークロード間の認証) 予防的統制(コンソール・API へのアクセスを制御する) 概要 関連サービス・機能 Chrome Enterprise Premium Identity-Aware Proxy Access Context Manager Context-Aware Access VPC Service Controls 予防的統制(最小権限の原則を徹底する) 概要 関連サービス・機能 Identity and Access Management(IAM) Privileged Access Manager(PAM) 拒否ポリシー(Deny policies) 予防的統制(組織横断で一貫した統制を適用する) 概要 関連サービス・機能 組織のポリシー(Organization Policy) カスタム制約(Custom Constraints) タグ(Tags) 予防的統制(ネットワークレベルで防御する) 概要 関連サービス・機能 Cloud NGFW(Next Generation Firewall) Cloud Armor Cloud NAT Secure Web Proxy Cloud IDS 予防的統制(データを暗号化・保護する) 概要 関連サービス・機能 Cloud KMS Cloud HSM / Cloud EKM Sensitive Data Protection VPC Service Controls(再掲) Certificate Authority Service Certificate Manager 予防的統制(コンテナやコードの安全性を担保する) 概要 関連サービス・機能 Artifact Registry / Artifact Analysis Binary Authorization GKE セキュリティ機能 Software supply chain security 発見的統制 概要 関連サービス・機能 Security Command Center IAM Recommender(Active Assist) Cloud Monitoring Google SecOps(SIEM / SOAR) Mandiant 是正的統制 概要 関連サービス・機能 Config Controller Eventarc + Cloud Run functions / Workflows Google SecOps(SOAR) 経済的統制 概要 関連サービス・機能 Cloud Billing 予算アラート Spend Caps コスト異常検知(Anomaly Detection) Quotas(割り当て) 生成 AI 特有のセキュリティ 概要 生成 AI 基盤の選択 関連サービス・機能 Model Armor Agent Identity Agent Gateway / Agent Registry AI Protection(Security Command Center) Google Workspace はじめに Google Cloud にはセキュリティに関連するサービスが数多く存在します。しかし、いざ Google Cloud 環境をセキュアにしたいと考えたとき、どのサービスをどう組み合わせればよいかを俯瞰的に把握するのは容易ではありません。 当記事では、 セキュリティ上の観点 (何を守りたいか、何を実現したいか)を軸にサービスを分類し、それぞれの課題に応じて必要なサービスを素早く特定できることを目指します。 全体像 当記事では、Google Cloud のセキュリティサービスを以下の5つに分類して解説します。 # 分類 概要 1 証跡管理 「いつ・だれが・何を・どのように」操作したかを記録し、追跡を可能にする 2 予防的統制 不適切な操作や攻撃を未然に防ぐ。 アクセス制御・認証・暗号化・ネットワーク防御等 3 発見的統制 セキュリティ事象や設定ミスを速やかに検知し、可視化する 4 是正的統制 不適切な状態が発生した際に自動的に修復し、あるべき状態を維持する 5 経済的統制 クラウド利用料金の異常な増加から組織を保護する(EDoS 対策を含む) また、各分類に該当する Google Cloud のサービスについては以下のとおりです。 # 目的(分類) 該当サービス 1 操作ログ・資産情報を記録する (証跡管理) ・Cloud Audit Logs ・Cloud Logging ・Cloud Asset Inventory 2 統制の基盤を整備する (予防的統制) ・組織(Organization) ・階層構造 3 ID・認証基盤を整備する (予防的統制) ・Google Workspace / Cloud Identity ・MFA・パスキー ・Workforce Identity Federation ・Workload Identity Federation ・Secret Manager 4 コンソール・API へのアクセスを制御する (予防的統制) ・Chrome Enterprise Premium ・Identity-Aware Proxy ・Access Context Manager ・Context-Aware Access ・VPC Service Controls 5 最小権限の原則を徹底する (予防的統制) ・Identity and Access Management ・Privileged Access Manager ・拒否ポリシー 6 組織横断で一貫した統制を適用する (予防的統制) ・組織のポリシー ・カスタム制約 ・タグ 7 ネットワークレベルでの防御を行う (予防的統制) ・Cloud NGFW ・Cloud Armor ・Cloud NAT ・Secure Web Proxy ・Cloud IDS 8 データを暗号化・保護する (予防的統制) ・Cloud KMS ・Cloud EKM ・Cloud HSM ・Sensitive Data Protection ・VPC Service Controls ・Certificate Authority Service ・Certificate Manager 9 コンテナやコードの安全性を担保する (予防的統制) ・Artifact Registry / Artifact Analysis ・Binary Authorization ・GKE セキュリティ機能 ・Software supply chain security 10 脅威・設定ミスを把握する (発見的統制) ・Security Command Center ・IAM Recommender(Active Assist) ・Cloud Monitoring ・Google SecOps(SIEM / SOAR) ・Mandiant 11 不適切な状態を修復する (是正的統制) ・Config Controller ・Eventarc + Cloud Run functions / Workflows ・Google SecOps(SOAR) 12 クラウドの利用料金を保護する (経済的統制) ・Cloud Billing 予算アラート ・Spend Caps ・コスト異常検知 ・Quotas なお、近年トピックとして重要性が増している 生成 AI 特有のセキュリティ については、独立した章で解説します。 証跡管理 概要 証跡管理 とは、「いつ・だれが・何を・どのように」操作したかを記録し、いつでも追跡可能な状態にしておくための取り組みで、インシデント発生時の原因究明、内部監査・外部監査への対応、内部統制(J-SOX 等)において重要な要素となります。 Google Cloud では、 Cloud Audit Logs が API 操作の監査証跡を自動的に記録し、それらを集約・保管する基盤として Cloud Logging があります。 さらに Cloud Asset Inventory によって、リソース構成の変更履歴を時系列で追跡できます。 関連サービス・機能 Cloud Audit Logs Cloud Audit Logs とは、Google Cloud 上で発生した管理操作・データアクセス・システムイベント等を記録する監査ログサービスです。 Cloud Audit Logs には、以下の4種類のログがあります。 # 名称 説明 料金 デフォルト 1 管理アクティビティ監査ログ リソースに対する管理的な更新系の API リクエストが記録される 無料 有効(無効化できない) 2 データアクセス監査ログ リソースやデータに対する更新系・読み取り系の API リクエストが記録される。有効化するとログ容量が大きくなる可能性があるため注意 有料 無効(BigQuery のみデフォルト有効) 3 システム イベント監査ログ ユーザではなくGoogle Cloudサービスによって行われたリソース構成変更が記録される 無料 有効(無効化できない) 4 ポリシー拒否監査ログ セキュリティポリシー違反(VPC Service Controls や組織のポリシー等)によって拒否された API リクエストが記録される 有料 有効(除外フィルタ設定可能) 特に注意したいのが データアクセス監査ログ です。有効化するとログ量が膨大になり Cloud Logging の料金に影響するため、機密データを扱う API・サービスに絞ってデータアクセス監査ログを有効化するのも一案です。 参考 : Cloud Audit Logsを解説。Google Cloudの証跡管理 - G-gen Tech Blog Cloud Logging Cloud Logging とは、Google Cloud 上のあらゆるログを収集・保管・分析するための基盤サービスで、以下の機能によって構成されます。前述の Cloud Audit Logs もここに集約されます。 特にログシンクは、長期保管目的での Cloud Storage 連携、BigQuery を使った分析、後述の Google SecOps 等 SIEM への連携の起点となる重要な機能です。 # 機能 説明 1 ログエクスプローラ ログクエリ言語による高速なログ検索 2 ログバケット ログエクスプローラでログを可視化するための専用ストレージ 3 ログシンク ログを Cloud Storage、BigQuery、Pub/Sub 等へ転送する機能 4 ログベースのアラート 特定のログパターン検知時のアラート発報 5 ログベースのメトリクス ログから定義可能なカスタムメトリクス 参考 : Cloud Loggingの概念と仕組みをしっかり解説 - G-gen Tech Blog Cloud Asset Inventory Cloud Asset Inventory とは、Google Cloud 上のリソース構成、IAM ポリシー、組織のポリシー等のメタデータを、時系列のスナップショットとして保存・検索できるサービスです。 本サービスは無料で利用できる他、主に以下の用途で利用する機会が多いです。 # 用途 説明 1 資産棚卸 現在のリソース構成を CSV / JSON 等で一括エクスポート (監査・コンプライアンス対応で利用) 2 構成変更履歴の追跡 リソースの状態を時系列で保持し、過去のある時点の構成を確認可能 3 リソース横断検索 組織内のフォルダ、プロジェクトを横断したリソース検索 4 IAM ポリシーの検索 「誰が、どのリソースに、どの権限を持っているか」の俯瞰 5 変更通知 リソース変更時に Pub/Sub へ通知を送信し、後続処理のトリガーとして利用 これらのうち、リソース構成のスナップショット保存・変更履歴の追跡は証跡管理に該当しますが、変更通知を起点とした 設定ドリフトの検知 は発見的統制、それを受けての 自動修復 は是正的統制の観点から後述します。 参考 : Cloud Asset Inventoryを徹底解説! - G-gen Tech Blog 予防的統制(統制の基盤を整備する) 概要 Google Cloud を組織的に利用するにあたり、最初に行うべきは 組織(Organization)の作成 です。 組織は Google Cloud 環境を統制ならびに管理するためのリソースで、後述する IAM、組織のポリシー、VPC Service Controls、Security Command Center など、ほぼすべてのセキュリティ施策の前提となります。 組織がなくても Google Cloud を利用できますが、その場合、組織的な統制やガバナンスに必要な機能の多くが利用できません。企業や官公庁で Google Cloud を利用する場合、組織の構成は必須といえます。 関連サービス・機能 組織(Organization) 組織(Organization)とは、Google Cloud リソースの階層構造における最上位のリソースです。組織は Google Workspace または Cloud Identity のドメインと 必ず 1:1 で紐づきます。 例えば my-domain.com という Google Workspace ドメインがある場合、自動的に my-domain.com という組織リソースが作成されます。このように、Google Workspace を利用している組織では、Google Workspace のドメインに紐づく形で Google Cloud 組織が自動的に作成されます。 Google Workspace を利用していない場合でも、Cloud Identity(Free エディションは 50 アカウントまで無料)を登録することで組織が作成できます。 参考 : Google Cloudの組織(Organization)を徹底解説 - G-gen Tech Blog 参考 : Cloud Identityの登録・組織作成手順 - G-gen Tech Blog 階層構造 組織作成後は、 フォルダとプロジェクト で構成されるリソースの階層構造(ツリー構造)を設計します。 リソース 役割 プロジェクト Google Cloud リソースの最も基本的な管理単位(AWS でいうアカウントに相当) フォルダ プロジェクトを部署、環境区分(本番・開発)、サービスなどの単位でグルーピングするためのリソース 階層構造はセキュリティの観点で非常に重要です。組織機能を使って複数プロジェクトを 組織下に束ねる ことにより、組織のポリシーや IAM、VPC Service Controls などの統制を、リソースツリーの親から子へ 継承 (inheritance)の性質を活かして適用できるため、現実的な工数で効果的かつ効率的な統制が実現できます。 組織を使わないリスク 組織を使用しない場合、前述の通り組織的な統制やガバナンスに必要な機能の多くが利用できません。また、個人の Gmail アカウントなどによる「野良プロジェクト」の存在を許すことになり、意図しないセキュリティ事故のリスクが高まります。 そのため、Google Cloud を利用する場合は、たとえ最初は Google Cloud プロジェクトを1つしか使わない場合でも、 将来の拡張性も見込んで最初から組織を作成しておき 、組織下でプロジェクトを管理することが望ましいと言えます。 予防的統制(ID・認証基盤を整備する) 概要 組織の次は Google アカウント(ユーザー ID)と認証 を整備します。「誰が Google Cloud を利用できるのか」「どのように本人確認を行うのか」を明確にすることは、すべてのアクセス制御の基本となります。 関連サービス・機能 Google Workspace / Cloud Identity 前述の通り、組織で Google Cloud を利用する場合、Google アカウントやグループは Google Workspace もしくは Cloud Identity で作成・管理 します。 アカウントは 1 人に 1 つ発行することを原則とし、共用アカウントの利用はパスワード漏洩や監査ログからの実行者特定の困難さにつながるため避けるべきです。 また、メンバーの異動・退職時の管理等、運用効率とセキュリティを加味し、Google グループで役割ごとにアカウントをグルーピングし、グループ単位で IAM ロールを付与することが推奨されます。 参考 : Google Cloudの利用に必要なGoogleアカウントを徹底解説! - G-gen Tech Blog MFA / パスキー Google アカウントの認証強度を高めるため、 2 段階認証の有効化 が推奨されます。特に管理者アカウントには、フィッシング耐性の高いセキュリティキー(FIDO2)やパスキーの利用が強く推奨されます。Google Workspace や Cloud Identity の管理コンソールから、組織単位で 2 段階認証を必須化できます。 参考 : 2 段階認証プロセスを導入する Workforce Identity Federation(外部 IdP 連携) Workforce Identity Federation とは、OIDC や SAML 2.0 に対応した IdP(ID プロバイダ。Microsoft Entra ID や Okta 等)を利用するユーザーに、Google Cloud コンソールや Google Cloud リソースへのアクセスを提供する機能です。 外部 IdP 経由でシングル サインオン(SSO)を行い、Google Cloud コンソールにアクセスできるため、Google アカウントの作成は不要です。 参考 : SAMLでGoogle Cloudにシングルサインオンする方法(Workforce IdentityによるOktaからのSSO) - G-gen Tech Blog Workload Identity Federation(ワークロード間の認証) Workload Identity Federation とは、AWS や Azure 、あるいは GitHub Actions 等、外部のワークロードから Google Cloud の API を呼び出す際に、サービスアカウントキーを使わずに認証を行う仕組みです。サービスアカウントキーの発行と管理に伴うセキュリティリスクを排除できます。 参考 : キーを使用せずに AWS から Google Cloud にアクセスする方法 - G-gen Tech Blog 参考 : GitHub Actions を使って Google Cloud 環境に Terraform を実行する方法 - G-gen Tech Blog 予防的統制(コンソール・API へのアクセスを制御する) 概要 Google Cloud コンソール(Web UI)や gcloud コマンド、API へのアクセスを、接続元の IP アドレスやデバイスの状態などの条件に基づいて制限したいケースがあります。たとえば「社内ネットワークからのみ操作を許可したい」「会社承認のデバイスからのみアクセスさせたい」といった要件です。 関連サービス・機能 Chrome Enterprise Premium Chrome Enterprise Premium (以下、CEP)とは、Chrome ブラウザを前提とした Google のゼロトラスト(社内ネットワークの内側であっても無条件に信頼せず、アクセスのたびに検証する考え方)ソリューションです。 VPN を使わずに、ユーザー ID、接続元 IP アドレス、デバイス情報といった コンテキスト (背景情報)に基づき、Google Cloud をはじめ、社内システムや SaaS などへのアクセス制御を行います。 なお、CEP の主要な構成要素は以下のとおりです。 コンポーネント 概要 役割 Identity-Aware Proxy リバースプロキシ 社内システムなど接続を中継する Google Cloud 上の仕組み(フルマネージド) Identity and Access Management(IAM) 権限管理機構 Google アカウントなどのプリンシパルと権限を紐づける仕組み Access Context Manager ルールエンジン デバイス情報、アカウント情報、接続状況など各種背景情報からアクセス可否を判断する仕組み Endpoint Verification エンドポイントエージェント ユーザーのデバイス情報を収集する Google Chrome 拡張機能 参考 : Chrome Enterprise Premium(旧BeyondCorp Enterprise)を徹底解説 - G-gen Tech Blog Identity-Aware Proxy CEP の構成要素である Identity-Aware Proxy (以下、IAP)はフルマネージドのリバースプロキシサービスです。 主な利用用途としては、Google Cloud 上で稼働する Web アプリケーションへのアクセス制御や、踏み台サーバ無しでの VM マシンに対する Google アカウントを用いたログイン制御があげられます。これら IAP の基本機能については、Google Cloud ユーザーであれば無料で利用できます。 IAP が中継を許可するかどうかは、後述の IAM や Access Context Manager で定義したルールに基づきアクセス可否が判断されるため、サービスを安全に利用することができます。 参考 : 踏み台サーバはもういらない。IAP(Identity-Aware Proxy)の便利な使い方 - G-gen Tech Blog Access Context Manager 同じく CEP の構成要素である Access Context Manager (以下、ACM)は、ユーザー情報、接続元 IP アドレス、デバイス情報(OS バージョン、暗号化の有無など)、地理的な場所などのコンテキスト情報を アクセスレベル (条件)として管理するためのルールエンジンです。定義したアクセスレベルは、Chrome Enterprise Premium や VPC Service Controls と組み合わせて使用します。 参考 : Access Context ManagerでGoogle CloudコンソールとAPIへのアクセスを制限する Context-Aware Access Google Workspace にも前述同様の機能として Context-Aware Access (以下、CAA)がありますが、機能面に差はなく、呼称の違いと捉えていただいて構いません。 両者ともに共通の API(Access Context Manager API)を使用しており、ACM(Google Cloud)で作成したアクセスレベルは、CAA(Google Workspace)側にも自動的に共有されます。 Google Workspace では、Gmail、Google Drive、Gemini といった各種アプリケーションに対するアクセス条件として使用できます。 参考 : コンテキストアウェアアクセスでGoogle Workspaceのセキュリティを強化してみた - G-gen Tech Blog VPC Service Controls VPC Service Controls とは、Google Cloud 上の機密データやサービスを保護し、意図しないデータ流出やデータアクセスを防ぐための機能です。主に機密データを取り扱うプロジェクトにおいて多く実装され、情報漏洩リスクの軽減に寄与します。 具体的には、 サービス境界 という論理的な囲いを設け、信頼できるネットワークや認証情報以外からの API リクエストを制限します。 アクセス条件の部分については前述の ACM との組み合わせも可能で、ACM で定義した背景情報にもとづく API アクセス制御の実現も可能です。 参考 : VPC Service Controlsを分かりやすく解説 - G-gen Tech Blog 参考 : VPC Service Controlsのリソース構成を図解 - G-gen Tech Blog 予防的統制(最小権限の原則を徹底する) 概要 Google Cloud のリソースに対して「誰が」「何をできるか」を適切に管理することは、セキュリティの根幹です。最小権限の原則(必要最小限の権限付与)を徹底することで、内部不正や設定ミスによるリスクを低減できます。 関連サービス・機能 Identity and Access Management(IAM) Identity and Access Management (以下、IAM)とは Google Cloud リソースに対するアクセス制御を司る仕組みです。「誰(プリンシパル=ユーザーやグループ、サービスアカウントなどの操作主体)が」「どのリソースに対して」「何をできるか(ロール・権限)」を管理します。事前定義ロール、カスタムロール、基本ロールの使い分けや、後述する拒否ポリシー(Deny policies)で強制的な権限制限も可能です。 参考 : Google CloudのIAMを徹底解説! - G-gen Tech Blog 参考 : Google CloudのIAMで最小権限の原則を実現する方法 - G-gen Tech Blog Privileged Access Manager(PAM) Privileged Access Manager (PAM)は IAM ロールを一時的に付与するための仕組みです。IAM は恒久的な権限付与ですが、PAM は承認フローを含むジャスト・イン・タイム(JIT)アクセスを実現し、常時特権を保持することによるリスクを低減できます。 参考 : Privileged Access Manager(PAM)を解説! - G-gen Tech Blog 拒否ポリシー(Deny policies) 拒否ポリシー とは、特定のプリンシパルが特定の権限を使用することを強制的に禁止できる IAM の機能です。拒否ポリシーは 許可ポリシーよりも優先して評価 されるため、たとえ IAM ロールを通じて権限を持っていても、拒否ポリシーで禁止されている操作は実行できません。 例えば、何らかのロールによって resourcemanager.projects.delete 権限を持ったユーザーがいたとしても、拒否ポリシーによって当該操作を実行できるのはプロジェクト管理自動化ジョブに紐づくサービスアカウントのみとし、それ以外のプリンシパルによる操作を禁止するといった制御が可能です。 参考 : Google CloudのIAMにおけるDenyポリシーを解説 - G-gen Tech Blog 予防的統制(組織横断で一貫した統制を適用する) 概要 組織に複数のプロジェクトが存在する環境では、各プロジェクトに対し、組織として一貫したルールやガードレール(逸脱を防ぐための共通の制約・歯止め)の適用が必要不可欠です。 例えば、「特定のリージョン以外でリソースを作成させない」、「Cloud Storage バケットを公開設定にさせない」、「サービスアカウントキーを作成させない」といった統制を、IAM とは別のレイヤから強制的に適用するための仕組みが 組織のポリシー です。 組織のポリシーは、組織・フォルダ・プロジェクトといったリソース階層の上位から下位へ 継承 することができるので、リソース階層の設計(前述)と組み合わせることで、現実的な工数で組織横断のガバナンスを実現できます。 関連サービス・機能 組織のポリシー(Organization Policy) 組織のポリシー (Organization Policy)とは、組織・フォルダ・プロジェクトに対してガードレールを設定し、Google Cloud リソースの利用方法に制約を課す仕組みです。 IAM が「誰が何をできるか」を制御するのに対し、組織のポリシーは 「組織として何を許容し、何を許容しないか」 を制御します。 例えば、以下のような統制が可能です。 制約名 役割 gcp.resourceLocations リソースを作成できるリージョンを限定する storage.publicAccessPrevention Cloud Storage の公開アクセスを禁止する compute.vmExternalIpAccess 外部 IP アドレスを持つ VM の作成を禁止する iam.disableServiceAccountKeyCreation サービスアカウントキーの作成を禁止する 組織のポリシーは Google Cloud があらかじめ用意した 制約 (Constraint)から選択して適用します。 組織・フォルダで設定したポリシーは下位リソースに継承されるため、組織レベルで共通的なガードレールを定義し、必要に応じてフォルダ・プロジェクトレベルで上書きするという運用が可能です。 参考 : 組織のポリシーを解説 - G-gen Tech Blog カスタム制約(Custom Constraints) カスタム制約 (Custom Constraints)とは、Google Cloud があらかじめ用意した組織ポリシーの制約だけでは要件を満たせない場合に、独自のポリシー条件を CEL (Common Expression Language)で定義し、組織のポリシーとして適用できる機能です。 例えば「VM のマシンタイプは n2-standard シリーズのみ許可する」、「Cloud Storage バケット名に特定のプレフィックスを必須にする」といった、組織固有の要件に応じた統制が実現できますが、サポートサービスが限定されている点には注意が必要です。 参考 : カスタム制約の作成と管理 タグ(Tags) タグ (Tags)は、組織またはプロジェクトレベルで定義したキーバリューペアをリソースに紐づけ、 ガバナンス・統制の条件として利用するための機能 です。 具体的には、IAM ポリシーの条件(Condition)や組織のポリシーの条件付き制約として利用でき、タグを軸とした条件付きの統制を実現できます。 似た機能として ラベル (Labels)があり、いずれもキーバリューの文字列ペアという性質は共通しますが、別の機能です。 最も重要な違いは、タグはそれ自体がリソースとして扱われるため、組織横断のリソースとして事前定義する必要があるのに対し、ラベルはリソースに付与する単なるメタデータである点です。 # 比較項目 タグ(Tags) ラベル(Labels) 1 性質 キー・バリュー・バインディングがそれぞれリソース リソースに付与するメタデータ 2 事前定義 組織またはプロジェクトでキー・バリューの事前定義が必要 事前定義不要 3 階層継承 子リソースに継承される 継承されない 4 主な用途 権限管理・統制(IAM 条件、組織のポリシー条件) リソース整理、課金分析 5 IAM 条件として利用 可能 不可 6 組織のポリシー条件として利用 可能 不可 組織ポリシーにタグを組み合わせることで、例えば、 environment=prod タグが付いたプロジェクトには、外部 IP の利用を禁止する組織のポリシーを適用するといったタグを軸とした条件付き統制を実現できます。 参考 : 組織のポリシーをタグで制御してみた - G-gen Tech Blog 参考 : タグとラベルの違い(Tags / Labels) - G-gen Tech Blog 予防的統制(ネットワークレベルで防御する) 概要 Google Cloud 上のワークロードを、外部からの不正アクセス、DDoS 攻撃、Web 攻撃、内部ネットワークからの脅威などから保護したい。あるいは、外部から VM への直接的な接続を許さず、必要な通信は制御された経路のみに限定したいといったケースが考えられます。 これらの課題に対応するため、Google Cloud では複数のネットワークセキュリティサービスが提供されています。しかし、それぞれが守る対象やレイヤが異なるため、要件に応じて組み合わせて利用することが推奨されます。 関連サービス・機能 Cloud NGFW(Next Generation Firewall) Cloud NGFW (Next Generation Firewall)とは、Google Cloud の VPC ネットワークに対するファイアウォール機能の総称です。従来の VPC ファイアウォールから発展した次世代ファイアウォール製品で、以下の3つの形態でルールを定義できます。 # 種類 適用範囲 ユースケース 1 VPC ファイアウォールルール VPC ネットワーク 従来からの VPC 単位のファイアウォール 2 ネットワークファイアウォールポリシー 特定リージョンまたは複数リージョンの VPC ネットワーク プロジェクト内の複数の VPC ネットワークに対して同じルール群を適用 3 階層型ファイアウォールポリシー 組織・フォルダ 組織横断のガードレールとして適用 例えば 階層型ファイアウォールポリシー を利用することで、組織レベルで「インターネットからの SSH 接続を一律拒否する」といった共通のガードレールを設定し、配下のすべての VPC に強制的に適用できます。 また、Cloud NGFW の機能は Essentials(無償) / Standard(有償) / Enterprise(有償) ティアのいずれかに分類され、Standard ティアでは FQDN オブジェクトや Threat Intelligence 連携が、最上位の Enterprise ティアではこれらに加えて侵入防止(IPS)や TLS インスペクションといった L7 セキュリティ機能が利用できます。 参考 : Cloud Next Generation Firewall(Cloud NGFW)を徹底解説! - G-gen Tech Blog Cloud Armor Cloud Armor とは、Google Cloud のロードバランサーに対して DDoS 攻撃対策 と WAF (Web Application Firewall)機能を提供するサービスです。Google が提供する大規模なエッジネットワーク(Google Front End)と統合されており、アプリケーションに到達する前の段階で攻撃トラフィックをフィルタリングします。 主な機能は以下のとおりです。 # 機能 説明 1 DDoS 攻撃対策 L3/L4 の大量トラフィック攻撃(ボリューム型攻撃)に対する自動的な防御 2 WAF ルール OWASP Top 10 等の Web 攻撃(SQL インジェクション、XSS 等)に対するプリセットおよびカスタムルール 3 エッジセキュリティポリシー 地理的条件、IP アドレス、リクエストヘッダ等に基づくアクセス制御 4 Adaptive Protection 機械学習を用いた異常トラフィック検知(Enterprise エディションのみ) 5 bot 対策 reCAPTCHA Enterprise との連携によるボット判定 Cloud Armor には Standard と Enterprise の2つのエディションがあり、Enterprise では Adaptive Protection や脅威インテリジェンス連携といった高度な機能が利用できます。 参考 : Cloud Armorを徹底解説。GoogleのフルマネージドWAF - G-gen Tech Blog Cloud NAT Cloud NAT (Network Address Translation)とは、外部 IP アドレスを持たない VM や GKE Pod 等から インターネットへのアウトバウンド通信 を可能にするためのフルマネージドの NAT サービスです。 セキュリティ観点での主な意義は、 ワークロードを外部 IP なしで運用しつつ、必要な外部通信のみ実現できる 点にあります。外部 IP を持たないことで、インターネット側からの直接的な攻撃対象とならず、攻撃面(アタックサーフェス)を縮小できます。 外部 IP は、本来はインターネット側にサービスを提供するためのものですが、外部 API 呼び出しやパッケージのダウンロード等、アウトバウンド通信のためだけに外部 IP を付与しているケースは少なくありません。このような場合、Cloud NAT を利用することで外部 IP を排除し、より安全な構成にできます。 参考 : Cloud NAT の概要 Secure Web Proxy Secure Web Proxy (以下、SWP)とは、Google Cloud 上のワークロードからの アウトバウンド通信 (HTTP/HTTPS)を制御するためのフォワードプロキシサービスです。 主な機能は以下のとおりです。 接続先 URL(FQDN・パス)に基づくフィルタリング TLS インスペクション(HTTPS 通信の中身の検査) ユーザー・サービスアカウントに基づくポリシー適用 Cloud NAT がアウトバウンド通信の経路そのものを提供するのに対し、SWP はその上で「どのワークロードが、どの URL に通信できるか」を制御します。データ持ち出し対策や、信頼できる外部サービスへのみ通信を許可するゼロトラスト的な構成において有用です。 参考 : Secure Web ProxyでVMからのWebアクセスを制御してみた - G-gen Tech Blog Cloud IDS Cloud IDS (Intrusion Detection System、侵入検知システム)とは、VPC ネットワーク内のトラフィックを検査し、 ネットワーク侵入や脅威の兆候を検知 するためのマネージド型 IDS サービスです。バックエンドには Palo Alto Networks の脅威検知エンジンが採用されています。 VPC 内のトラフィックを パケットミラーリング によって IDS エンドポイントに複製し、不審な通信や既知の攻撃パターンを検知してアラートを発報します。検知のみを行い、通信の遮断は行わない点が IPS(Intrusion Prevention System、侵入防止)との違いです。 なお、前述の Cloud NGFW Enterprise エディションで IPS 機能が利用できるため、要件(検知のみ / 検知 + 遮断)に応じて使い分けることができます。 参考 : Google CloudのCloud IDSを徹底解説 - G-gen Tech Blog 参考 : Cloud NGFWのIPS機能を試してみた - G-gen Tech Blog 予防的統制(データを暗号化・保護する) 概要 Google Cloud に保存されるデータは、ユーザーが特別な設定を行わなくても、デフォルトで暗号化されています。このとき暗号鍵は Google 側で自動的に生成・管理・ローテーションされるため、ユーザーが意識する必要はありません。これを デフォルトの保存データの暗号化 と呼びます。 しかし、情報セキュリティ監査上の要件や、より強固なセキュリティが求められる場合には、ユーザー側で暗号鍵を独自に管理したい、機密データの所在を把握して保護したい、通信を暗号化する証明書を統制したい、といった要件が生じます。 本章では、こうした 暗号化・データ保護 に関連するサービスとして、暗号鍵を管理する Cloud KMS (およびその保護レベルである Cloud HSM ・ Cloud EKM )、機密データを検出・保護する Sensitive Data Protection 、データ流出を防ぐ VPC Service Controls 、そして証明書を管理する Certificate Authority Service ・ Certificate Manager を解説します。 関連サービス・機能 Cloud KMS Cloud KMS (Cloud Key Management Service)とは、Google Cloud の暗号鍵を作成・保管・管理するための鍵管理サービスです。前述のとおり Google Cloud のデータはデフォルトで暗号化されますが、その鍵をユーザー自身で管理したい場合に Cloud KMS を利用します。 ユーザーが Cloud KMS で管理する鍵を、各種 Google Cloud サービスのストレージ暗号化に利用することを 顧客管理の暗号鍵 (Customer-Managed Encryption Keys、以下 CMEK)と呼びます。CMEK は Cloud Storage バケット、Compute Engine の永続ディスク、BigQuery のデータセットなど、多くのサービスでサポートされており、鍵の無効化・破棄をユーザーの管理下に置けるため、監査・コンプライアンス上の要件に応えやすくなります。 Cloud KMS の鍵は、鍵マテリアルの保護方法に応じて以下の 保護レベル から選択します。 # 保護レベル 説明 1 SOFTWARE ソフトウェアモジュールで鍵を保護する標準的な保護レベル 2 HSM Cloud HSM(後述)の専用ハードウェアで鍵を保護する 3 EXTERNAL / EXTERNAL_VPC Google Cloud 外部の鍵管理システム(Cloud EKM 経由、後述)で管理される鍵を利用する なお、Cloud KMS にはユーザー側で生成した既存の鍵をインポートする機能(BYOK : Bring Your Own Key)や、CMEK の鍵を自動でプロビジョニング・割り当てする Autokey といった機能もあり、鍵運用の負荷を軽減できます。 参考 : Cloud KMSを徹底解説 - G-gen Tech Blog Cloud HSM / Cloud EKM Cloud HSM と Cloud EKM は、いずれも独立した別サービスというよりも、前述の Cloud KMS の 保護レベル として選択できる鍵管理の選択肢です。どちらも Cloud KMS の API を通じて利用するため、操作方法やアクセス制御(IAM)は通常の Cloud KMS 鍵と共通です。 Cloud HSM は、FIPS 140-2 レベル3認定のハードウェアセキュリティモジュール(HSM)によって鍵を保護するフルマネージドの仕組みです。一方の Cloud EKM (Cloud External Key Manager)は、Google Cloud の外部に存在する鍵管理システムに格納された鍵を、Cloud KMS 経由で利用するための仕組みで、鍵をクラウド外部で保持・管理したい(HYOK : Hold Your Own Key)という要件に対応します。 # 機能 概要 主なユースケース 1 Cloud HSM FIPS 140-2 レベル3認定の HSM で鍵を生成・保護する ハードウェアで保護された鍵が求められる規制・監査要件 2 Cloud EKM Google Cloud 外部の鍵管理システムの鍵を Cloud KMS 経由で利用する 鍵をクラウド事業者の管理外に置きたい要件 要件に応じて、標準的な SOFTWARE 保護レベルで十分なのか、ハードウェア保護(Cloud HSM)が必要なのか、あるいは鍵そのものを外部に置く必要があるのか(Cloud EKM)を見極めて選択します。 参考 : Cloud HSM | Cloud Key Management Service Sensitive Data Protection Sensitive Data Protection (旧称 Cloud Data Loss Prevention、Cloud DLP)とは、個人識別情報(PII)等の機密データを 検出・分類・保護 するためのフルマネージドサービスです。 主な機能は以下のとおりです。Cloud Storage や BigQuery 等に保存されたデータをスキャンする使い方のほか、API 経由でテキストを送信して検査する使い方もあります。 # 機能 説明 1 検出(Discovery) 組織・フォルダ・プロジェクトを横断してデータをプロファイリングし、機密データの所在とリスクを可視化する 2 検査(Inspection) Cloud Storage、BigQuery、Datastore 等のデータや、API 経由のテキストに含まれる機密データを検出する 3 匿名化(De-identification) マスキングや仮名化(pseudonymization)等により、機密データを別の文字列に置き換えて保護する 4 リスク分析 k-匿名性などの指標を用いて、データの再識別リスクを測定する 代表的なユースケースとして、データ処理パイプラインの中で Sensitive Data Protection を用いて PII を検知・除去してからデータを保存する、といった構成が挙げられます。なお、生成 AI の入出力テキストに含まれる機密データの検査については、現在では Model Armor に統合されています。 参考 : Sensitive Data Protection の概要 VPC Service Controls(再掲) VPC Service Controls は、 サービス境界 という論理的な囲いを設け、信頼できるネットワークや認証情報以外からの API リクエストを制限することで、機密データの意図しない流出(データ持ち出し)を防ぐ機能です。当記事では「予防的統制(コンソール・API へのアクセスを制御する)」の章で詳しく解説しています。 データ保護の観点では、暗号化(Cloud KMS)や機密データの検出(Sensitive Data Protection)が「データそのものを守る」のに対し、VPC Service Controls は「データを取り扱う API アクセスの境界を守る」役割を担うものとして、組み合わせて活用することが推奨されます。 Certificate Authority Service Certificate Authority Service (以下、CA Service)とは、プライベート認証局(CA)の構築・運用・管理を簡素化・自動化するためのフルマネージドサービスです。組織内のシステムやワークロードに対して証明書を発行する仕組みを、CA サーバーやハードウェアを自前で運用することなく利用できます。 CA Service では、自己署名証明書を持つ ルート CA と、別の CA によって署名される 下位 CA (subordinate CA)の両方を作成でき、複数の CA を CA プール にまとめることでスケーラビリティを高められます。主なユースケースとしては、サービス間通信(mTLS)で利用するワークロード証明書の発行、内部向けロードバランサで使うプライベート証明書の発行、IoT デバイスの認証などが挙げられます。 手動での証明書の作成・更新作業を排除し、厳格なアクセス制御のもとで証明書のライフサイクルを管理できる点が、セキュリティ上の主な意義です。 参考 : Certificate Authority Service の概要 Certificate Manager Certificate Manager とは、Cloud Load Balancing(ロードバランサ)で利用する SSL/TLS 証明書の作成・管理・デプロイを行うサービスです。多数の証明書を扱う構成でも、証明書マップを通じて効率的に管理できます。 Certificate Manager で扱える証明書には、以下の2種類があります。Certificate Manager で管理する証明書は、合計100枚までは無料で、それを超えると枚数に応じた月額課金が発生します。また、前述の CA Service と連携することで、プライベートな Google マネージド証明書を発行することも可能です。 # 証明書の種類 説明 1 Google マネージド証明書 Google により発行・自動更新されるドメイン認証(DV)証明書 2 セルフマネージド証明書 ユーザーが外部で取得した証明書をアップロードして利用する CA Service が「証明書を発行する認証局そのもの」を提供するのに対し、Certificate Manager は「発行された証明書をロードバランサに紐づけて運用する」役割を担う、と整理すると分かりやすいでしょう。 参考 : GoogleマネージドSSL/TLS証明書をDNS認証で作成する方法 - G-gen Tech Blog 予防的統制(コンテナやコードの安全性を担保する) 概要 アプリケーションをコンテナとしてビルドし、GKE や Cloud Run にデプロイする運用が一般的になるなかで、 ソフトウェアサプライチェーン のセキュリティが重要な課題となっています。 具体的には、「コンテナイメージに既知の脆弱性が含まれていないか」「許可されていない、あるいは検証されていないイメージが本番環境にデプロイされていないか」「ビルドからデプロイ、実行に至る一連の経路が信頼できるものか」といった点を担保したい、という要件です。Google Cloud では、これらの課題に対応するためのサービスが提供されています。 関連サービス・機能 Artifact Registry / Artifact Analysis Artifact Registry とは、コンテナイメージや各種言語パッケージを保存・管理するためのフルマネージドのリポジトリサービスです。Cloud Run や GKE などのコンテナランタイムへイメージを提供する基盤となり、アクセス制御は IAM によってきめ細かく管理できます。 その Artifact Registry に保存されたアーティファクトの安全性を担保するのが Artifact Analysis (旧称 Container Analysis)です。Artifact Analysis は、ソフトウェア構成分析(脆弱性スキャン)とメタデータの保存・取得を提供するサービスで、イメージを既知の脆弱性情報と照合します。 スキャンには以下の2種類があり、特に自動スキャンは新たな脆弱性が発見されるたびに情報が継続的に更新されるため、過去に push されたイメージについても最新の脆弱性状況を把握できます。 # スキャン種別 説明 1 自動スキャン イメージを Artifact Registry に push した時点で自動的にスキャンが実行される。脆弱性情報は継続的に更新される 2 オンデマンドスキャン gcloud コマンドにより手動でスキャンを実行する。ローカルやレジストリ上のイメージを対象にできる Artifact Analysis による脆弱性検出結果は、後述の Security Command Center に集約され、プロジェクト横断で他のセキュリティリスクと併せて確認できます。また、次に述べる Binary Authorization と連携し、脆弱性のあるイメージのデプロイを抑止する用途にも利用されます。 参考 : Artifact Analysis の概要 Binary Authorization Binary Authorization とは、GKE、Cloud Run、Google Distributed Cloud(GDC)などへのコンテナイメージのデプロイ時に、信頼できるイメージのみがデプロイされることを保証する デプロイ時のセキュリティ統制 の仕組みです。 Binary Authorization では、組織のデプロイ要件を ポリシー として定義します。イメージが CI/CD パイプラインの各段階を通過する際に、その通過を示す署名( 証明 / attestation )が生成され、デプロイ時にはアドミッションコントローラ(リソース作成要求を受け付ける前に検査・制御する Kubernetes の仕組み)がポリシーを評価して、要件を満たさないイメージのデプロイをブロックします。証明を発行する主体は アテスター(attestor) と呼ばれます。 前述の Artifact Analysis と組み合わせることで、「一定以上の深刻度の脆弱性が検出されたイメージはデプロイを許可しない」といった、脆弱性スキャン結果に基づく統制も実現できます。なお、障害対応など緊急時には、ポリシーを一時的に迂回する breakglass(ブレークグラス)の仕組みも用意されています。 参考 : Binary Authorization の概要 GKE セキュリティ機能 GKE(Google Kubernetes Engine)には、コンテナワークロードを安全に運用するためのセキュリティ機能が数多く実装されています。とりわけ Autopilot モード では、Google のベストプラクティスに基づいたハードニング済みの構成がデフォルトで適用され、ノードの管理(スケーリング・修復・セキュリティパッチ適用)も Google に委任できます。 代表的なセキュリティ機能は以下のとおりです。 # 機能 説明 1 Autopilot モード ハードニング済みの構成をデフォルト適用し、危険な構成や設定ミスが起きやすい機能をブロックする 2 Workload Identity Pod に対し、サービスアカウントキーを使わずに Google Cloud リソースへの認証を提供する 3 Shielded GKE Nodes ノード VM のセキュアブートや整合性監視により、ノードの改ざんを検知する 4 限定公開クラスタ ノードに外部 IP を付与せず、攻撃面(アタックサーフェス)を縮小する 5 Pod セキュリティの制御 特権 Pod など危険な構成を、アドミッションコントローラによって制限する Standard モードでもこれらの機能は個別に有効化できますが、Autopilot モードを選択することで、セキュリティのベースラインを最初から確保できる点が大きなメリットです。 参考 : Google Kubernetes Engine(GKE)を徹底解説 - G-gen Tech Blog Software supply chain security Software supply chain security とは、特定の単一サービスを指す名称ではなく、ソフトウェアサプライチェーン全体をエンドツーエンドで保護するための製品群の総称です。 開発環境からビルド、アーティファクトの保管、デプロイ、実行に至る各段階を保護するために、Cloud Workstations(セキュアな開発環境)、Cloud Build(ビルド)、本章で解説した Artifact Registry / Artifact Analysis、Binary Authorization、Assured Open Source Software(検証済み OSS パッケージ)といったサービスが組み合わされています。すなわち、ここまでに解説してきた各サービスを、サプライチェーンセキュリティという観点で束ねた包括的なフレームワークと捉えるとよいでしょう。 参考 : ソフトウェア サプライ チェーンのセキュリティ 発見的統制 概要 予防的統制をどれだけ整備しても、すべての設定ミスや新たな攻撃手法を完全に防ぐことは困難です。 発見的統制 は、発生した(あるいは発生しつつある)セキュリティ事象や設定ミスを速やかに検知し、可視化するための仕組みであり、予防的統制を補完する重要な役割を担います。 Google Cloud では、構成ミス・脆弱性・脅威の検出を統合的に行う Security Command Center を中核に、過剰権限の検出を支援する IAM Recommender (Active Assist)、運用監視を担う Cloud Monitoring 、より広範なログ分析と脅威検知を行う Google SecOps 、そして脅威インテリジェンス・インシデント対応サービスを提供する Mandiant が用意されています。 関連サービス・機能 Security Command Center Security Command Center (以下、SCC)とは、Google Cloud 環境の 構成ミス・脆弱性・脅威・コンプライアンス違反 を一元的に検出・可視化する統合セキュリティプラットフォームです。各検出機構が出力した結果は 検出結果(Findings) として集約され、SCC のダッシュボード上で横断的に確認できます。 SCC が提供する主な検出カテゴリは以下のとおりです。 # 検出カテゴリ 説明 1 構成ミスの検出 IAM・ネットワーク・ストレージ等の設定ミスを継続的に検出する(Security Health Analytics) 2 脆弱性の検出 Web アプリケーションの脆弱性(Web Security Scanner)、Artifact Registry のコンテナイメージ脆弱性等を検出する 3 脅威の検出 Cloud Audit Logs 等のログから攻撃の兆候を検出する(Event Threat Detection、Container Threat Detection 等) 4 コンプライアンス CIS Benchmarks、PCI DSS 等の業界標準に対する準拠状況を可視化する SCC は2026年6月現在 Standard ・ Premium ・ Enterprise の3つのサービスティアで提供されていますが、Enterprise ティアは2027年5月21日に EOL の予定です。 # ティア 概要 1 Standard 基本的な構成ミスの検出と、コンプライアンス順守状況の管理。Google Cloud を対象とする 2 Premium Standard に加え、攻撃パス分析、脅威検出、コンプライアンスモニタリング、DSPM(Data Security Posture Management。機密データの所在やリスクを可視化・管理する仕組み)等の高度機能を提供 3 Enterprise マルチクラウド対応の CNAPP(Cloud-Native Application Protection Platform、クラウドネイティブなアプリを開発から実行まで包括的に保護する統合プラットフォーム)として AWS と Azure に対応。Mandiant の脅威インテリジェンスや Google SecOps との統合を含む包括的なソリューション SCC の検出結果は Pub/Sub 経由で外部システムへ通知したり、後述の Google SecOps と統合して SIEM 側でより高度な分析・自動対応につなげたりすることも可能で、運用ワークフローの起点として利用できます。 参考 : Security Command Centerを徹底解説。Google Cloud(GCP)の脆弱性を自動検知 - G-gen Tech Blog IAM Recommender(Active Assist) IAM Recommender とは、IAM ポリシーの利用状況を機械学習で分析し、 実際には使われていない過剰な権限を特定して推奨事項を提示する 機能です。最小権限の原則を「すでに付与済みの権限を整理する」観点で支援するもので、Google Cloud の推奨機能群である Active Assist の一部として提供されます。 IAM Recommender は、過去の権限利用履歴を分析し、付与されているロールに対して実際に必要だった権限を割り出した上で、より粒度の細かいロールへの差し替えや、未使用権限の削除といった推奨を生成します。推奨事項はコンソール上で確認し、レビューの上で適用する運用が基本となります。 IAM Recommender 自体は無料で利用できますが、生成される推奨事項の範囲は SCC のティアに依存する点に注意が必要です。 # 対象ロール・スコープ 必要な SCC ティア 1 基本ロール(オーナー、編集者、閲覧者) Standard 2 ・基本ロール以外 ・組織、フォルダ、プロジェクト以外のリソースに付与されたロール Premium 以上 Active Assist には IAM Recommender 以外にも、放置プロジェクトの検出、未使用リソースの検出など、コスト・パフォーマンス・セキュリティに関する各種の Recommender が含まれており、組み合わせることで運用全体の最適化にも貢献します。 参考 : Google CloudのIAMで最小権限の原則を実現する方法 - G-gen Tech Blog Cloud Monitoring Cloud Monitoring は、Google Cloud リソースの指標(メトリクス)を収集・可視化し、しきい値超過時に通知を発報する統合監視サービスです。本来はパフォーマンス監視や可用性監視を主目的としますが、セキュリティ運用においても重要な役割を果たします。 特に、前述の Cloud Logging に集約された Cloud Audit Logs 等のログに対するログベースのアラート と組み合わせることで、「特定の高権限操作が実行された」「想定外のリージョンでリソースが作成された」といった事象を即時に検知し、運用チームへ通知できます。 # 機能 セキュリティ運用での主な用途 1 アラートポリシー 監査ログのパターンや異常なメトリクスに基づくインシデント通知 2 通知チャネル メール、Slack、PagerDuty、Pub/Sub 等への通知発報 3 稼働時間チェック 外形監視によるサービスの可用性監視 4 ダッシュボード セキュリティ関連メトリクスの可視化 SCC が「Google Cloud 全体のセキュリティ状態(ポスチャ)」を扱うのに対し、Cloud Monitoring は「自社で構築したワークロード固有のメトリクスやログ」をきめ細かく監視する役割を担い、両者は補完関係にあると整理できます。 参考 : Cloud Monitoringを徹底解説! - G-gen Tech Blog Google SecOps(SIEM / SOAR) Google SecOps (Google Security Operations、旧称 Chronicle)は、 SIEM (Security Information and Event Management)、 SOAR (Security Orchestration, Automation and Response)、脅威インテリジェンス、Gemini を統合した、Google Cloud のセキュリティ運用プラットフォームです。 従来、ログの収集・検索、検知ルール管理、インシデントの調査と対応はそれぞれ別々の製品で行う必要があり、運用面での課題となっていました。Google SecOps はこれらを単一のクラウドネイティブな基盤上で統合し、ログ分析から脅威検知、調査、自動対応までを一気通貫で実現します。Google Cloud のログだけでなく、AWS や Azure、各種オンプレミス機器や SaaS のログも取り込むこともできます。 発見的統制の文脈では、特に SIEM の側面が重要です。Google SecOps は取り込んだログを UDM (Unified Data Model)という共通スキーマに正規化した上で、検知ルールと突き合わせて脅威を検出します。後述する Mandiant および VirusTotal の脅威インテリジェンスが標準で組み込まれており、IoC(Indicator of Compromise、侵害の痕跡)との照合による検知が可能です。なお、検知された事象に対する自動対応(SOAR)の側面については、是正的統制の章で改めて解説します。 参考 : Google SecOps(Google Security Operations)を徹底解説! - G-gen Tech Blog Mandiant Mandiant は、2022年に Google が買収したサイバーセキュリティ企業で、脅威インテリジェンス、インシデント対応、攻撃面管理といった分野で世界的に知られています。買収後も Mandiant ブランドは維持され、現在は Google Cloud のセキュリティポートフォリオの一部として位置づけられています。 Mandiant が提供する主なサービスは以下のとおりです。 # サービス 概要 1 Mandiant Threat Intelligence 攻撃者の戦術・技術・手順(TTP)に関する脅威インテリジェンスを提供する 2 Mandiant Attack Surface Management(ASM) 組織のインターネット側からの露出範囲(攻撃面)を発見・継続監視する 3 Mandiant Managed Defense 24時間365日のマネージド検知・対応(MDR)サービス 4 Mandiant Incident Response インシデント発生時の調査・対応支援サービス Google Cloud との統合という観点では、前述の SCC Enterprise および Google SecOps に Mandiant の脅威インテリジェンスが標準で組み込まれており、最前線の知見に基づく検知・分析機能が利用できます。 参考 : Security Command Center Enterprise 発表: AI を活用した SecOps とクラウド セキュリティを融合した初のマルチクラウド リスク管理ソリューション 是正的統制 概要 発見的統制によってセキュリティ事象や設定ミスを検知できても、その是正を人手のみに頼っていては対応が追いつかず、ミスや遅延も生じます。 是正的統制 は、検知された不適切な状態を、人手を介さず(あるいは最小限の人手で)自動的に修復し、あるべき状態を維持するための仕組みです。 代表的な適用例としては、本来あるべき構成から逸脱した状態( 設定ドリフト )を自動的に元へ戻す、検知した脅威に対して定型の対応手順を自動実行する、といったものが挙げられます。Google Cloud では、宣言的なリソース管理で構成を維持する Config Controller 、イベントを起点に修復処理を実行する Eventarc + Cloud Run functions / Workflows 、そして脅威対応を自動化する Google SecOps の SOAR 機能 が用意されています。 関連サービス・機能 Config Controller Config Controller とは、 Config Connector (Kubernetes を用いて Google Cloud リソースを宣言的に管理できる Kubernetes アドオン)のマネージドサービスです。リソースの「あるべき状態」を Kubernetes のマニフェストファイルとして定義し、その状態を維持します。 是正的統制の観点で重要なのが、Kubernetes の Reconciliation Loop(調整ループ) の仕組みです。マニフェストで定義した「理想の状態」と「実際の環境」との間に差分(ドリフト)が生じた場合、Config Connector が自動的に理想の状態へ戻します。たとえば、誰かが手動で設定を変更してしまっても、定義した状態へ自動修復されるため、構成の一貫性を保てます。 Config Controller の実体は GKE クラスタであり、以下のコンポーネントがプリインストールされています。これらを組み合わせることで、GitOps による構成管理とガードレールの適用を実現できます。 # コンポーネント 役割 1 Config Connector Kubernetes マニフェストで Google Cloud リソースを宣言的に管理する 2 Config Sync Git リポジトリと連携し、格納されたマニフェストを継続的に同期する(GitOps) 3 Policy Controller ポリシーに違反するリソースの作成を検出・拒否する(ガードレール) 参考 : Config Controller(Config Sync)でGoogle Cloudブループリントを利用してGitOpsなリソース管理を実現する - G-gen Tech Blog Eventarc + Cloud Run functions / Workflows Eventarc とは、サーバーレスかつ標準化されたイベント配信により、Google Cloud 上でイベントドリブンアーキテクチャを容易に構築できるフルマネージドサービスです。これを Cloud Run functions や Workflows と組み合わせることで、「特定の事象が発生したら自動的に修復処理を実行する」という是正フローを構築できます。 是正的統制の典型的な構成は、 Cloud Audit Logs や Cloud Asset Inventory のイベント (リソースの作成・更新・削除など)を Eventarc トリガーで捕捉し、後続の処理を起動するというものです。 例えば、「公開設定にされた Cloud Storage バケットを検知して自動的に非公開へ戻す」「許可されていない構成のリソースが作成されたら自動で削除・通知する」といった処理を、サーバーレスで実装できます。Eventarc で利用できる主なイベントソースとコンシューマは以下のとおりです。 # 区分 主な選択肢 1 イベントソース Cloud Audit Logs イベント(リソースの作成・更新・削除等)、Cloud Storage、Pub/Sub、サードパーティ(Datadog 等) 2 イベントコンシューマ Cloud Run、Cloud Run functions、Workflows 後続処理には、単一の修復処理であれば Cloud Run functions を、複数ステップを順序立てて実行する必要があれば Workflows を利用する、といった使い分けが可能です。なお、証跡管理の章で触れた Cloud Asset Inventory の変更通知(Pub/Sub 連携)を起点とすれば、設定ドリフトの検知から自動修復までを一連のフローとして構築できます。 参考 : Eventarc + Cloud Run で Google Cloud リソースの作成を Slack 通知する - G-gen Tech Blog Google SecOps(SOAR) 発見的統制の章で解説した Google SecOps は、SIEM による脅威検知だけでなく、検知後の対応を自動化・オーケストレーションする SOAR (Security Orchestration, Automation and Response)の機能も備えています。是正的統制の文脈では、この SOAR の側面が中心となります。 SOAR では、検知された脅威の種類に応じた対応手順を プレイブック として定義しておき、インシデント発生時に自動実行します。たとえば「不審なアクティビティを検知したら、該当アカウントの権限を制限し、関係者へ通知し、チケットを起票する」といった一連の対応を、人手を介さずに(あるいは承認を挟みつつ)実行できます。これにより、対応の標準化と初動の高速化が図れます。 経済的統制 概要 クラウドは従量課金制であるため、設定ミスや想定外のトラフィック、あるいは意図的な攻撃によって、利用料金が異常に増加するリスクを常に抱えています。特に、リソースを大量消費させて経済的な損害を与える攻撃は EDoS(Economic Denial of Sustainability) と呼ばれます。 経済的統制 は、こうした想定外のコスト増から組織を保護するための仕組みです。Google Cloud では、予算超過を通知する Cloud Billing 予算アラート 、プロジェクト単位で費用上限を自動適用する Spend Caps 、機械学習による コスト異常検知 、そしてリソース使用量そのものに上限を設ける Quotas(割り当て) を組み合わせて、多層的にコストを保護できます。 関連サービス・機能 Cloud Billing 予算アラート 予算アラート とは、Cloud Billing で予算(budget)としきい値を設定し、指定期間の請求額がしきい値を超えた際に通知を発報する機能です。予期しない請求の発生に早期に気づくための、コスト保護の基本となる仕組みです。 ここで極めて重要な注意点として、 予算アラートはあくまで「通知」であり、支出を自動的に停止するものではない という点が挙げられます。しきい値を超えても、リソースの利用や課金がその時点で止まるわけではありません。支出を実際に抑制したい場合は、Pub/Sub トピックへ連携した自動アクションや、後述の Spend Caps による上限の適用が必要になります。 通知先としては、メール(請求先アカウントのロールベースの宛先、または Cloud Monitoring の通知チャネルで指定したメールアドレス)が利用できます。さらに、プログラムによる後続処理につなげるための通知先として Pub/Sub トピックを指定できます。 参考 : 予算アラートの設定方法 - G-gen Tech Blog Spend Caps Spend Caps とは、2026年4月の Google Cloud Next '26 で発表された、プロジェクト単位で費用の上限を自動的に適用する機能です。Google Cloud の予算(budget)と連携して動作し、管理者が設定した上限に基づいてコストを制御します。2026年6月現在では非公開プレビュー(Private Preview)で、一般提供(GA)はされていない点にご留意ください。 この機能が登場した背景には、AI ワークロード特有のコスト急増リスクがあります。AI は TPU / GPU といった高価な専用ハードウェアを使用するため、制御不能になった単一のトレーニングジョブや最適化されていないモデルが、ごく短時間で予算を使い果たしてしまう可能性があります。従来の費用管理ツールは管理者へアラートを送るのみで上限を強制適用しないため、各社は課金の無効化のような影響の大きい操作を含む独自のガードレールを構築せざるを得ませんでしたが、それを Google Cloud ネイティブな仕組みで解決するのが Spend Caps となります。 対象サービスは、Google AI Studio、Gemini Enterprise Agent Platform(旧称 Vertex AI)、Cloud Run、Cloud Run functions、Google Maps Platform となっており、挙動としては、設定した上限に到達するとアラートを送信し、予算に達すると API トラフィックが一時停止 されますが、課金無効化のようにリソースそのものが削除・停止されるわけではなく、リソースは保持されたまま残ります。トラフィックを再開したい場合は、Spend Caps を停止するだけで済みます。 参考 : AI 時代に向けた次世代の FinOps コスト異常検知(Anomaly Detection) 異常検知(Anomaly Detection) とは、Google Cloud の請求先アカウントに標準で付属する、突発的な課金を検知する機能です。請求先アカウント単位で過去の使用傾向が機械学習により学習され、普段と異なるパターンの課金が発生すると「異常(anomaly)」として検知されます。 予算アラートが「あらかじめ設定したしきい値」を基準とするのに対し、異常検知は「過去の利用傾向からの逸脱」を基準とする点が特徴で、想定外の急激なコスト増を捉えるのに適しています。検知結果はコンソールで確認できるほか、メールや Pub/Sub への通知が可能で、Pub/Sub 連携により後続の自動処理につなげることもできます。なお、異常が検知される対象は6ヶ月間以上の利用実績があるプロジェクトに限られる点には留意が必要です。 参考 : Google Cloud請求先アカウントの異常検知(Anomaly Detection)を解説 - G-gen Tech Blog Quotas(割り当て) 割り当て(Quota) とは、Google Cloud の各種サービスに設定された、リソース使用量や API 呼び出し回数の上限です。本来はサービスの過負荷を防ぎ、意図しない大量のリソース作成を防止するための仕組みで、組織・プロジェクト・ユーザーなど様々な粒度で設定されています。 経済的統制の観点では、割り当てを「利用拡大に応じて緩和するもの」としてだけでなく、 あえて任意の上限値を設定することで突発的な課金を防ぐガードレール として利用できます。 代表的な例として、BigQuery の「1 日あたりのクエリ使用量(Query usage per day)」の割り当てが挙げられます。かつてこの割り当ては課金有効プロジェクトでデフォルト無制限でしたが、2025年9月1日以降、デフォルトで 1 日 200 TiB に設定されるよう変更されました。それでも上限としては大きいため、ワークロードに合わせてより低い値を明示的に設定しておくことで、想定外の高額課金をより確実に防げます。 予算アラートやコスト異常検知が「課金の発生を検知して通知・対応する」事後的なアプローチであるのに対し、割り当ては「リソース消費そのものに上限を設ける」事前的なアプローチであり、両者を組み合わせることでより堅牢なコスト保護が実現できます。 参考 : Google Cloudで割り当て(Quota)を上限緩和する方法 - G-gen Tech Blog 参考 : BigQueryのオンデマンドクエリの利用量にフタをする (上限を設ける) - G-gen Tech Blog 生成 AI 特有のセキュリティ 概要 これまで解説してきたセキュリティ統制の多くは、「人間のユーザー」と「あらかじめ定められた動作をするアプリケーション」を前提としていましたが、生成 AI の利用はこの前提に新たな脅威をもたらします。 具体的には以下の3点です。 自然言語の入力そのものが攻撃の経路になり得ること モデルが確率的に予期しない出力を返し得ること AI エージェントが自律的に判断して他システムを操作し得ること そのため、生成 AI のセキュリティでは、以下のような生成 AI 特有の脅威領域を意識する必要があります。 # 脅威領域 代表的なリスク 1 入出力(プロンプト、レスポンス) ・プロンプトインジェクション、ジェイルブレイク ・機密データの入/出力 ・有害コンテンツの生成 ・悪意のある URL の出力 2 データ ・RAG(グラウンディング。外部データを検索して回答の根拠とする手法)における過剰権限 ・入力データの学習利用 ・データの保存場所(レジデンシー) 3 AI エージェント ・自律的に動作するエージェントの過剰権限 ・エージェントのなりすまし ・外部ツール連携時の認証情報管理 本章では、前提となる基盤の選択、またこれらに対応する生成 AI 特化のサービスとして Model Armor (入出力のスクリーニング)、 Agent Identity (エージェントの認証)、 Agent Gateway 、 Agent Registry 、 AI Protection を中心としたエージェントのガバナンスを解説します。 生成 AI 基盤の選択 Google で生成 AI を利用する主な経路には、Google Cloud に統合された Gemini Enterprise Agent Platform (旧称 Vertex AI)と、Google アカウントだけで手軽に始められる Google AI Studio があり、どちらを選ぶかはそれ自体がセキュリティ・統制上の判断になります。 前者は Google Cloud に統合されているため、IAM によるアクセス制御、VPC Service Controls や Cloud Armor による保護、Cloud Audit Logs による監査、そして本章で解説する Model Armor・Agent Identity・Agent Gateway といった ガバナンス機能を組み合わせて 利用できます。管理者が利用状況を可視化し、問題のある振る舞いを検知した際にサービスアカウントの停止やアクセス権の剥奪を行う、といった統制も可能です。 一方の後者は API キーを発行してすぐにモデルを呼び出せる手軽さが魅力ですが、 組織レベルの統制やアクセス制御機能は備わっていません。 そのため、個人開発やプロトタイピングには適しているものの、企業・官公庁・研究機関などが組織として生成 AI アプリケーションを開発・運用する場合は、 統制機能の整った Gemini Enterprise Agent Platform が推奨されます。本章で扱うセキュリティ機能の多くも、この基盤を前提としています。 参考 : Google AI Studio vs Vertex AI。違いや選び方を解説 - G-gen Tech Blog 関連サービス・機能 Model Armor Model Armor とは、生成 AI・エージェントのプロンプト(入力)とレスポンス(出力)をスクリーニングし、LLM が悪意のあるコンテンツや機密性の高いコンテンツにさらされたり、それらを生成したりするのを防ぐランタイムセキュリティサービスです。 Model Armor が提供する主な検知・フィルタ機能は以下のとおりです。 # フィルタ 説明 1 プロンプトインジェクション・ジェイルブレイク検出 LLM に指示や安全フィルタを無視させようとする入力を特定・ブロックする 2 機密データの保護 Sensitive Data Protection と連携し、PII・財務情報・認証情報等の機密データを入出力の両方で検出する 3 悪意のある URL の検出 入出力に含まれる悪意のあるリンクやフィッシングリンクを検出する 4 有害コンテンツのフィルタリング 露骨な性的表現・危険・ハラスメント・ヘイトスピーチ等を検出し、責任ある AI の原則に沿わせる Model Armor の挙動は テンプレート で定義します。テンプレートには各フィルタと、検知の確信度を表す しきい値 を設定でき、アプリケーションのリスク許容度に応じて適用の強さを調整できます。利用方法としては、API へ直接スクリーニングリクエストを送る方法と、Gemini Enterprise Agent Platform(旧称 Vertex AI)に統合して使う方法があります。Model Armor の検出結果は SCC に送られ、他のセキュリティリスクと併せて確認できます。 参考 : Model Armorを徹底解説! - G-gen Tech Blog Agent Identity Agent Identity とは、Google Cloud 上で動作する AI エージェントに、 SPIFFE (ワークロードに標準化された ID を付与するためのオープン標準)に基づく固有のアイデンティティを付与する仕組みです。これにより、エージェントは MCP サーバー、Google Cloud リソース、外部 API、他のエージェントに対して、自身の権限で安全に認証できます。 従来、エージェントの実行環境にはサービスアカウントを利用するのが一般的でしたが、共有(使いまわし)や権限借用(なりすまし)が可能であること、サービスアカウントキーの漏洩リスクなどの課題がありました。 Agent Identity はこの問題を解決するもので、サービスアカウントとは以下の点で異なります。 項目 サービスアカウント Agent Identity 複数ワークロードでの共有 可能 複数のエージェントで同じサービスアカウントを使い回すこともできてしまう 不可 エージェント単位で ID が発行される 権限借用(impersonation) 可能 別のプリンシパルにサービスアカウントの借用(なりすまし)を許可することもできてしまう 不可 エージェント自身以外は ID を使用できない 長期キーの手動生成 可能 サービスアカウントキーはデフォルトで有効期限がなく、漏洩した場合は無効化しない限り悪用され続けてしまう 不可 トークンのバインド なし アクセストークンを入手した第三者がそのまま使用できてしまう あり トークンが X.509 証明書と紐付き、意図された実行環境以外では使用できない 参考 : Google CloudのAgent Identityを解説 - G-gen Tech Blog Agent Gateway / Agent Registry 前述の Agent Identity が「エージェントが何者か(認証)」を担うのに対し、エージェントが「何にアクセスでき、どのような通信・内容が許されるか」を統制するのが Agent Gateway です。 Agent Gateway は、ユーザーとエージェント、エージェントとツール、エージェント同士といった、 エージェントが関わるすべての通信を保護・管理するネットワーク基盤 です。クライアントからの内向き通信(Client-to-Agent)と、外部サービスへの外向き通信(Agent-to-Anywhere)の双方を仲介し、通過するプロンプトとレスポンスを前述の Model Armor で検査し、危険な内容を除去(サニタイズ)できます。 また、すべての通信のログ・メトリクス(テレメトリ)を Cloud Logging や Cloud Trace へ送信できるため、セキュリティ調査や監査にも活用できます。 Agent Gateway は、通信に対して ポリシー を適用することでアクセス制御を実現します。ポリシーには以下の2種類があります。 # ポリシー 内容 1 IAM 許可ポリシー Identity-Aware Proxy を用いた静的な権限制御。「読み取り専用」「破壊的変更の許可」といった条件で、エージェントが行える操作を制限する 2 セマンティック ガバナンス ポリシー プロンプトや MCP ツール呼び出しの「内容」を実行時に分析し、エージェントの振る舞いがユーザーの意図と組織の制約の両方に適合するよう制御する 特に セマンティック ガバナンス ポリシー は、入力や呼び出しの「内容」そのものを評価して制御する点で、生成 AI 特有の統制といえます。 これらの前提として、エージェント・MCP サーバー・エンドポイントを一元的に登録・管理する統合カタログである Agent Registry があります。 Agent Gateway を利用するにはエージェントを Agent Registry に登録しておく必要があり、Agent Registry によって エージェントやツールが組織内に散在し、どこに何があるか・誰が呼び出せるかを把握できなくなる 、といった管理課題を解消します。 なお、2026年6月現在 Agent Registry がプレビュー、Agent Gateway は非公開プレビューです。 参考 : Gemini Enterprise Agent Platformを徹底解説! - G-gen Tech Blog 参考 : Agent Gateway の概要 AI Protection(Security Command Center) ここまで解説した Model Armor やエージェントのガバナンス機能による検出結果は、発見的統制の章で解説した SCC の AI Protection という機能群に集約され、他のクラウドリスクと同じダッシュボード上で一元的に確認できます。 AI Protection は、組織内の AI 資産(モデル・データセット・アプリケーション、Agent Registry に登録された MCP サーバー等)を自動的に検出・棚卸しし、それらに対するリスクや脅威を管理するための機能です。前述の Model Armor を中核コンポーネントとして取り込みつつ、AI 特有のリスクを可視化します。SCC の Premium または Enterprise ティアで、組織レベルの有効化により利用できます。 個々のサービス(Model Armor 等)が「入口で守る」役割を担うのに対し、AI Protection は「組織全体の AI セキュリティ状態(ポスチャ)を俯瞰する」役割を担うものと整理できます。 参考 : AI Protection overview Google Workspace Google Workspace の生成 AI 機能(Gemini アプリ・NotebookLM 等)のセキュリティについては、以下の記事を参照してください。 blog.g-gen.co.jp 武井 祐介 (記事一覧) クラウドソリューション部クラウドエンジニアリング課。 Google Cloud Partner Top Engineer 2026 選出。 Follow @ggenyutakei
株式会社 G-gen の菊池です。Looker では LookML (Looker Modeling Language)を用いてデータモデルを定義しますが、これらのコードはすべて Git リポジトリで管理されます。当記事では、Git 連携の仕組みや品質管理設定について解説します。 Looker におけるバージョン管理の概要 LookML プロジェクトと Git リポジトリの連携 開発モードと本番環境の分離 IDE 内での Git 操作 Git リポジトリとの接続方法 概要 HTTPS を使用した接続 SSH を使用した接続 ベア Git リポジトリ デフォルトのワークフロー 概要 開発ブランチへの変更のコミット 開発ブランチを本番環境ブランチにマージする Looker 本番環境への本番環境ブランチのデプロイ 品質と安全性を高める設定 概要 LookML バリデーションの必須化 データテストの必須化 プルリクエスト(PR)の統合 高度なデプロイモード Looker におけるバージョン管理の概要 LookML プロジェクトと Git リポジトリの連携 Looker の LookML プロジェクトは、 Git リポジトリと 1 対 1 に紐づけることでバージョン管理を構成します。バージョン管理構成にすることで、複数人での共同開発や変更履歴の追跡、安全な本番環境へのデプロイができます。 リモートリポジトリが準備できていない場合や素早く開発を始めたい場合は、Looker サーバー上にローカルの Git リポジトリを作成して単独でバージョン管理を開始することも可能です。 参考 : Git 接続の設定とテスト 開発モードと本番環境の分離 Looker には Development Mode (開発モード)と Production Mode (本番環境モード)という 2 つの環境が分離して存在します。 Development Mode は開発者が LookML を安全に編集、テストできる個人のサンドボックス環境であり、各ユーザーには他のデベロッパーに影響を与えない独自の開発ブランチ(dev- で始まりデベロッパー名を含むブランチ)が割り当てられます。 対して Production Mode はすべての一般ユーザーがアクセスする共有環境であり、ユーザーはこの環境でデータモデルを探索しダッシュボードを構築します。デフォルトの構成では、本番ブランチ(通常は master または main)の最新コードが本番環境で実行されますが、高度な設定を用いることで、特定のリリースバージョン(コミットやタグ)のコードを実行するよう厳密に管理することも可能です。 開発モードの場合、画面上部に「現在は Development Mode です。」というテキストが表示されたバナーが配置されます。右上にある「Exit Development Mode(Development Mode を終了)」という部分をクリックすると、本番環境モードへ切り替わり、このバナーは消えます。 開発モードから本番環境モードへの切替 本番環境モードから開発モードへ切り替える場合は、画面左上にあるメインメニューをクリックして開き、メニューの下部にある「Development Mode」をオンにします。開発モードと本番環境モードのオン・オフは、キーボードショートカット Mac : Control + Shift + D / Windows : Ctrl + Shift + D でもすばやく切り替えることが可能です。 本番環境モードから開発モードへの切替 LookML を変更する場合は、開発モードで作業する必要があります。LookML のコードを修正すると、「Save Changes」というボタンが表示されます。 LookMLの修正(例:列名の修正) このボタンをクリックすると変更内容が保存され、作業している個人の開発環境に変更が反映されます。 開発モードのダッシュボード 一方で、すべてのユーザーが共有する本番環境モードには、まだこの変更内容は反映されません。 本番環境モードのダッシュボード 個人の開発環境での変更を本番環境モードのユーザーにも見えるようにするためには、保存した変更を Git に「コミット」し、本番ブランチへ「デプロイ」するバージョン管理のステップを踏む必要があります。 参考 : Development Mode and Production Mode(開発モードと本稼働モード) IDE 内での Git 操作 Looker の統合開発環境(IDE)には、Git コマンドを操作するための GUI ボタン(IDE 右上、またはメインナビゲーションメニューの「Git Actions」パネル)が備わっています。開発者は複雑な Git コマンドを直接入力することなく、ボタン操作のみでコミットやリモートからのプル、本番環境へのデプロイといった一連のワークフローを実行できます。 特に便利なのは、この Git ボタンが現在の開発ステータス(ファイルの変更有無や他の開発者による更新状況など)に応じて、次に必要なアクションのみを動的に表示する点です。これにより、開発者は手順に迷うことなく、安全かつスムーズにバージョン管理を行うことができます。 参考 : Using version control and deploying(バージョン管理機能の使用とデプロイ) 参考 : Git コマンドのリファレンス Git リポジトリとの接続方法 概要 新規にプロジェクトを作成する際、まず Git リポジトリの構成設定を行います。 Git リポジトリは、外部の Git プロバイダと連携する「HTTPS を使用した接続」、「SSH を使用した接続」、または外部連携を行わずに Looker サーバー上にローカルリポジトリを作成する「ベア Git リポジトリ」の 3 つの構成オプションのいずれかを選択できます。 HTTPS を使用した接続 HTTPS 接続では、ユーザー名と 個人用アクセストークン(Personal Access Token) を使用して認証を行います。 運用方法として、プロジェクト全体で 1 つの Git アカウントを共有する設定と、Looker の「ユーザー属性」機能を用いてデベロッパーごとに個別の Git アカウントを使用する設定が選択可能です。 なお、単一の Git アカウントを共有する場合でも、Looker は各デベロッパーの Looker ユーザー名を使用してコミットを行うため、誰が変更を加えたかの履歴は正しく追跡されます。 ただし、注意点として Looker は現在、GitHub の きめ細かい個人用アクセス トークン(Fine-grained personal access tokens) をサポートしていません。そのため、GitHub を利用する場合は、必ず 「Tokens (classic)」 のオプションを使用してトークンを作成してください。 参考 : HTTPS を使用した Git への接続 参考 : GitHub - Managing your personal access tokens SSH を使用した接続 SSH 接続では、 Looker が生成する公開鍵を Git プロバイダー側に登録することで認証を行います。手順としては、 Looker 側で SSH 公開鍵を生成してコピーし、 Git プロバイダーのリポジトリ設定画面で「Deploy Key」として登録します。この際、 Looker からリポジトリへ変更をプッシュできるよう、書き込みアクセスを許可(Allow write access)を有効にする必要があります。 参考 : SSH を使用した Git への接続 ベア Git リポジトリ リモートの Git プロバイダーを準備していない場合や、すぐに開発を開始したい場合、 Looker サーバー上にローカルリポジトリを作成する ベア Git リポジトリ 構成も選択できます。 ただし、ベア Git リポジトリではプルリクエストの作成など一部の機能が使用できないため、あくまで一時的な利用にとどめることが推奨されます。最初はベアリポジトリで開始し、後からリモートの Git プロバイダーへ接続し直すことも可能ですが、その場合は「まだ Git 履歴を持たない空のリポジトリ」に接続する必要がある点に注意してください。 参考 : ベア Git リポジトリの構成 デフォルトのワークフロー 概要 Looker の標準的なデプロイフローは、開発モード(個人の開発ブランチ)での作業から、共通のリモートリポジトリを経由して、本番環境へと反映される一連のステップで進行します。 開発ブランチへの変更のコミット 開発モードで LookML の修正が完了したら、LookML の検証(Validate LookML)ボタンをクリックします。 LookML にエラーが見つからなければ、ボタンは「Commit Changes & Push」に変わります。 エラーがあった場合は、LookML の検証欄にエラー内容が表示されます。 LookMLの検証 「Commit Changes & Push」ボタンをクリックすることで、コミットのメッセージを入力する画面が表示されます。 コミットの内容をメッセージ欄に入力して、「Commit」ボタンをクリックすることで、変更を開発ブランチに保存(コミット)します。 この操作により、作業内容に名前を付けて保存し、後から履歴を追えるようになります。 メッセージを入力してコミット プロジェクトの設定によっては、変更をコミットする前に LookML Validator によるエラー修正や、データテストへの合格が必須となる場合があります。 開発ブランチを本番環境ブランチにマージする コミットされた変更は、共有のリモートリポジトリへプッシュされます。デフォルト設定の Looker では、IDE 上の「本番環境にデプロイ(Deploy to Production)」ボタンをクリックすることで、開発ブランチの内容が本番ブランチ(通常は master または main )へマージされます。 本番環境にデプロイ Looker 本番環境への本番環境ブランチのデプロイ IDE での「本番環境にデプロイ」操作を行うと、マージに続いて Looker の本番環境(Production Mode)が自動的に本番ブランチの最新コミットを参照するように更新されます。これにより、エンドユーザーが参照するダッシュボードや Explore に最新の定義が即座に反映されます。 本番モード環境のダッシュボード 品質と安全性を高める設定 概要 「プロジェクト構成(Project Configuration)」ページの設定を変更することで、より厳格なリリース管理を実現できます。これらは、複数人での大規模開発においてコードの品質と環境の安定性を維持するために重要です。 参考 : Configuring project version control settings(プロジェクトのバージョン管理の設定) LookML バリデーションの必須化 LookML Validator によるエラーチェックを、変更をローカルブランチに コミットする前の必須条件 として設定できます。設定により「エラーと警告の両方を修正」または「エラーのみを修正」を必須にすることが可能です。これにより、構文エラーを含んだ不正なコードがプロジェクトの履歴に混入することを未然に防ぐことができます。 データテストの必須化 LookML 内に test パラメータを定義してモデルのロジックを検証するデータテストを作成している場合、本番環境へデプロイする前にこれらのテストに合格することを必須条件に設定できます。なお、新しく作成された LookML プロジェクトでは、このオプションがデフォルトで有効になっています。 プルリクエスト(PR)の統合 Pull Request Required 設定を有効にすると、デベロッパーは Looker IDE 内で直接本番ブランチへマージすることができなくなります。変更を本番環境に反映させるためには、必ず GitHub 等の外部サービス上でプルリクエストを作成し、第三者によるコードレビューを経てマージする必要があります。これにより、開発ガバナンスを大幅に高めることができます。 Looker は「マージコミット」方式のみをサポートしているため、この機能を利用する場合は、Git プロバイダ側で「スカッシュマージ」や「リベースマージ」のオプションを使用不可にしておくことが推奨されます。 参考 : プロジェクトの pull リクエストを統合する 高度なデプロイモード Advanced Deploy Mode(高度なデプロイモード) を有効にすると、常に本番ブランチの最新状態を自動デプロイするデフォルトの動作が解除されます。代わりに、デプロイ権限を持つ担当者が特定のコミット SHA や Git タグ(リリースバージョンなど)を明示的に指定して本番環境へ反映させることが可能です。 この機能により、Git 上でのマージと Looker へのリリース反映タイミングを完全に切り離し、Webhook や API を利用した複雑なリリースパイプラインを構築できます。ただし、このモードを有効にした場合、本番環境への「最初の1回目」のデプロイは、必ず Looker IDE 内の Deployment Manager から手動で実行する必要がある点に注意してください。 参考 : 高度なデプロイモード 菊池 健太 (記事一覧) 事業開発部クラウドサポート課。2024年7月より、G-genに入社。群馬出身のエンジニア。前職でLookerの使用経験はあるが、Google Cloudは未経験なので現在勉強中。
G-gen のバロキです。当記事では、Anthropic の Claude Code と Google Cloud の データサイエンスエージェント という 2 つの AI ツールに、同一のデータセットと指示を与えて比較しました。自動生成されるデータ分析ノートブックに、どのような違いが生まれるかを検証しました。 概要 はじめに データサイエンスエージェントとは Claude Code とは 検証の前提条件 使用したデータセット 投入したプロンプト 評価の観点 生成されたノートブックの全体像 データサイエンスエージェントの特徴 Claude Code の特徴 観点別の比較 コードの量と構造 可視化のスタイル 説明可能性 データクレンジングへの姿勢 コードの再利用性 設計思想の対比 ユースケース別の使い分け データサイエンスエージェントが向いているケース Claude Code が向いているケース 概要 はじめに 「データを渡すと、AI が分析ノートブックを生成してくれる」という体験が、一般的になりつつあります。Google Cloud のデータサイエンスエージェントや、Claude Code をはじめとする大規模言語モデル(Large Language Model、以下、LLM)ベースのエージェントツールは、いずれもデータ分析の自動化を可能にします。 しかし実際に検証してみると、同じデータセットと同じ指示を与えても、ツールによって出力されるノートブックに違いがあるケースがあります。当記事では、両者の成果物を並べて比較し、その差がどこから生まれるのかを読み解きます。 結論を先に述べると、2 つのツールに優劣はなく、想定されている用途やユーザー層が異なります。なお、当記事の内容は、検証を行った2026年5月現在の仕様に基づいています。 データサイエンスエージェントとは データサイエンスエージェント は、Google Cloud の Colab Enterprise に組み込まれた、 Gemini をベースとするデータ分析エージェントです。タスクをサブタスクに分解し、ステップごとに思考プロセスを示しながら処理を進める点が特徴です。BigQuery テーブルや CSV ファイルを入力に、自然言語の指示から動作する Colab ノートブックを生成します。 参考 : データ サイエンス エージェントを使用する - Colab Enterprise 以下の記事も参照してください。 blog.g-gen.co.jp Claude Code とは Claude Code は、Anthropic が提供する、ターミナル上で動作するエージェント型のコーディングツールです。プロンプトを受け取ると、ノートブック全体の構成をあらかじめ設計し、一括で書き下ろすスタイルが特徴です。 参考 : Claude Code overview 検証の前提条件 使用したデータセット 検証には、Kaggle で公開されている「Japanese Universities」データセットを使用しました。1872 年以降の日本の大学情報を網羅したオープンデータです。 参考 : Japanese Universities - Kaggle データセットの主な仕様は以下のとおりです。 項目 仕様 公開者 webdevbadger 内容 1872 年以降の日本の大学情報(所在地、創立年、評判、難易度など) ライセンス Open Data Commons Public Domain Dedication and License(ODC-PDDL) 行数 / 列数 813 校 / 22 列 対象範囲 47 都道府県すべてを網羅 創立年範囲 1872 年 11 月(明治期)〜 2022 年 4 月(近年) 設置主体内訳 Private 626 校 / Public 101 校 / National 86 校 主なカラム code 、 name 、 name_jp 、 type (National / Public / Private)、 address 、 state_jp 、 latitude 、 longitude 、 found (YYYY-MM)、 faculty_count 、 department_count 、 review_rating 、 review_count 、 difficulty_SD 、 difficulty_rank (A〜F) 当データセットは、設置主体や地域の分布に明確な構造を持ち、創立年の時間軸も広いため、探索的データ分析(exploratory data analysis、以下 EDA)の検証素材として適しています。EDA とは、本格的なモデリングに入る前に、データの分布や欠損、変数間の関係を可視化しながら把握する作業です。AI に EDA を依頼し、その出力の質を比較する用途にも向いています。 投入したプロンプト 両者には、以下の 4 つの観点を網羅する EDA を依頼する同一の本文を、いずれも日本語のプロンプトで与えました。 データ品質 : 欠損、重複、異常値、基本特性、数値変数間の関係 地理的分析 : 大学の空間分布と都道府県・地域別の設置主体構成 機関特性 : National / Public / Private を規模と評判の両面から比較 時系列分析 : 創立の経年トレンドと設立時期別の設置主体構成 加えて、最終成果物に「分析から得られた重要な気づきを 5 つ」を含めること、および日本語テキストが正しく表示されることを条件としました。 なお、公平性のため分析を依頼する本文は両者で同一にしていますが、成果物の保存先の指示だけは実行環境に合わせて変えています。Claude Code はローカルのターミナルで動作するため、「成果物を output/ フォルダに保存する」よう明示的に指示しました。一方、データサイエンスエージェントは Colab Enterprise 上でノートブック自体が保存されるため、この指示は与えていません。 データサイエンスエージェントに入力したプロンプト(分析本文は Claude Code と同一) Claude Code のターミナルに入力したプロンプト 評価の観点 生成されたノートブックの品質を、以下の軸で観察しました。 実行性(エラーなく走るか) カバレッジ(プロンプトの要求項目を満たしているか) コード品質(慣用的か、再利用可能か) 可視化の量と質 説明可能性(各ステップの意図が読み取れるか) 構造の見通しの良さ 生成されたノートブックの全体像 データサイエンスエージェントの特徴 データサイエンスエージェントは、タスクをサブタスクに分解し、各ステップの目的を明示してから実行します。出力されたノートブックでは、各コードセルの直前に「 Reasoning : ...」という Markdown セルが配置され、これから何を行うか、なぜその処理が必要なのかが自然言語で解説されます。 主な特徴は以下のとおりです。 各セルが自己完結する(必要なインポートをセル内で都度実行する) 「データの読み込み → 欠損値の確認 → 補完処理 → 可視化」のように段階を明示する 各ステップに Reasoning ブロックを付与する エラーや警告が発生した場合、それを検知して次のセルでリカバリするプロセスが記録される ステップごとの透明性の確保が、データサイエンスエージェントの設計思想の中核と言えます。 データサイエンスエージェントのコードセル上部に表示される Reasoning マークダウン Claude Code の特徴 Claude Code は、ノートブック全体を 1 つの完成品として設計してから書き下ろします。プロンプトを受けると、内部で全体構造をプランニングし、必要なライブラリ、再利用するカラーパレットや定数、セクション構成を最初に決定したうえで、一括でノートブックを出力します。 主な特徴は以下のとおりです。 インポート文とグローバル定数( TYPE_ORDER 、 TYPE_PALETTE など)を冒頭に集約する 同じ可視化スタイルを全セクションで一貫させる セルあたりのコード密度が高く、1 つのセルで複数のグラフを配置する 各セクションの最後に「ポイント」として短い解釈を記述する 観点別の比較 コードの量と構造 出力されたノートブックの構成を数値で示します。 項目 Claude Code データサイエンスエージェント 総セル数 55 41 コードセル 30 16 Markdown セル 25 25 総コード行数 約 353 行 約 286 行 インポートの位置 冒頭に集約 各セルで都度実行 セル数やコード行数の違いは、それぞれの設計思想を反映しています。Claude Code は完成されたレポートとしての密度を重視し、データサイエンスエージェントはステップごとの実行ログとしての読みやすさを重視していると言えます。 可視化のスタイル Claude Code はライブラリ選択の幅が広く、 folium による地図プロット、 seaborn の violinplot 、 pairplot 、 heatmap などを柔軟に使い分けます。1 つの観点に対して多角的にアプローチする構成です。 データサイエンスエージェントは、 plotly express による地図プロットや、 matplotlib と seaborn を組み合わせたシンプルな boxplot 、積み上げ棒グラフが中心です。種類を絞ることで、初学者でもプロセスを追いやすい一貫性を持たせています。 Claude Code が生成した Folium 地図と violinplot/heatmap データサイエンスエージェントが生成した Plotly Express 地図と box plot 説明可能性 ここが 2 つのアプローチで最も大きく分かれるポイントです。 Claude Code が生成するノートブックは、コードは洗練されているものの、「なぜその可視化手法を選んだのか」といった意図はコードから読み解く必要があります。一定以上のデータ分析リテラシーを前提としたレポート構成です。 一方、データサイエンスエージェントでは、各セルの直前に処理の意図が明記されます。例えば欠損値処理のフェーズでは、以下のような Reasoning が出力されます。 Reasoning: Based on the analysis of missing values, I will impute phone with 'Unknown' as it is a categorical identifier. For numerical columns review_rating, review_count, and difficulty_SD, I will use median imputation as it is more robust to outliers. For the categorical column difficulty_rank, I will use mode imputation. データサイエンスエージェントの Reasoning 付き欠損値補完セル Claude Code の可視化中心の欠損値処理セル 「何を、どう処理して、なぜそうするのか」が逐一言語化されるため、データ分析を学習中のメンバーにとって、ノートブック自体が良質なチュートリアル教材となります。 データクレンジングへの姿勢 データクレンジングに対する姿勢も対照的です。 Claude Code は欠損値を可視化して報告するに留め、欠損のまま分析を進めます。EDA としては伝統的な進め方で、欠損のパターン自体に情報があるため、むしろ望ましいという見方もあります。 データサイエンスエージェントは、欠損値を統計的に補完(インピュテーション)します。インピュテーションとは、欠損したセルを平均値や中央値などで埋める処理のことです。 phone は 'Unknown' 、数値カラムは中央値、カテゴリカラムは最頻値で埋める、という戦略を文章で宣言してから実行します。下流のモデリングに繋ぐパイプラインを想定すると、この明示性は実務で有用です。 どちらが正解ということはなく、Claude Code は分析者の判断を読者に委ね、データサイエンスエージェントは判断を逐一表に出す、という思想の違いです。 コードの再利用性 Claude Code はグローバル定数( TYPE_ORDER 、 TYPE_PALETTE )と再利用可能なヘルパー関数( iqr_outliers )を冒頭で定義し、以降のセルがそれを参照する構造になっています。コードベースとして手入れし続ける用途に適しています。 データサイエンスエージェントはセルごとに自己完結しているため、一部のセルだけを別のノートブックにコピーして流用するのが容易です。「特定の処理だけ使い回したい」というユースケースには、データサイエンスエージェントのスタイルが向きます。 設計思想の対比 これまでの検証を踏まえ、両者の設計思想の違いを一覧にまとめます。 観点 Claude Code データサイエンスエージェント 出力の性格 完成形のレポート 実行ログ・チュートリアル プランニング 上位から一括生成 ステップ単位で漸進的に実行 説明可能性 サマリでの論評 各セルに Reasoning を配置 カバレッジ 網羅的かつ深層的 コアとなる観点に集中 エラーハンドリング エラーを起こさない前提のコード エラー時は次セルでリカバリを実行 コードの密度 高い 低い(可読性重視) 再利用性 グローバル定義による一元管理 セルごとの自己完結型 介入の容易さ 低い 高い 想定ユーザー 経験豊富なアナリスト 学習者・ビジネス層・探索的分析 ユースケース別の使い分け データサイエンスエージェントが向いているケース データ分析の学習フェーズ Reasoning が併記されるため、分析者の思考プロセスを追体験する教材として使用できます。 対話的な探索フェーズ 「ここまでの結果を踏まえ、次は別の切り口で検証したい」といった、人間が途中で介入しながら進める探索に適しています。 ビジネス層によるデータ探索 非開発者が自然言語でデータを問い合わせる際、処理がブラックボックス化せず、結果の根拠をステップごとに確認できます。 Colab 環境での完結 Colab 起動を前提とした環境設定コードも含まれるため、ブラウザのみで即座に分析を開始したい場合に最適です。 パイプラインの部分流用 セル自己完結型のため、データクレンジングのセルだけを別ノートブックにコピーするといった部分流用がしやすくなります。 Claude Code が向いているケース 迅速なレポート作成 分析結果を素早くレポートとして共有したいケースで、一括生成が強みを発揮します。可視化のバリエーションが豊富で、レポートとしての完成度が高い特徴があります。 経験豊富なアナリストの叩き台 コードが慣用的で密度が高いため、これをベースに独自のカスタマイズや手動の書き換えを素早く行う用途に適しています。 要求項目の網羅(カバレッジ重視) プロンプトに指定したチェックリスト的な要求に対して、抜け漏れなく一括で対応させたい場合に有利です。 カスタムビジュアライゼーションの使用 folium のクラスタリング地図、scatter matrix、violin plot など、データ分析で慣習的に使われる可視化を幅広く使いたい場合に引き出しが多くなります。 ハサナル・バロキ (記事一覧) クラウドソリューション部 クラウドサポート課。インドネシア北スマトラ州ビンジャイ市出身。 YKK株式会社での金型設計を経て IT 業界へ転身。AI/システムエンジニアとしての経験を積み、現在は G-gen にてクラウドサポートに従事。 趣味は水泳と RAG チャットボット開発(OpenAI・Gemini・Vector Search 等)。好きな食べ物はラーメンと寿司。
G-gen の福井です。当記事では、Google が公開している公式 Agent Skills リポジトリ google/skills について、リポジトリの概要から、収録されているスキルの内容を解説します。 概要 google/skills リポジトリとは 公開背景 ライセンス 使い方 製品別スキル gemini-api alloydb-basics bigquery-basics cloud-run-basics cloud-sql-basics firebase-basics gke-basics Well-Architected Framework 柱別スキル google-cloud-waf-security google-cloud-waf-reliability google-cloud-waf-cost-optimization Recipe スキル google-cloud-recipe-onboarding google-cloud-recipe-auth google-cloud-networking-observability 概要 google/skills リポジトリとは google/skills は、Google が公開している公式の Agent Skills リポジトリです。GitHub 上で公開されており、Google Cloud の各製品やワークロードに関する専門知識を スキル としてパッケージ化したものが収録されています。 これらのスキルを AI エージェントツール(Gemini CLI、Claude Code、Cursor など)に導入することで、Google Cloud に関する正確な知識をもとにタスクを遂行できます。 google/skills が準拠している Agent Skills という規格(仕組み、スキルの構造、使い方など)については、以下の関連記事で解説しています。 blog.g-gen.co.jp 2026年5月現在、リポジトリに収録されているスキルは、以下の 3 つのカテゴリに分類されています。 カテゴリ 内容 製品別スキル Google Cloud の主要な製品(AlloyDB、BigQuery、Cloud Run、Cloud SQL、Firebase、Gemini API、GKE)ごとに、その使用方法やベストプラクティスをまとめたスキルです。 Well-Architected Framework 柱別スキル Google Cloud Well-Architected Framework の各柱に基づいた、アーキテクチャ設計のガイダンスを提供するスキル群です。製品別スキルが特定の製品をどう使うかを教えるのに対し、WAF 柱別スキルはワークロードをどのように設計・評価するかを扱います。 Recipe スキル Google Cloud で頻繁に行われる横断的なタスクを、手順の形でまとめたスキル群です。製品別スキルが特定の製品をどう使うか、Well-Architected Framework 柱別スキルがワークロードをどのように設計・評価するかを扱うのに対し、Recipe スキルは特定のタスクをどの順序で実行するかというレシピ(手順書)の形で、AI エージェントツールにタスクの遂行を支援させるスキルです。 参考 : google/skills - GitHub 参考 : Google Cloud Well-Architected Framework 当記事では、google/skills で公開されているスキルについて概要を紹介します。なお、紹介しているスキルは2026年6月現在、リポジトリで公開されているものです。 公開背景 google/skills リポジトリは、Google Cloud Next '26 のタイミングで Google から公開されました。Google Cloud に関する正確な知識を AI エージェントツールに反映させる手段として、Agent Skills を使うアプローチが Google から正式に提示されました。 Google が公開ブログで強調しているのは、 コンテキスト肥大化(Context Bloat) への対応です。コンテキスト肥大化とは、AI エージェントツールに大量のドキュメントを与えることで、AI エージェントツールの動作が不安定になる現象を指します。Google は、MCP サーバーで全ドキュメントを動的に取得するアプローチに加えて、よく使われる知識やワークフローをあらかじめスキルとしてパッケージ化して配布するという新しい選択肢を提供することを、google/skills の目的としています。 Google は、今後も google/skills リポジトリにスキルを追加していくことを公式ブログで明言しています。 参考 : Level Up Your Agents: Announcing Google's Official Skills Repository ライセンス google/skills リポジトリは、 Apache License 2.0 で公開されています。Apache License 2.0 は、商用利用、改変、再配布、プライベートでの使用が認められているライセンスです。スキルを業務で使用する場合や、スキルをカスタマイズして社内向けに配布する場合も、ライセンス条件に従えば自由に使用できます。 ライセンス条件として、スキルを再配布する場合は、元のライセンス表記と著作権表示を含める必要があります。また、スキルを改変して再配布する場合は、変更を加えた旨を明示する必要があります。 参考 : google/skills - LICENSE 使い方 google/skills のスキルは、Agent Skills の規格に準拠しています。そのため、規格に対応した AI エージェントツール(Gemini CLI、Claude Code、Antigravity、Cursor など)であれば、ベンダーを問わず使用できます。 スキルのインストールには、 npx skills install コマンドを使用します。以下のコマンドを実行することで、リポジトリに収録されたスキルから必要なものを選択してインストールできます。 npx skills install github.com/google/skills 製品別スキル gemini-api 概要 gemini-api は、Agent Platform(旧称 Vertex AI)上で Gemini API を使うための、統合ガイドとして機能するスキルです。 このスキルの特徴は、統合 SDK である Gen AI SDK の使用を強制し、レガシー SDK( google-cloud-aiplatform 、 @google-cloud/vertexai 、 google-generativeai )を明示的に禁止している点です。なお、Gen AI SDK のパッケージ名は言語ごとに異なり、Python の場合は google-genai 、Go の場合は google.golang.org/genai などとなっています。 モデル選定においても、 gemini-3.1-pro-preview (複雑な推論)や gemini-3-flash-preview (高速・バランス型)などの新世代モデルを推奨しています。一方で、 gemini-2.0-* 、 gemini-1.5-* 、 gemini-1.0-* 、 gemini-pro は legacy・deprecated として明示的に禁止しています。 主なユースケース 社内チャットボットやエージェントから Gemini を呼び出す Python、Go、Java、JavaScript、TypeScript、C# のコードの記述 社内文書を要約・分類・抽出するアプリケーションの実装 Live API によるリアルタイム音声・映像対話の実装 Nano Banana 系の画像生成モデルを使った、画像や動画の生成・編集アプリケーションの実装 社内データによる Gemini のファインチューニングコードの記述 大量データに対するバッチ予測の実行 alloydb-basics 概要 alloydb-basics は、AlloyDB for PostgreSQL のクラスタ・インスタンス・バックアップの管理と、AlloyDB 専用 MCP ツールとの連携を扱うスキルです。AlloyDB の主要な特徴である AlloyDB AI についても、SKILL.md 本文で言及されています。なお、AlloyDB AI には、ベクトル検索、ハイブリッド検索、AI 関数、自然言語機能などが含まれます。 このスキルの特徴は、セキュリティに関する指示が明記されている点です。クラスタ作成のサンプル手順では、本番環境向けにパスワード認証ではなく IAM データベース認証の使用を推奨しており、パスワードを使用する場合も Secret Manager 経由での管理を求めています。 また、 description 内で AlloyDB model context protocol(MCP)tools との統合を明示しています。AlloyDB 専用の remote MCP server と Gemini CLI extension の使い方を扱うリファレンスも備えており、Agent Skills と MCP を組み合わせる代表的なスキルとなっています。 主なユースケース gcloud CLI による AlloyDB のクラスタとプライマリインスタンスの作成・管理 Python・Java・Node.js・Go の各クライアントから AlloyDB に接続するコードの記述 AlloyDB remote MCP server と Gemini CLI extension を組み合わせた、AlloyDB 操作の AI エージェントツールからの自動化 Terraform による AlloyDB リソースの Infrastructure as Code としての管理 IAM データベース認証や事前定義ロールを使ったセキュリティ設定 bigquery-basics 概要 bigquery-basics は、BigQuery のデータセット・テーブル・ジョブの管理、SQL クエリ実行、データ取り込み、BigQuery ML や Gemini との統合を扱うスキルです。 このスキルの特徴は、 description 内で BigQuery ML と Gemini との統合による AI ドリブンなインサイト提供を明示している点です。これは、AI と統合された分析プラットフォームとしての BigQuery の位置づけを反映しています。 また、このスキルとは別に、BigQuery AI & ML 専用のスキルも用意されています。この専用スキルは google/adk-python リポジトリで公開されており、AI 関数( generate 、 classify 、 forecast 、 search など)ごとに細かく分かれたリファレンスを備えています。これらのリファレンスは、SKILL.md の Related Skills セクションから参照する構成です。 主なユースケース bq CLI によるデータセットの作成、テーブルの作成・スキーマ管理、クエリ実行などの操作 Python・Java・Node.js・Go の各クライアントライブラリから BigQuery にアクセスするコードの記述 BigQuery remote MCP server と Gemini CLI extension を組み合わせた、BigQuery 操作の AI エージェントツールからの自動化 Terraform による BigQuery のデータセット・テーブル・予約(reservations)の Infrastructure as Code としての管理 IAM ロールと権限の設計、およびデータガバナンスのベストプラクティスに沿った権限設計 別途公開されている BigQuery AI & ML 専用スキルと組み合わせた、AI ドリブンな分析(分類、異常検知、予測、生成系関数など)の実装 cloud-run-basics 概要 cloud-run-basics は、Cloud Run の services、jobs、worker pools という 3 種類のリソースを使い分けて、アプリケーションをデプロイ・管理するスキルです。services は HTTP リクエストに応答するリソース、jobs は手動・スケジュール・イベント駆動でタスクを実行するリソース、worker pools は常時稼働のバックグラウンド処理を行うリソースです。 このスキルの特徴は、コード生成時の必須要件を重要ルールとして強制している点です。具体的には、デプロイされたコードは必ず 0.0.0.0 でリッスンし、注入された $PORT 環境変数を使用することを求めています。 デプロイ失敗時のトラブルシューティングも SKILL.md に組み込まれています。IAM/Permission エラー、Crash on Boot/Healthcheck 失敗、Native Dependency エラーの 3 パターンに対して、ログ取得コマンドや Buildpacks への切り替えといった具体的な対処手順が明記されています。 また、コンテナイメージのソースとしては Artifact Registry の使用が推奨されています。Docker Hub のイメージを使う場合も、1 時間キャッシュ制約を回避するため、Artifact Registry remote repository 経由が推奨されます。 主なユースケース Web アプリや API の HTTP サーバーをコンテナ化した Cloud Run service へのデプロイ バッチ処理や定期実行タスクの Cloud Run job としての実装、および並列タスクでの実行 Kafka・Pub/Sub・RabbitMQ コンシューマなど常時稼働のバックグラウンド処理の Cloud Run worker pool へのデプロイ ソースコードからの直接デプロイ(Buildpacks 自動ビルド、Dockerfile 使用、Preview の --no-build ) Terraform による services、jobs、worker pools、IAM バインディングの Infrastructure as Code としての管理 Cloud Run remote MCP server を使った、Cloud Run 操作の AI エージェントツールからの自動化 cloud-sql-basics 概要 cloud-sql-basics は、Cloud SQL のインスタンス、データベース、ユーザーの管理を扱うスキルです。 このスキルは、MySQL、PostgreSQL、SQL Server の 3 種類のデータベースエンジンを統一的に扱える設計となっています。Quick Start のサンプルには、PostgreSQL 18 が使用されています。 クライアントから Cloud SQL に接続する標準手段としては、Cloud SQL Auth Proxy が Quick Start に組み込まれています。これにより、インスタンス接続名( PROJECT_ID:REGION:INSTANCE_NAME )を経由したセキュアな接続パターンが示されている点が特徴です。 主なユースケース gcloud CLI による Cloud SQL の MySQL・PostgreSQL・SQL Server インスタンスの作成・管理 Python・Java・Node.js・Go の各クライアントライブラリから Cloud SQL に接続するコードの記述 Cloud SQL Auth Proxy を使ったセキュアな接続の構成 Cloud SQL remote MCP server と Gemini CLI extension を組み合わせた、Cloud SQL 操作の AI エージェントツールからの自動化 Terraform によるインスタンス・データベース・ユーザーの Infrastructure as Code としての管理 事前定義 IAM ロール、SSL/TLS 証明書、Auth Proxy を使ったセキュリティ設定 firebase-basics 概要 firebase-basics は、Firebase の製品・サービスを使うプロジェクト、特にモバイル・Web アプリ開発の作業全般を扱うスキルです。 このスキルの特徴は、SKILL.md の冒頭で別リポジトリ firebase/agent-skills のインストールを重要な事前要件として強く要求している点です。具体的には、プランニングモード使用時の事前タスク登録、npm の存在確認、Node.js のインストール案内、 npx -y skills add firebase/agent-skills -y の実行までを、順序立てて指示しています。 これは、outdated patterns(古いパターン)の使用を防ぐことを目的としています。そのため firebase-basics は単独では完結せず、 firebase/agent-skills リポジトリの別スキル群と組み合わせて使う前提の設計となっています。 主なユースケース Firebase CLI( npx -y firebase-tools@latest )を使った Firebase プロジェクトの作成・管理 JavaScript/TypeScript などのクライアントライブラリから Firebase に接続するコードの記述 Firebase MCP server や Terraform などの IaC ツールを使った構成 Firebase のセキュリティ機能の設定 firebase/agent-skills リポジトリの追加スキル群と組み合わせた、Firebase Hosting などの Firebase プロダクトを扱う作業 gke-basics 概要 gke-basics は、Google Kubernetes Engine(GKE)クラスタの設計、作成、構成、運用全般を扱うスキルです。 このスキルは、SKILL.md 内で推奨される Autopilot 構成をデフォルトとして強制しています。これにより、Standard モードではなく Autopilot を推奨する設計指針を、AI エージェントツールに与えます。 また、 description 内で「WHEN:」というキーワードを使い、AI エージェントツールがこのスキルを起動すべき具体的なトリガーキーワードを大量に列挙しています。トリガーキーワードには、 create GKE cluster 、 design GKE networking 、 secure GKE 、 optimize GKE cost 、 GKE inference 、 GKE upgrade などがあります。 リファレンスドキュメントの数も特徴的です。GKE のリファレンスドキュメントは 20 個以上あり、他の製品スキルの 3 倍以上の規模で、GKE の広い側面を網羅しています。なお、他の製品スキルのリファレンスドキュメントは 6 個程度です。さらに SKILL.md 本体には、シナリオ・トリガーキーワード・参照ファイルの対応表が明示されています。これにより、AI エージェントツールが Activation 後の Execution で適切なドキュメントを選択しやすい設計となっています。 主なユースケース Autopilot モードでの GKE クラスタのプロビジョニングと、クラスタ作成時のチェックリストに沿った本番環境のセットアップ VPC ネイティブ、プライベートクラスタ、Gateway API、Ingress などのネットワーク設計 Workload Identity、Secret Manager、RBAC、Binary Authorization を使ったセキュリティハードニングの実装 HPA、VPA、Cluster Autoscaler、Node Auto-Provisioning を使ったオートスケーリング設定 Spot VMs、ComputeClass、Committed Use Discount などを使ったコスト最適化の実装 GPU・TPU ノードプールと vLLM、GIQ などを使った LLM 推論ワークロードのデプロイ Prometheus、Grafana、Cloud Logging を使った可観測性の構築、およびマルチテナント、バッチ/HPC、バックアップ/DR の設計 Well-Architected Framework 柱別スキル google-cloud-waf-security 概要 google-cloud-waf-security は、Google Cloud Well-Architected Framework のセキュリティ柱に基づき、ワークロードのセキュリティ評価と設計推奨を行うスキルです。 このスキルは、製品別スキルと異なり references/ ディレクトリを持たない、設計指針型のスキルです。SKILL.md 本体に、概要、コア原則、関連する Google Cloud 製品、ワークロード評価のための質問、検証チェックリストの 5 セクションが記述されています。 WAF セキュリティ柱には 7 つの原則があり、それぞれに対応する Google Cloud 製品が明示的にマッピングされています。7 つの原則とは、Security by design、Zero trust、Shift-left security、Preemptive cyber defense、Use AI securely and responsibly、Use AI for security、Meet regulatory, compliance, and privacy needs です。 各原則には、それぞれ 10 個程度のワークロード評価のための質問と、検証チェックリストが用意されています。これにより、AI エージェントツールがユーザーのワークロードに対して、評価のための質問を体系的に投げかけられる構造を持つ点が特徴です。 主なユースケース 既存または計画中の Google Cloud ワークロードに対するセキュリティ評価の実施と、改善点の特定 新規プロジェクトの設計初期段階での、Security by Design の原則に沿った要件定義とアーキテクチャ設計 Zero Trust 原則(IAP、VPC Service Controls など)に基づくアクセス制御とネットワーク設計 Shift-left Security の原則に従った、Cloud Build、Binary Authorization、Artifact Registry を使ったセキュア CI/CD パイプラインの構築 Security Command Center、Google Threat Intelligence、Google SecOps を使った脅威検知と対応体制の整備 AI ワークロードのセキュリティ確保(モデル保護、データポイズニング対策、SAIF 準拠) 規制コンプライアンスやプライバシー要件(Assured Workloads、Organization Policy Service など)への対応 google-cloud-waf-reliability 概要 google-cloud-waf-reliability は、Google Cloud Well-Architected Framework の信頼性柱に基づき、ワークロードの信頼性評価と設計推奨を行うスキルです。 このスキルは、セキュリティ柱と同様の 5 セクションで構成された設計指針型のスキルです。信頼性柱には 9 つの原則があり、ユーザー体験に基づく信頼性定義、現実的な SLO 設定、リソース冗長性、水平スケーラビリティ、可観測性、グレースフルデグラデーション、障害復旧テスト、データ損失復旧テスト、ブレームレスなポストモーテムが示されています。 関連する Google Cloud 製品は、Compute、Networking、Storage and databases、Operations、Disaster recovery の 5 カテゴリでマッピングされています。 このスキルの特徴は、 SRE (Site Reliability Engineering)領域の概念が SKILL.md に組み込まれている点です。SLO、エラーバジェット、RTO/RPO、ブレームレス文化などがその例です。これにより、Google が SRE で長年蓄積した知見を、AI エージェントツールから引き出せる構造を持ちます。 主なユースケース 既存または計画中の Google Cloud ワークロードに対する信頼性評価の実施と、改善点の特定 ユーザー体験に基づく SLI/SLO の定義と、エラーバジェットを使った機能リリース速度の管理 単一障害点を排除する冗長構成(マルチゾーン、マルチリージョン)と、ロードバランシング、水平スケーリングの設計 Cloud Monitoring、Cloud Logging、Managed Service for Prometheus を使った可観測性の構築とアラート設計 サーキットブレーカ、リトライ、レート制限などのパターンを使ったグレースフルデグラデーションの実装 カオスエンジニアリングや game days を使った障害復旧テスト、および Backup and DR Service を使ったデータ損失からの復旧テスト(RTO/RPO)の計画 ブレームレスなポストモーテムプロセスの整備と、インシデントからの組織的な学習 google-cloud-waf-cost-optimization 概要 google-cloud-waf-cost-optimization は、Google Cloud Well-Architected Framework のコスト最適化柱に基づき、ワークロードのコスト評価とコスト効率設計の推奨を行うスキルです。 このスキルは、セキュリティ柱・信頼性柱と同様の 5 セクションで構成された設計指針型のスキルです。概要セクションでは、クラウドコストがオンプレミスの CapEx (資本的支出)モデルとは大きく異なる点を明示しています。そのうえで、 OpEx (運営支出)管理と FinOps 文化への移行を前提とした設計指針を提供しています。 コスト最適化柱には 4 つの原則があり、ビジネス価値とのアライメント、コスト意識の文化醸成、リソース利用の最適化、継続的最適化が示されています。これらの原則に対応する Google Cloud 製品は、可視化と監視、自動化と最適化ツール、効率的なインフラ、組織とガバナンスの 4 カテゴリに整理されてマッピングされています。 このスキルの特徴は、検証チェックリストが他の WAF 柱と比べて具体的・定量的である点です。たとえば「100% のリソースに env 、 team 、 app のラベル」「月次でのコミットメント見直し」「アイドルリソースの月次削除」などが挙げられます。これにより、AI エージェントツールがコスト最適化の現状を、実測可能な指標で評価できる構造を持ちます。 主なユースケース 既存または計画中の Google Cloud ワークロードに対するコスト評価の実施と、削減ポイントの特定 クラウド支出のビジネス価値との整合と、IT 投資の優先順位付け BigQuery billing export と Looker Studio を使ったコスト可視化ダッシュボードの構築 Recommender / Active Assist や FinOps hub を使った、アイドルリソース、リサイズ機会、未使用コミットメントなどの自動的な最適化提案の取り込み Spot VMs、Committed Use Discounts(CUD)、Cloud Storage Lifecycle Policies などを使ったコスト削減の実装 Resource Manager(組織・フォルダ・プロジェクト)、Labels、Organization Policy Service を使ったコスト配賦と支出ガバナンスの構築 Cloud Run、Cloud Run functions、GKE Autopilot などのマネージドサービスへの移行による運用コストの削減 Recipe スキル google-cloud-recipe-onboarding 概要 google-cloud-recipe-onboarding は、個人開発者が Google Cloud を初めて使い始めるための、アカウント設定からリソースデプロイまでの一連の手順をまとめたスキルです。 製品別スキルや WAF 柱別スキルと異なり、Recipe 形式の構造を持ちます。具体的には、7 段階の順次実行手順と、4 項目の完了判定ロジックで構成されており、AI エージェントツールが手順を逐次実行しながら、完了状態を検証できる設計となっています。 対象は、エンタープライズ向けではなく個人開発者です。SKILL.md には、個人開発者向けの簡略化された手順であると明記されています。なお、組織のオンボーディングが必要な場合は、SKILL.md 内から別途 Enterprise Setup Guide への参照が案内されます。 さらに SKILL.md の冒頭には、確認質問として 5 個の事前質問が配置されています。事前質問の内容は、Google アカウントの有無、個人と組織のどちらか、IT 管理者かどうか、最初に作りたいリソース、CLI/IDE/Console の選好です。これにより、AI エージェントツールがユーザーの状況を踏まえた手順を選択できる構造を持ちます。 主なユースケース Google Cloud を初めて使う個人開発者による、無料クレジット($300)の有効化からプロジェクト作成、CLI セットアップ、最初のリソースデプロイまでの順次実行 最初のプロジェクトの作成と、Project ID の取得、および請求アカウントとの紐付け gcloud CLI のインストールと、 gcloud init によるローカル環境から Google Cloud を操作できる状態の構築 必要な API(Cloud Run、Compute Engine、Cloud Storage などの API)の gcloud services enable による有効化 用途に応じた Cloud Run、Compute Engine、Cloud Storage からの最初のリソースの選択とデプロイ Validation Logic による、Project 作成、Billing 連携、CLI 認証、Resource 動作の 4 つの確認と、オンボーディング完了の判定 google-cloud-recipe-auth 概要 google-cloud-recipe-auth は、Google Cloud のサービスや API への認証・認可全般を扱うスキルです。人間ユーザー、サービスアイデンティティ、ADC(Application Default Credentials)、外部クラウドからのアクセスまでを網羅しています。 このスキルの特徴は、Service Account Key の使用を強く非推奨している点です。SKILL.md 内では、Service Account Key を危険な JSON ファイルと表現し、ローカルでの使用を強く避けるよう指示しています。代わりに、Service Account Impersonation、リソースへのアタッチ、Workload Identity Federation を全面的に推奨しています。なお、検証チェックリストにも、キーをローカルで使っていないかを確認する項目が含まれます。 SKILL.md の冒頭には、確認質問として 4 個の事前質問が配置されています。事前質問の内容は、認証主体、実行環境、ターゲット、クライアントライブラリ使用の有無です。これにより、AI エージェントツールが状況に応じて適切な認証方式を選択できる構造を持ちます。 さらに、3 つの実用的な Examples も SKILL.md に含まれています。Human-to-Service(ローカル Python)、Service-to-Service(Cloud Run から Cloud SQL)、Custom App(OIDC ID Token)の 3 例であり、AI エージェントツールが具体的な実装パターンを参照しながらコードを生成できる作りとなっています。 主なユースケース ローカル開発での ADC(Application Default Credentials)のセットアップと、クライアントライブラリから Google Cloud にアクセスするコードの記述 Service Account Impersonation を使った、Service Account Key をダウンロードしないセキュアなローカル開発 Compute Engine、Cloud Run、Cloud Functions などのリソースへのカスタム Service Account のアタッチによる、サービス間認証の構成 GKE での Workload Identity Federation for GKE を使った、Kubernetes Pod から Google Cloud API へのキーレスアクセス AWS、Azure、オンプレなど外部クラウドのワークロードからの、Workload Identity Federation を使ったキーレスアクセスの構成 IAP や Identity Platform を使った、エンドユーザー(従業員や顧客)向け認証の Web アプリケーションへの組み込み IAM ロール(事前定義ロールを優先し、必要なら Custom ロール)の設計と付与 OIDC ID Token を使った、別の Cloud Run サービスへのプライベート呼び出しの実装 google-cloud-networking-observability 概要 google-cloud-networking-observability は、Google Cloud のネットワーク問題を、ログ・メトリクス・診断ツールを使って調査・診断するスキルです。 このスキルは、SKILL.md の冒頭に結果優先という基本方針を掲げています。これは、最小限のクエリで直接答えを出し、0 件や null の結果も結論として受け入れて即座に終了するよう、AI エージェントツールに指示するものです。これにより、冗長な調査を抑制する設計となっています。 さらに重要な制約事項として、多数の禁止事項を明示し、効率的な調査を強制している点が特徴です。具体的には、探索的クエリは 2 個までとすること、Tool A と Tool B の結果差を深掘りする「不一致ループ」の禁止、補助スクリプト( .sh 、 .py )の作成禁止、Monitoring API による BigQuery 結果のダブルチェック禁止などが挙げられます。 データソースとしては、Cloud Monitoring MCP、BigQuery MCP、Cloud Logging MCP の使用を最優先としています。特にボリューム分析や Top-N タスクでは、BigQuery 連携データセット( _AllLogs )を一次データソースに指定しています。このように、Agent Skills と MCP の組み合わせを前提とした調査フローを定義しています。 主なユースケース 「接続できない」「通信が遅い」「パケットが落ちる」などのネットワーク問題の、VPC Flow Logs、Firewall Logs、Cloud NAT Logs、Networking Metrics、Connectivity Tests を使った原因特定 VPC Flow Logs を BigQuery 連携データセットでアグリゲーションし、トラフィック量、傾向、top talkers の分析 Firewall Logs からの DENY/ALLOW イベントの抽出による、特定の通信がブロックされている原因のファイアウォールルールの特定 Cloud NAT Logs による NAT 翻訳の監査や、ポート枯渇のトラブルシュート Cloud Firewall Plus や Cloud IDS の Threat Logs からの、SQL インジェクションやマルウェアなどの悪意あるトラフィックパターンの検知 Networking Metrics によるスループット、RTT(レイテンシ)、パケットロスの時系列トレンドや過去の性能の分析 Connectivity Tests による、エンドポイント間のファイアウォールやルーティングの設定ミスの静的解析での特定 福井 達也 (記事一覧) カスタマーサクセス課 エンジニア 2024年2月 G-gen JOIN 元はアプリケーションエンジニア(インフラはAWS)として、PM/PL・上流工程を担当。G-genのGoogle Cloudへの熱量、Google Cloudの魅力を味わいながら日々精進
G-gen の今村です。当記事では、Cloud SQL で提供されているパフォーマンス最適化機能の1つである インデックスアドバイザー について解説します。 概要 インデックスアドバイザーとは 仕組み 料金と要件 料金 対象エディションと要件 有効化の手順 推奨事項の確認 推薦インデックスの確認方法 画面に表示される評価データの内容 Gemini による支援 推奨事項の適用 概要 インデックスアドバイザーとは Cloud SQL の インデックスアドバイザー 機能は、Cloud SQL で実行されたクエリを自動的に分析し、パフォーマンス向上につながる最適なインデックスを提案する機能です。当機能は Cloud SQL の Enterprise Plus エディションでのみ使用できます。 2026年6月現在、Cloud SQL の主要な3つのデータベースエンジン(MySQL、PostgreSQL、SQL Server)のすべてでサポートされています。各データベースエンジンにおける基本的な機能の目的や仕組みに大きな違いはありません。 リレーショナルデータベースの運用において、クエリの実行速度低下を解決するためのインデックス追加は非常に有効な手段です。しかし、どのカラムにどのようなインデックスを定義すべきかの判断には、高度な知識と経験が必要です。インデックスアドバイザーを使用することで、システムが実際のクエリ負荷に基づいて具体的な推奨インデックスを提示するため、データベース管理者の運用負荷を大幅に削減できます。 参考 : インデックス アドバイザーを使用する | Cloud SQL for PostgreSQL Cloud SQL の機能の詳細は、以下の記事を参照してください。 blog.g-gen.co.jp 仕組み インデックスアドバイザーがクエリを分析する際は、具体的な数値や文字列などのリテラルを除外した「正規化クエリ」と呼ばれる共通のパターンで追跡されます。例えば、検索する数値が異なっていても、同じ型のクエリとしてまとめて統計が取られる仕組みです。 このデータを基に、パフォーマンス向上につながる新しいインデックスが自動で識別され、具体的な CREATE INDEX 文として推奨事項に保存されます。生成された推奨事項は、Google Cloud コンソールの Query Insights ダッシュボードや推奨事項画面からいつでも確認できます。 なお当機能が提案するのは、データの検索速度を高めるためのインデックスであり、主キーや外部キーなどのテーブル構成の推奨事項などは生成されません。またリレーショナルデータベースの一般的な仕様として、テーブルにインデックスを追加すると、データ更新時にインデックス更新も同時に行われることで書き込み処理の負荷が増加する点にも留意が必要です。 よって、インデックスアドバイザーによる推奨事項を無条件に採用するのではなく、パフォーマンス影響等を考慮して、適用の可否を判断してください。 料金と要件 料金 インデックスアドバイザー機能自体の使用に追加料金はかかりません。Cloud SQL の Enterprise Plus エディションを利用していれば、無料で使用できます。 対象エディションと要件 インデックスアドバイザーを使用するには、Cloud SQL の Enterprise Plus エディション を使用している必要があります。また、インスタンスで Query Insights 機能が有効化されていることが要件となります。 Query Insights が収集する指標データは、原則として Cloud SQL インスタンスのストレージ領域を占有しません。指標は Cloud Monitoring に保存されるため、インスタンス自体のディスク容量を圧迫しない設計になっています。ただし、収集された指標の転送や API リクエストに伴い、Cloud Monitoring 側の料金が適用される場合がある点に留意してください。 参考 : Cloud SQL のエディションの選択 | Cloud SQL for PostgreSQL Cloud Monitoring の機能の詳細は以下の記事を参照してください。 blog.g-gen.co.jp 有効化の手順 インデックスアドバイザーを有効化する手順は以下の通りです。 Cloud SQL の「インスタンス」ページに移動し、対象のインスタンス名をクリック 概要ページから「編集」をクリック 「構成の編集」をクリック 「インスタンスのカスタマイズ」セクションで「Query Insights」を展開 「Query Insights を有効にする」チェックボックスをオンにする 「インデックスアドバイザーを有効にする」チェックボックスをオンにする 「保存」をクリックして設定を反映 インデックスアドバイザーを有効にするには、インスタンスの再起動が必要です。本番環境で実施する際は、必ずメンテナンス可能な時間帯を計画してください。 参考 : Query Insights を使用してクエリのパフォーマンスを向上させる | Cloud SQL for SQL Server 推奨事項の確認 推薦インデックスの確認方法 推奨インデックスを確認する手順は以下の通りです。 Cloud SQL の「インスタンス」ページに移動 対象のインスタンス名をクリックし、「Query Insights」をクリック 「上位のクエリとタグ」セクションで目的のクエリをクリック 画面に表示される評価データの内容 クエリの詳細画面では、推奨されたインデックスを適用すべきかを総合的に判断するための情報がまとまっています。 まず確認したいのがパフォーマンスへの影響です。推定クエリ速度が「高」「中」「低」の3段階で示されるため、導入によってどれほどの速度向上が見込めるかが一目でわかります。次に、その効果に対してどれほどのリソースが必要になるかを、影響を受けるテーブルと必要な追加ストレージサイズの推定値から見積もります。さらに、そのインデックスがシステム全体のどれほど多くの処理に貢献するかを、影響を受けるクエリの数で評価します。 このように、見込める効果とリソースへの影響を天秤にかけて適用の可否を判断した上で、画面上の「インデックスの作成」をクリックすると、実行すべき具体的な DDL が表示されます。 推奨事項は、自動的にデータベースへ適用されるわけではありません。そのため、ユーザー自身がコンソール画面から CREATE INDEX 文をコピーし、手動で適用作業を行う必要があります。 Gemini による支援 2026年6月現在、Cloud SQL ではインデックスアドバイザーによる自動分析だけでなく、生成 AI モデル Gemini を使用したクエリ作成のアシスタンス機能も提供されています。 Google Cloud コンソールの Cloud SQL Studio などの画面において、自然言語のプロンプトから SQL の生成や、クエリ構造の説明を取得できます。これにより、インデックスアドバイザーが提案した CREATE INDEX などの DDL の意図を深く理解したり、最適化されたクエリの記述を効率化できます。機能の具体的な使用方法や最新の要件については、公式ドキュメントを参照してください。 参考 : Gemini を使用して SQL クエリを作成する | Cloud SQL for PostgreSQL 推奨事項の適用 推奨事項を適用するには、コピーした CREATE INDEX 文を、Cloud SQL インスタンス内のデータベースに対して手動で実行します。実行にあたり、普段運用で使用しているデータベース管理ツール経由で DDL を実行することも、Google Cloud コンソール上で直接 SQL を実行できる Cloud SQL Studio を使用することもできます。 一般的に、インデックスの作成処理は、既存のテーブル内にあるレコードを読み込んだうえで新しくインデックスを構築してディスクに書き込むため、データベースの CPU やディスク I/O などのリソースを大きく消費します。対象テーブルのデータ量によっては処理に長い時間がかかり、本番環境のパフォーマンスに影響を与える可能性がある点に留意してください。 そのため、本番環境へ適用する際は、事前に検証環境で処理時間や影響度を確認し、システムへの負荷を最小限に抑えられるよう、利用者の少ない時間帯に実行を計画してください。 今村 壱生 (記事一覧) クラウドソリューション部 ソリューションアーキテクト課 2026年3月にG-genへ入社。約7年間 Web 広告運用やウェブ解析に携わり、その後は社内 SE として開発業務に従事。広告運用の現場感と技術的な視点、その双方を併せ持つ経験をベースに、現在は Google Cloud のスキルアップに注力。データ活用とクラウド技術を融合させ、お客様のビジネス成長を支えるエンジニアを目指している。 Follow
G-gen の三浦です。当記事では、Google SecOps の AI エージェントである トリアージと調査エージェント (TIN)と、それを Playbook に組み込む エージェントの自動化 (Agentic Automation)を使い、アラートの一次対応を自動化した結果を紹介します。 概要 Google SecOps とは トリアージと調査エージェント(TIN)とは TIN の無償トライアル エージェントの自動化(Agentic Automation)とは 注意点 検証の手順 TIN の有効化 アラートの確認 概要 TIN なし(有効化前のアラート) TIN あり(有効化後のアラート) TIN を組み込んだ Playbook の作成 Playbook の作成 起動条件の設定 AI Agents ステップの追加 条件分岐の設定 Branch のアクション設定 Playbook の動作確認 概要 Google SecOps とは Google Security Operations (以下、Google SecOps)は、Google Cloud のセキュリティ運用プラットフォームです。SIEM、SOAR、脅威インテリジェンス、Gemini を利用した AI による運用支援を一つのプラットフォームで提供します。 詳細は以下の記事をご参照ください。 blog.g-gen.co.jp トリアージと調査エージェント(TIN)とは トリアージと調査エージェント (Triage and Investigation Agent、以下 TIN )は、Google SecOps に組み込まれた AI ベースの調査エージェントです。関連するイベントやユーザー・端末・IP の確認・分析などを自動で行います。 TIN は、アラートを受け取ると主に以下の 3 つを出力します。 出力 内容 判定 アラートが実際の脅威か、誤検知かを分類する 確信度 判定にどれだけ自信があるかを High Confidence (高い確信度)などのラベルで示す アラートと調査結果の要約 判定の根拠と推奨される次のアクションを記述する TIN は、アラート発生後に自動で調査を開始する 自動調査 と、管理者が必要に応じて開始する 手動調査 の両方に対応しています。 参考 : トリアージ エージェントと調査エージェントを使用してアラートを調査する TIN の無償トライアル 2026 年 4 月 1 日〜6 月 30 日の期間、TIN の無償トライアルが提供されています。対象は Google SecOps の Enterprise / Enterprise Plus サブスクリプション、および Google Unified Security です。 トライアル期間中の 1 時間あたりの実行回数の上限は以下のとおりです。 対象サブスクリプション 実行回数の上限(1 時間あたり) 内訳 Enterprise 10 回 自動 5 回、手動 5 回 Enterprise Plus / Google Unified Security 20 回 自動 10 回、手動 10 回 参考 : Google エージェント SOC のトライアルの詳細 参考 : Google Unified Security エージェントの自動化(Agentic Automation)とは エージェントの自動化 (以下、 Agentic Automation )は、Google SecOps の Playbook(アラート対応手順を自動化するワークフロー)に AI Agent を 1 つのステップとして組み込める仕組みです。AI の判定に応じて、後続の対応を分岐・自動化できます。 参考 : エージェントの自動化 参考 : [Playbooks] ページを確認する 当記事では、TIN と Agentic Automation を以下のように組み合わせます。 機能 役割 TIN AI がアラートを一次調査し、判定・確信度・アラートと調査結果の要約を出力する Agentic Automation TIN の調査結果に応じて、後続の対応を自動で振り分ける 注意点 Agentic Automation は、2026 年 5 月現在、 Preview 版 です。当記事で解説する内容は一般提供(GA)の際に変更される可能性がある点に留意してください。 Preview 版のサービスや機能を使う際の注意点は、以下の記事も参考にしてください。 blog.g-gen.co.jp 検証の手順 当記事では、以下の流れで検証を行います。 項番 内容 説明 1 TIN の有効化 Google SecOps コンソールから TIN を有効化します。 2 アラートの確認 同種のアラートが TIN の有効化前と有効化後で管理者にどのように見えるかを確認します。 3 TIN を組み込んだ Playbook の作成 Playbook に TIN を組み込み、誤検知の可能性が高いと判定したケースを自動でクローズする条件分岐を設定します。 4 Playbook の動作確認 アラートを再度発生させ、新規のケースがクローズされることを確認します。 TIN の有効化 Google SecOps の管理画面で Gemini アイコンを選択し、[Gemini Investigations] を有効化します。 TIN の有効化 TIN の実行設定は [Settings] > [SIEM Settings] > [Gemini Investigations] から確認・変更できます。 TIN の設定確認 参考 : トリアージ エージェントと調査エージェントを使用してアラートを調査する アラートの確認 概要 TIN を有効化する前と後で、同じ種類のアラートが管理者にどう見えるかを比較します。 当検証では、Google Workspace の監査ログから検知されたアラート 「Two Factor Authentication Enforcement Removal by a Workspace Admin User」 (Google Workspace 管理者による組織全体の 2 段階認証プロセス強制設定の無効化を示すアラート)を使用します。 TIN なし(有効化前のアラート) TIN が有効化されていない場合のアラート画面です。画面上部の [Run investigation] から手動で TIN の調査を実行することもできます。 アラート(TIN 未使用) TIN あり(有効化後のアラート) TIN が有効化された状態では、アラート発生後に自動で調査が実行され、結果が表示されます。[View investigation] を選択することで、詳細を確認できます。 アラート(TIN 使用) TIN によるアラート調査結果1 TIN によるアラート調査結果2 上記の調査結果から分かることは以下のとおりです。 項目 結果 判定 False Positive(誤検知) 確信度 High Confidence(高) アラート要約 日本国内の Google Workspace 管理者ユーザーによる、組織レベルの 2 段階認証設定の無効化 調査結果の要約 同じユーザーが同じ IP アドレスから、2 段階認証に関する設定変更を短時間で実施していたことが判明 推奨される次のアクション 5 件提示。うち 2 件は TIN が自動で追加調査できる項目、3 件は管理者による確認・対応が必要な項目 調査タイムライン 関連 IP・ユーザーに関するログ検索を自動実行し、時系列を表示 TIN を組み込んだ Playbook の作成 Playbook の作成 [Response] > [Playbooks] > [Create a new Playbook] を選択します。 Playbook の作成1 以下を選択し、[Create] を選択します。 設定項目 値 補足 Type Playbook 単体で実行可能なワークフロー全体(Block は複数の Playbook から呼び出せる再利用可能な処理ブロック) Choose Folder Default Playbook の整理用フォルダー Environment Default Environment 適用先のテナント環境 Playbook の作成2 参考 : [Playbooks] ページを確認する 参考 : ハンドブックのブロックを操作する Playbook の編集画面が開きます。画面上部の [Create Playbook with Gemini] から Gemini を使って作成することもできます。 Playbook の編集画面 参考 : Gemini でハンドブックを作成、編集する 起動条件の設定 左側の [Drag a trigger over here] エリアに、 Triggers から All(すべてのアラート) をドラッグして追加します。Trigger は Playbook の起動条件で、対象アラートを絞り込む役割を持ちます。 Trigger の設定 参考 : ハンドブックでトリガーを使用する 参考 : ハンドブックでアラートタイプ トリガーを使用する AI Agents ステップの追加 右側の [Drag a step over here] エリアに、 AI Agents タブから Triage and Investigation Agent (TIN)をドラッグして追加します。 AI Agent ステップの追加 追加した AI Agent ステップをダブルクリックし、[Settings] へ移動することで設定を確認できます。 設定項目 内容 Action Type Automatic :Playbook 実行時に自動で TIN を起動。 Manual :ケース画面から手動で実行 Retry on failure 実行失敗時に再試行するか If step fails Stop playbook :実行失敗時に以降のステップを停止。 Skip step :実行失敗時はスキップして次のステップへ TIN の設定 参考 : エージェントの自動化 条件分岐の設定 Flow タブから Condition をドラッグして AI Agent ステップの後に配置します。Condition は Branch (条件式に一致した経路)と ELSE (いずれにも一致しなかった経路)で構成されます。 条件分岐の設定 追加した Condition_1 をダブルクリックし、Branch の条件式を設定します。左側のフィールド入力欄を選択し、[Playbook] > [Triage and Investigation Agent_1.JsonResult] > [Builder] を選択します。 Branch の条件設定1 verdict (TIN の判定)を選択し、[Insert] を選択します。 Branch の条件設定2 右側の項目で手動で False Positive と入力すると、1 つ目の条件「Verdict = False Positive」が完成します。続いて + で条件を追加し、同様に Builder を開きます。 Branch の条件設定3 confidence (TIN の確信度)を選択し、[Insert] を選択します。 Branch の条件設定4 右側の項目で手動で High Confidence と入力し、[Save] を選択します。2 つ目の条件「Confidence = High Confidence」が完成します。 Branch の条件設定5 設定後の Playbook は次のように動作します。 段階 条件 動作 起動 すべてのアラート Playbook が起動し、TIN が一次調査を実施 条件一致 Verdict が False Positive かつ Confidence が High Confidence (誤検知の可能性が高い) ケースを自動クローズ 条件不一致 上記以外 Playbook 側では追加処理を行わない(管理者は通常どおりアラート画面で確認) 参考 : ハンドブックでフローを使用する Branch のアクション設定 Actions タブから、条件を満たした際の動作を設定します。当検証では、アラートを含むケース単位でクローズするため、 Close Case を選択し、Branch 側の [Drag a step over here] エリアに配置します。 Close Case の設定1 Siemplify_Close Case_1 をダブルクリックし、以下を設定して [Save] を選択します。 設定項目 値 補足 Reason Not Malicious クローズの理由:悪意なし/誤検知 Root Cause Lab test 根本原因:検証目的のテスト Comment TIN による自動クローズ( False Positive / High Confidence ) クローズ時に記録する任意のコメント Close Case の設定2 参考 : ケースを解決してクローズする これで、TIN が False Positive / High Confidence (誤検知の可能性が高い)と判定した場合に、ケースが自動的にクローズされる Playbook が完成します。最後に、右上の [Save] を選択して Playbook を保存します。 Playbook の保存 Playbook の動作確認 作成した Playbook の動作を検証するため、前述の 2 段階認証の設定変更を再度実施します。発生したアラートに対して TIN の調査が自動的に走り、対象ケースが自動でクローズされていることを確認します。 ケースの確認 Playbook の状況確認1 Playbook の状況確認2 三浦 健斗 (記事一覧) クラウドソリューション部 2023年10月よりG-genにジョイン。元オンプレ中心のネットワークエンジニア。 ネットワーク・セキュリティ・唐揚げ・辛いものが好き。 Google Cloud Partner All Certification Holders 2025 / Google Cloud Partner Top Engineer 2026
G-gen の佐々木です。当記事では、Google Cloud にデプロイした AI エージェントに固有のアイデンティティを付与する Agent Identity の仕組みと、Agent Identity を用いた認証方式について解説します。 概要 Agent Identity とは サービスアカウントとの違い Agent Identity の基本 SPIFFE 形式の識別子 エージェント認証情報 セキュリティとガバナンス 認証方式 サポートされる認証方式 認証マネージャー 認証プロバイダー Agent Identity の設定例 概要 Agent Identity とは Agent Identity は、Google Cloud 上で動作する AI エージェントに SPIFFE 標準に基づく安全なアイデンティティを付与する仕組みです。これにより、エージェントは MCP サーバー、Google Cloud リソース、外部 API、他のエージェントに対して、自身の権限で安全に認証できます。 参考 : Agent Identity overview 参考 : SPIFFE 2026年5月現在、Agent Identity を使用した認証に対応しているエージェント実行基盤は以下の2つです。 Agent Runtime(旧称 Vertex AI Agent Engine) Gemini Enterprise App サービスアカウントとの違い 従来、エージェントの実行環境にはサービスアカウントを利用するのが一般的でしたが、この方式ではサービスアカウントが本来意図しない用途で使用される可能性があります。Agent Identity はこの問題を解決するもので、サービスアカウントとは以下の点で異なります。 項目 サービスアカウント Agent Identity 複数ワークロードでの共有 可能 複数のエージェントで同じサービスアカウントを使い回すこともできてしまう 不可 エージェント単位で ID が発行される 権限借用(impersonation) 可能 別のプリンシパルにサービスアカウントの借用(なりすまし)を許可することもできてしまう 不可 エージェント自身以外は ID を使用できない 長期キーの手動生成 可能 サービスアカウントキーはデフォルトで有効期限がなく、漏洩した場合は無効化しない限り悪用され続けてしまう 不可 トークンのバインド なし アクセストークンを入手した第三者がそのまま使用できてしまう あり トークンが X.509 証明書と紐付き、意図された実行環境以外では使用できない Agent Identity の基本 SPIFFE 形式の識別子 Agent Identity に対応した環境にエージェントをデプロイすると、エージェントに固有の SPIFFE ID が自動で割り当てられます。Agent Identity が付与する ID は SPIFFE ID と呼ばれ、書式は以下のとおりです。 spiffe://<トラストドメイン>/resources/<サービス名>/<リソースパス> IAM ポリシーで SPIFFE ID を参照する際は、プレフィックスとして spiffe:// ではなく principal:// もしくは principalSet:// を使用します。 対象 識別子 単一エージェント(Agent Runtime) principal://agents.global.org-<組織ID>.system.id.goog/resources/aiplatform/projects/<プロジェクト番号>/locations/<ロケーション>/reasoningEngines/<エンジンID> 単一エージェント(Gemini Enterprise) principal://agents.global.org-<組織ID>.system.id.goog/resources/discoveryengine/projects/<プロジェクト番号>/locations/global/collections/default_collection/engines/<アプリID> プロジェクト内の全エージェント principalSet://agents.global.org-<組織ID>.system.id.goog/attribute.platformContainer/aiplatform/projects/<プロジェクト番号> 組織内の全エージェント principalSet://agents.global.org-<組織ID>.system.id.goog/* エージェント認証情報 Agent Identity を有効化したエージェントには、24時間有効な X.509 証明書が自動でプロビジョニングされます。エージェントはこの証明書を使用して Google Cloud アクセストークンを取得します。 デフォルトで Context-Aware Access ポリシーが適用され、DPoP(Demonstrable Proof of Possession)と mTLS の使用が強制されます。これによりアクセストークンが X.509 証明書にバインドされ、エージェントの実行環境以外では使用できない仕組みになっています。 参考 : RFC 9449: OAuth 2.0 Demonstrating Proof-of-Possession (DPoP) セキュリティとガバナンス Agent Identity では、Google Cloud の各種セキュリティ関連サービスとの統合により、認証情報の保護とアクセス制御のための多層的な仕組みが提供されています。 機構 内容 Context-Aware Access デフォルトで Google マネージドのポリシーが適用され、DPoP と mTLS により証明書にバインドされたトークンを保護する(前述) IAM ポリシー Allow ポリシー / Deny ポリシーによる標準的なアクセス制御をエージェントの ID に適用できる プリンシパルアクセス境界ポリシー 他の IAM 権限付与にかかわらず、エージェントがアクセスできるリソースの範囲を制限できる VPC Service Controls(プレビュー) サービス境界の Ingress / Egress ルールでエージェントの ID を条件に指定できる 参考 : Google CloudのIAMにおけるDenyポリシーを解説 - G-gen Tech Blog 参考 : プリンシパルアクセス境界ポリシー(Principal access boundary policies)を解説 - G-gen Tech Blog 参考 : VPC Service Controlsを分かりやすく解説 - G-gen Tech Blog 認証方式 サポートされる認証方式 エージェントが「何に対して」「どの権限で」認証するかによって、選択する方式が変わります。Agent Identity でサポートされる方式は以下のとおりです。 方式 権限タイプ 認証対象 主な用途 クラウドベースの ID エージェント自身 Google Cloud Google Cloud の他サービスへアクセスする 3-legged OAuth(プレビュー) ユーザー委任 外部ツール・サービス ユーザーの同意を得て、その代理で Jira や GitHub などにアクセスする 2-legged OAuth(プレビュー) エージェント自身 外部ツール・サービス ユーザー同意なしにエージェント自身の資格情報で認証する API キー(プレビュー) エージェント自身 外部ツール・サービス API キーで認証する外部サービスにアクセスする HTTP Basic Auth エージェント自身 外部ツール・サービス 非推奨(平文パスワード) 5つの方式はいずれもエージェントに付与された SPIFFE ID を前提としますが、その使われ方が異なります。 Google Cloud へのアクセス(クラウドベースの ID)では、Agent Identity が発行する SPIFFE ID と X.509 証明書そのものが資格情報となり、エージェントの SPIFFE ID に IAM ロールを付与するだけで利用できます。一方、外部ツールへの 3-legged OAuth・2-legged OAuth・API キーの3つの方式では、Agent Identity を起点に、後述する認証マネージャーに保管された外部サービス用の認証情報を取り出して使います。 認証マネージャー Agent Identity 認証マネージャー は、外部サービスへの認証情報(API キー、OAuth クライアント ID / シークレット、エンドユーザー OAuth トークン)を Google マネージドのボールトに保管し、エージェントの実行時に自動で注入する仕組みです。エージェント開発者がコード内に秘匿情報をハードコードしたり、自前で安全に保管したりする必要がなくなります。 ボールトに保管された認証情報はすべてエージェントの SPIFFE ID に帰属する形で管理されるため、どのエージェントがどの認証情報を使用したかを IAM ポリシーと監査ログの両方で追跡できます。 認証プロバイダー 認証プロバイダー は、認証マネージャーが管理する認証情報を登録するためのリソースで、認証先のサービスごとに作成します。 認証マネージャーによってエージェントが外部サービスにアクセスする際の流れは以下のとおりです。 エージェントの SPIFFE ID と認証先のサービスの情報を元に、対応する認証プロバイダーが特定される 認証プロバイダーに紐付く認証情報がボールトから取り出される エージェントに認証情報が注入される エージェントが注入された認証情報を使用して外部サービスにアクセスする 認証プロバイダーは認証方式ごとに以下の3種類があり、いずれもプロジェクト内、ロケーション単位で管理されます。 種類 認証対象の例 ユーザー同意 特徴 3-legged OAuth 認証プロバイダー Jira、GitHub などの外部 SaaS 必須 ユーザーの代理でアクセスする。認証マネージャーが同意画面へのリダイレクトとトークン保管を仲介する 2-legged OAuth 認証プロバイダー ServiceNow、Salesforce など 不要 エージェント自身のアイデンティティでクライアント認証情報を交換する API キー認証プロバイダー Google Maps API など — API キーを Google マネージドのボールトに保管し、コードへのハードコードを避けられる 作成した認証プロバイダーをエージェントから使用するには、エージェントの SPIFFE ID に IAM Connector User( roles/iamconnectors.user )ロールを付与します。 その他、具体的な登録手順やエージェントからの使用方法は、以下の公式ドキュメントを参照してください。 参考 : Authenticate using 3-legged OAuth with auth manager 参考 : Authenticate using 2-legged OAuth with auth manager 参考 : Authenticate using API key with auth manager 参考 : Manage Agent Identity auth providers Agent Identity の設定例 ここでは、最も基本的なクラウドベースの ID で Google Cloud のサービスにアクセスする方式(認証マネージャー / 認証プロバイダーの登録が不要な方式)の例を示します。 Agent Identity を有効化するには、エージェントをデプロイする際に、 config.identity_type として AGENT_IDENTITY を指定します。Agent Runtime の場合は、 client.agent_engines.create() を使用する際に config に以下を含めます。 import vertexai from vertexai import types from vertexai.agent_engines import AdkApp client = vertexai.Client( project= "PROJECT_ID" , location= "LOCATION" , http_options= dict (api_version= "v1beta1" ) ) app = AdkApp(agent=agent) # 新規作成するエージェントで Agent Identity を有効化する remote_app = client.agent_engines.create( agent=app, config={ "identity_type" : types.IdentityType.AGENT_IDENTITY, # Agent Identity を有効化 "requirements" : [ "google-cloud-aiplatform[agent_engines,adk]" ], }, ) 既存のエージェントを更新して Agent Identity を有効化する場合は、 update() を使用します。 # 既存のエージェントで Agent Identity を有効化する remote_app = client.agent_engines.update( name=resource_name, config={ "identity_type" : types.IdentityType.AGENT_IDENTITY, }, ) エージェントには projects/<プロジェクト番号>/locations/<ロケーション>/reasoningEngines/<エンジンID> 形式のリソース名と、これに対応する SPIFFE ID が自動で割り当てられます。 Agent Runtime のエンジン ID は、コンソールから確認できるほか、以下のようなコマンドを使用して確認できます。 # Agent Runtime のエンジン ID を確認する $ curl -X GET \ -H " Authorization: Bearer $( gcloud auth print-access-token ) " \ " https://<ロケーション>-aiplatform.googleapis.com/v1/projects/<プロジェクトID>/locations/<ロケーション>/reasoningEngines " \ | jq -r ' .reasoningEngines[] | select(.displayName == "<エージェントの表示名>") | .name | split("/") | last ' 例として、エージェントから Cloud Run サービスを呼び出すために、対象の Cloud Run サービスに roles/run.invoker ロールを付与するコマンドを以下に示します。エージェントの SPIFFE ID は principal:// プレフィックスで指定します。 # エージェントの SPIFFE ID に Cloud Run の呼び出し権限を付与する $ gcloud run services add-iam-policy-binding < Cloud Run サービス名 > \ --region =< リージョン > \ --member =" principal://agents.global.org-<組織ID>.system.id.goog/resources/aiplatform/projects/<プロジェクト番号>/locations/<ロケーション>/reasoningEngines/<エンジンID> " \ --role =" roles/run.invoker " Agent Identity を有効化したエージェントに権限を付与する 参考 : Authenticate using an agent's own authority 佐々木 駿太 (記事一覧) クラウドソリューション部 クラウドエンジニアリング1課 北海道在住 大学院まで社会心理学を専攻し、AI に興味を持ち IT 業界へ。2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。最近は法律の勉強にも目覚め、2級知的財産管理技能士を取得。 Follow @sasashun0805
G-gen の川村です。Google Workspace の生成 AI ツールである Gemini アプリや NotebookLM を安全に運用するためのセキュリティ設定や、管理者が注意すべき点について解説します。 はじめに 概要 付属の生成 AI ツール 生成 AI ツールの外部共有機能 エンタープライズグレードのデータ保護 機能へのアクセス制御 生成 AI サービスのアクセス制御 サイドパネルのアクセス制御 CAA によるゼロトラスト制御 シャドー IT 対策と端末管理 シークレットウィンドウの使用禁止 ウェブプロキシによる個人アカウントの使用禁止 GCPW のエンドポイント保護 Chrome Enterprise Premium によるブラウザのポリシー強化 データ共有範囲の最適化 Google ドライブの共有設定 DLP でのデータ漏洩防止 IRM でのデータ持ち出し無効化 AI 分類機能 クライアントサイド暗号化の適用 運用・監査・データ保持 会話履歴の削除とデータ保持の管理 Google Vault によるデータ保持と検索 保持ポリシーの適用 データ検索 モニタリング・ログ管理 Gemini レポート Google Workspace with Gemini のログイベント AI コントロールセンター はじめに 概要 Google Workspace では Gemini アプリや NotebookLM などの生成 AI 機能が標準搭載されています。Google Workspace の生成 AI ツールにはエンタープライズグレードのデータ保護機能が標準で適用されていますが、組織のセキュリティポリシーやガバナンス要件に応じて、最適な環境を構築することが重要です。 管理者が意識すべき、セキュリティ対策のポイントは以下の通りです。 機能へのアクセス制御 シャドー IT 対策と端末管理 データ共有範囲の最適化 運用・監査・データ保持 当記事では、Google Workspace で上記のポイントを実現するための管理設定について紹介します。 付属の生成 AI ツール 2026年6月現在、以下のような生成 AI ツールが Google Workspace のコアサービスとして使用できます。今後もアップデートによりコアサービスが追加される可能性があります。 対象サービス 機能 特徴 Gemini アプリ 質問応答、文章生成、アイデア出し Web ブラウザやモバイルアプリからアクセスして使用できる対話型生成 AI サービス NotebookLM 要約、FAQ、メモの生成 アップロードしたドキュメントや PDF などのソース情報を基に回答する生成 AI サービス Google Workspace with Gemini サイドパネルでの生成 AI 補助 Gmail や Google ドライブなどのアプリケーション内で直接使用可能 Google Workspace Studio 生成 AI でのワークフローの作成 プログラミングなしで、自社の業務に合わせた生成 AI 搭載の自動化ワークフローを構築できる環境 Google Vids 動画作成・編集 生成 AI 支援でビジネス向けの動画やプレゼンテーションを容易に作成・編集できるツール 参考 : Google Workspace 利用規約 - Google Workspace 各サービスの基本機能については、以下の記事を参照してください。 blog.g-gen.co.jp 生成 AI ツールの外部共有機能 また、生成 AI によって業務が効率化できる一方、管理者が特に注意すべき 外部共有に関連する機能 が各生成 AI ツールに実装されています。以下の機能一覧を参照し、改めて組織のセキュリティポリシーに沿った設定になっているか見直すことを推奨します。 対象サービス 機能 特徴 Gemini アプリ 会話の共有 チャット内容の 外部公開機能 。組織外へのチャット履歴共有をユーザーに許可する。 Gemini アプリ Gems カスタムプロンプトの共有機能。データは Google ドライブに保存され、既存の 外部共有ポリシーが適用 される。 Google Meet Google AI によるメモの共有 作成した 議事録のデフォルトの共有先 の設定。組織外のゲスト / 組織内のゲスト / 主催者 から選択する。 NotebookLM ノートブックの共有 ソース資料のドライブ権限を問わない組織内共有機能 。ノートブックへのアクセス権のみでソース情報を確認できる。(※1) ※1 : NotebookLM のノートブック自体を外部共有することはできません。 エンタープライズグレードのデータ保護 Google Workspace ユーザーの場合、 エンタープライズグレードのデータ保護 がデフォルトで適用されています。そのため、プロンプトを含むユーザーの入力データが Google の AI モデルの学習に使用されたり、人間のレビュアーによって内容を確認されることは ありません 。 参考 : Generative AI in Google Workspace Privacy Hub | Google Workspace with Gemini | Google Workspace Help ただし、組織内での過剰な共有設定や個人アカウントの利用といったリスクには、管理者が別途対策を講じる必要があります。ここからは、セキュリティ維持のために、管理者として理解すべき機能や設定について解説します。 機能へのアクセス制御 生成 AI サービスのアクセス制御 Google Workspace で生成 AI 機能を有したサービスを使用する場合、 グループ単位や組織部門単位でのサービスへのアクセス制御が可能 です。全社展開でなく、パイロット運用として一部の組織部門から展開する場合などに設定します。 管理コンソールの「生成 AI」メニューから、以下の各サービスの「サービスのステータス」を、グループ、もしくは組織部門単位でオンまたはオフにします。 Gemini アプリ NotebookLM Gemini Enterprise(Google Workspace データへのアクセス制御) 参考 : Turn the Gemini app on or off | Google Workspace with Gemini | Google Workspace Help また、以下の各サービスについては、「アプリ」>「Google Workspace」からステータスを変更できます。 Workspace Studio Google Vids (「ドライブとドキュメントの設定」箇所から可能) サイドパネルのアクセス制御 Enterprise Standard 以上のエディションの場合、Gmail、Google ドライブなどの各アプリケーションで提供される Google Workspace with Gemini (サイドパネル)機能に対するアクセス制御も可能です。「生成 AI」メニューの「Google Workspace with Gemini」の項目から個別にオンまたはオフにできます。 参考 : Manage access to Gemini features in Workspace services | Google Workspace with Gemini | Google Workspace Help CAA によるゼロトラスト制御 Google Workspace の Context-Aware Access を使用すると、IP アドレスや端末の状態に基づいて、Gemini アプリや NotebookLM などの Google Workspace コアアプリへのアクセスを細かく制御できます。 たとえば、社外からの生成 AI の使用を禁止するために「社内 IP アドレス、かつデバイス承認が完了している端末からのアクセスのみ、Gemini アプリの使用を許可する」といった複合条件を設定できます。 blog.g-gen.co.jp シャドー IT 対策と端末管理 シークレットウィンドウの使用禁止 セキュリティポリシーによっては、シークレットウィンドウを無効化することでユーザーのブラウザ環境を常に管理下の状態に保ち、抜け道を使用したデータの持ち出しやシャドー IT の試行を防ぐことができます。 管理コンソールの「デバイス」>「Chrome」>「設定」> 「ユーザーとブラウザの設定」 箇所から適用できます。 参考 : Chrome ブラウザ ポリシーを管理する - 組織の Chrome デバイスを管理する ウェブプロキシによる個人アカウントの使用禁止 個人の Google アカウント( @gmail.com )を使用してコンシューマー向けの無償版 Gemini アプリが使用されてしまうと、データは Google により再学習等に使用されてしまう可能性があります。 ChromeOS で自組織の社内ネットワークのウェブプロキシサーバーを使用している場合、これを防ぐためにウェブプロキシサーバーにおけるドメイン制限をかけることができます。プロキシサーバー側で HTTP ヘッダー( X-GoogApps-Allowed-Domains )を追加し、これを Google 側でチェックすることで、ログイン可能なドメインを自社ドメインに限定でき、個人のアカウントの使用を防ぐことができます。 参考 : 一般ユーザー向けアカウントからのサービス利用を防ぐ | Security & data protection | Google Workspace Help GCPW のエンドポイント保護 Windows 端末を使用している環境では、 Google Credential Provider for Windows (通称、GCPW)を導入することも効果的です。 GCPW により、Windows 端末へのログイン時に Google Workspace アカウントを使用できます。ログインと同時に Google Chrome ブラウザの仕事用プロファイルに自動でログイン状態が引き継がれるため、仕組みとして会社アカウントの使用を徹底できます。 また、Windows ログイン時に Google の 2 段階認証が適用されセキュリティを向上させます。 参考 : Windows 用 Google 認証情報プロバイダをインストールする | Device management | Google Workspace Help Chrome Enterprise Premium によるブラウザのポリシー強化 ユーザーが Chrome ブラウザ上でプロンプトに組織の機密情報をアップロードしたり、コードをペーストしたりする操作自体をブラウザレベルで禁止したい場合は、 Chrome Enterprise Premium が使用できます。 追加ライセンスを購入して Chrome Enterprise Premium を設定することで、特定の Web ページに対するファイルのアップロードやコピー&ペーストのブロックなど、高度な データ漏洩防止ポリシー を Chrome ブラウザに強制できます。 blog.g-gen.co.jp データ共有範囲の最適化 Google ドライブの共有設定 Gemini アプリは、 操作ユーザーがアクセス権を持つ Google ドライブ上のファイルを参照 して回答を生成します。そのため、Google ドライブの権限管理が適切に行われている必要があります。 たとえば、人事部が社員の給与テーブルを「組織全員」に公開した状態で保存していると、本来権限を持つべきでない従業員が Gemini に質問するだけで、その機密情報が回答に含まれてしまうリスクがあります。 これは生成 AI の導入によるリスクではなく、そもそも従業員がアクセスすべきでないファイルにアクセスできる状態であり、Google ドライブの権限管理自体の不備に起因するものです。生成 AI の導入を機に、過剰な共有設定の棚卸しを実施してください。 適切な権限管理を行うには、「共有ドライブ」でのデータ運用が不可欠です。共有ドライブの仕組みや権限整理の詳細については、以下の記事を参照してください。 blog.g-gen.co.jp DLP でのデータ漏洩防止 Data Loss Prevention (以下、DLP)は、Enterprise Standard 以上のエディションで使用でき、クレジットカード番号やマイナンバーなどの機密情報を自動検出し、組織外への情報流出を防ぐ技術です。 blog.g-gen.co.jp DLP ルールは Gemini アプリ使用時にも適用 されます。例えば、DLP ルールでドライブ内の機密ファイルの外部共有を制限している場合、Gemini アプリで生成したコンテンツにもドライブの DLP が適用され、共有がブロックされます。そのため、ユーザーがコンテンツを明示的に共有しない限り、Gemini の使用によりデータが組織外に漏洩することはありません。 参考 : Generative AI in Google Workspace Privacy Hub - How can I prevent sensitive data entered into prompts from being leaked outside my organization? Do Workspace Data Loss Prevention (DLP) capabilities apply to interactions with Gemini? IRM でのデータ持ち出し無効化 Information Rights Management (以下、IRM)とは、Google ドライブ上のデータにおけるダウンロード、コピー、印刷を権限に基づいて無効化する機能です。IRM が適用されたファイルには各生成 AI ツールがアクセスできなくなるため、前述の DLP と組み合わせて IRM を自動適用する手法が有効です。 DLP ポリシーで機密ファイルを検知し、IRM を自動適用することで、Gemini アプリをはじめとする各種生成 AI 機能は、そのファイルをもとにした回答を 生成できなく なります。これにより、意図しない機密情報の参照を根本的に遮断できます。 参考 : ユーザーがファイルをダウンロード、印刷、コピーできないようにする | Security & data protection | Google Workspace Help 参考 : Google Workspace with Gemini におけるエンタープライズ セキュリティの管理 - IRM 制御を適用して Gemini から機密データへのアクセスを制限 参考 : Generative AI in Google Workspace Privacy Hub | Google Workspace with Gemini | Google Workspace Help - Do Workspace Data Loss Prevention (DLP) capabilities apply to interactions with NotebookLM? AI 分類機能 Enterprise Plus では AI を使用したデータ分類機能 が使用できます。 Google ドライブ内のファイルをスキャンして、自動的に機密ファイルにラベルを付与できます。 通常の DLP との違いは、事前定義されたルールでは判断できない曖昧な内容を AI でパターン化して分類できる点です。このラベルをもとに DLP ルールを適用することで、組織でのデータ保護管理が容易になります。 参考 : Label Google Drive files automatically using AI classification | Security & data protection | Google Workspace Help クライアントサイド暗号化の適用 Enterprise Plus 以上のエディションでは、機密データや規制対象データをさらに厳重に保存したい場合に、 クライアントサイド暗号化 の機能を使用できます。 Google Workspace の組織のデータはデフォルトで暗号化されていますが、組織で独自の暗号鍵を使用して暗号化のレイヤを追加できる機能です。 クライアントサイド暗号化されたコンテンツは Google やサードパーティで復号できず、Gemini アプリなどの 生成 AI ツールもアクセスできません 。そのため、センシティブなデータを取り扱う政府機関や大規模な組織への導入に有効です。 参考 : Google Workspace の生成 AI に関するプライバシー ハブ | Google Workspace with Gemini | Google Workspace Help ‐ 自組織内の他の部署に機密情報が漏洩しないようにするために、Google ではどのような手法を採り入れていますか? 運用・監査・データ保持 会話履歴の削除とデータ保持の管理 ユーザーによる会話履歴データの削除可否、データの保持期間はプロダクトの仕様によって異なります。 2026年6月現在、Google Workspace ユーザーの場合、 Gemini アプリではユーザーが個別に会話履歴を削除することはできません 。管理コンソールの「Gemini 会話履歴」をオンに設定した場合、ユーザーの会話履歴が強制的に保存され、オフにするとシステム内で最大 72 時間保持された後に削除されます。 一方、 Google Workspace with Gemini (サイドパネル)での会話履歴は、管理コンソールの 「会話の履歴と削除」設定から ユーザーでの削除操作を許可 できます。 また、 NotebookLM では管理者での制御なしに、チャット履歴やソースとしてアップロードしたファイル・作成したノートブックに対する ユーザーでの削除操作が可能 です。 これらの各生成 AI ツールにおける、データ保持期間や制御可否については以下の表の通りです。 対象サービス データ型 保持期間 管理者 ユーザー Google Workspace with Gemini(サイドパネル) プロンプトと回答 90 日から無制限 ユーザーでの削除可否を制御 組織で許可されている場合、削除可能 Gemini アプリ プロンプトと回答 最大 36 か月 保存有無や自動削除期間を制御 削除不可 NotebookLM プロンプトと回答 - なし 削除可能 ソースデータ / ノートブック 条項第 6 条に準拠 * なし 削除可能 参考 : Cloud Data Processing Addendum | Google Cloud 参考 : Google Workspace での生成 AI のプライバシー ハブ - Gemini データの保持 参考 : Chat in NotebookLM: A powerful, goal-focused AI research partner Google Vault によるデータ保持と検索 保持ポリシーの適用 Gemini アプリのデータ保持については、管理コンソール内の「Gemini 会話履歴」の設定が Google Vault にも適用 されます。保存期間を「3 か月」「18 か月」「36 か月」から選択でき、期間内でのデータ保持・検索ができます。 Google Meet で生成 AI が作成する議事録は、Google Meet の保持ポリシーに準拠します。なお、Google Meet 固有のルールが有効になっていない場合はドライブのルールが適用されます。 参考 : サポートされているサービスとデータタイプ - Google Vault ヘルプ - Vault でサポートされるドライブと Meet のファイル データ検索 Google Vault に「案件」を作成することで、Gemini アプリのプロンプト、回答内容、トピック、日時などの メタデータを検索・監査 できます。ただし、プロンプトに添付されたファイルや生成されたファイル自体の検索には現在対応していません。 案件の作成方法は、以下の記事を参照してください。 blog.g-gen.co.jp モニタリング・ログ管理 Gemini レポート 生成 AI ツールを導入した後は、誰がどのように使っているかを把握するための継続的な監査が重要です。「生成 AI」>「Gemini レポート」から確認できるレポートでは、組織全体の Gemini アプリ使用状況やアクティブユーザー数を可視化 できます。レポート情報はスプレッドシートや CSV でのエクスポートが可能です。 Google Workspace with Gemini のログイベント 「レポート」>「監査と調査」>「Google Workspace with Gemini のログイベント」から、ユーザーが各アプリケーションでのコンテンツの生成や要約を行った際の イベントログを確認 できます。例えば「特定のユーザーが過去1週間にどのような生成 AI 機能を使用したか」といった検索や調査、エクスポートが可能です。 AI コントロールセンター 「生成 AI」>「AI コントロール センター」から確認できる AI コントロール センターでは、組織内の生成 AI 使用に当たって 包括的にレポートや各生成 AI 機能の設定を確認 できます。適切な設定が行えているか、定期的にチェックすることを推奨します。 参考 : Explore the AI control center | Google Workspace with Gemini | Google Workspace Help 川村真理 (記事一覧) クラウドソリューション部 クラウドサポート課 美容業界からITへ転身。Google Workspace 専任サポートから Google Cloud にも興味が湧き日々奮闘中。海外旅行が大好きで11カ国突破、これからも更新予定
G-gen の三浦です。当記事では、Gemini CLI から Antigravity CLI への移行を検証し、移行後に簡単な Web アプリを作成して Cloud Run へデプロイした結果を紹介します。 前提知識 Google Antigravity とは Antigravity CLI とは Gemini CLI の提供終了と Antigravity CLI への移行 概要 Antigravity CLI と Gemini CLI の違い 移行作業の対象 検証手順 移行検証用の設定 概要 Agent Skills MCP サーバー Extensions Antigravity CLI のインストールと初期設定 インストールと認証 その他の初期設定 設定の移行 Extensions の移行 Agent Skills の読み込み確認 MCP サーバーの手動移行 動作確認(開発とデプロイ) 前提知識 Google Antigravity とは Google Antigravity (以下、Antigravity)は、自然言語による指示でコードの生成、修正、実行、検証などを AI エージェントに任せられる開発プラットフォームです。このように、AI エージェントを駆使した開発スタイルは バイブコーディング (vibe coding)とも呼ばれます。 参考 : Welcome to Google Antigravity 参考 : vibe コーディングとは 2026年2月執筆時点の内容ですが、以下の記事で Antigravity を検証していますので参照してください。 blog.g-gen.co.jp Antigravity CLI とは Antigravity CLI は、Antigravity のエージェント機能をターミナルから利用できるコマンドラインツールです。 agy コマンドを通じて自然言語で指示し、コード生成、修正、調査、検証、デプロイなどを進められます。 参考 : Google Antigravity CLI Gemini CLI の提供終了と Antigravity CLI への移行 概要 Google は、個人利用者向けの Gemini CLI を Antigravity CLI へ移行する方針を発表しました。これに伴い、 2026年6月18日 以降、個人向け利用区分で使用している Gemini CLI および Gemini Code Assist の IDE 拡張機能では、リクエストが処理されなくなります。 参考 : An important update: Transitioning Gemini CLI to Antigravity CLI 提供が終了するのは個人向けの利用区分です。組織向けの Gemini Code Assist Standard / Enterprise ライセンスで利用している場合は、引き続き利用できます。 利用区分ごとの影響と対応方針は以下のとおりです。 利用区分 2026年6月18日以降 対応方針 無料(Gemini Code Assist for individuals) 利用不可 Antigravity CLI へ移行 Google AI Pro 利用不可 Antigravity CLI へ移行 Google AI Ultra 利用不可 Antigravity CLI へ移行 Gemini Code Assist Standard / Enterprise 影響なし(継続利用可能) 対応不要 Antigravity CLI と Gemini CLI の違い Antigravity CLI と Gemini CLI は、いずれもターミナル上で AI エージェントに開発作業を依頼できる CLI ツールですが、Antigravity CLI は Antigravity のエージェント基盤を利用しており、Gemini CLI とはコマンド名や一部の設定構成が異なります。 主な違いは以下のとおりです。 項目 Gemini CLI Antigravity CLI 起動コマンド gemini agy 利用モデル Gemini 系モデル Antigravity で提供される複数モデルから選択可能 拡張機能 Extensions plugins MCP サーバー settings.json で設定 mcp_config.json で設定 参考 : Antigravity CLI Features 参考 : Migrating from Gemini CLI 移行作業の対象 移行作業の対象となるのは、主に以下の設定です。 移行対象 移行作業 Antigravity CLI での扱い Agent Skills(グローバル) 不要 ~/.gemini/skills/ の skill はそのまま読み込まれる Agent Skills(ワークスペース) 要 <プロジェクト>/.gemini/skills/ から <プロジェクト>/.agents/skills/ へ手動で移行する Extensions 要 agy plugin import gemini で plugin として移行される MCP サーバー 要 手動で移行する システムプロンプト( GEMINI.md ) 不要 そのまま読み込まれる 参考 : Migrating from Gemini CLI 検証手順 検証手順は以下のとおりです。Gemini CLI から Antigravity CLI へ移行し、移行後の環境で Web アプリケーションを Cloud Run にデプロイします。 項番 内容 説明 1 インストールと初期設定 Antigravity CLI をインストールし、セットアップを実施します。 2 Gemini CLI からの移行 Agent Skills、Extensions、MCP サーバーの移行状況を確認します。 3 Web アプリの作成と Cloud Run へのデプロイ 移行後の環境から、 agy で Web アプリを Cloud Run へデプロイします。 当記事の検証で使用した環境は以下のとおりです。 項目 値 OS Windows 11 Pro 実行環境 WSL2(Ubuntu) 移行元 Gemini CLI バージョン 0.44.1 Antigravity CLI バージョン 1.0.3 移行検証用の設定 概要 Gemini CLI から Antigravity CLI への移行を確認するため、移行元の Gemini CLI に skill、MCP サーバー、Extensions を用意します。これらの設定が Antigravity CLI 側でどのように引き継がれるかを確認します。 Agent Skills Agent Skills は、AI エージェントに専門的な手順や知識を追加するための機能です。skill は配置する場所によって移行作業の要否が変わるため、当検証ではグローバルとワークスペースの両方を用意します。 参考 : Agent Skills グローバル グローバル( ~/.gemini/skills/ )に配置した skill は、Antigravity CLI からもそのまま読み込まれるため、移行作業は不要です。ここでは、Flask で Web アプリの雛形を作成する skill を用意します。 --- name: flask-webapp description: Flask で簡単な Web アプリを作成する手順。Web アプリの雛形を作りたいときに使う。 ---   # Flask Web アプリ作成   1. `requirements.txt` に flask と gunicorn を記載する。 2. `main.py` にルーティングとエンドポイントを定義する。 3. 環境変数 `PORT` を参照してリッスンする(Cloud Run 対応)。 4. ローカルで起動し、ブラウザで表示を確認する。 Gemini CLI に Agent Skills が登録されていることを確認します。 $ gemini skill list   flask-webapp [ Enabled ] Description: Flask で簡単な Web アプリを作成する手順。Web アプリの雛形を作りたいときに使う。 Location: /home/miurak/.gemini/skills/flask-webapp/SKILL.md ワークスペース プロジェクトごとのワークスペース( <プロジェクト>/.gemini/skills/ )に配置した skill は、Antigravity CLI 用のディレクトリ( <プロジェクト>/.agents/skills/ )へ手動で移動する必要があります。ここでは、移行を確認するための skill を用意します。 --- name: hello-workspace description: ワークスペースに配置した移行確認用のサンプル skill。 ---   # ワークスペース skill   1. ワークスペースの移行確認用のサンプルです。 Gemini CLI に Agent Skills が登録されていることを確認します。 $ gemini skill list   ~省略~   hello-workspace [ Enabled ] Description: ワークスペースに配置した移行確認用のサンプル skill。 Location: < プロジェクト > /.gemini/skills/hello-workspace/SKILL.md MCP サーバー MCP サーバー は、AI エージェントに外部サービスやツールを操作するための機能を提供するサーバーです。当検証では、Google が提供している Cloud Run のリモート MCP サーバーを使用します。 参考 : MCP servers with Gemini CLI 参考 : Google Cloud MCP servers overview 参考 : Cloud Run リモート MCP サーバーを使用する Gemini CLI に MCP サーバーが登録されていることを確認します。 $ gemini mcp list   ✓ cloud-run: https://run.googleapis.com/mcp ( http ) - Connected Extensions Extensions は、Gemini CLI に機能を追加するための拡張機能です。当検証では、AI エージェントがライブラリの最新ドキュメントやコード例を参照できるように、 Context7 を利用します。 参考 : Build Gemini CLI extensions 参考 : Context7(Gemini CLI Extensions) Gemini CLI に Extensions が登録されていることを確認します。 $ gemini extensions list   ✓ context7 ( 1 . 0 . 0 ) ~省略~ Antigravity CLI のインストールと初期設定 インストールと認証 公式ドキュメントに従い、Antigravity CLI をインストールします。WSL(Linux)の場合、以下のコマンドでインストールします。 curl -fsSL https://antigravity.google/cli/install.sh | bash   ⠋ Detecting system environment... ✓ Platform detected: linux_amd64 ⠋ Querying release repository... ✓ Latest available version: 1 . 0 . 3 ⠋ Downloading release package... ✓ Download complete and checksum verified. ⠋ Extracting binary from archive... ⠋ Configuring shell environment...   ✅ Antigravity CLI installed successfully at /home/miurak/.local/bin/agy Run ' agy ' to start the CLI 以下のコマンドで Antigravity CLI を実行します。 $ agy 初回起動時には、ログイン方式を選択します。当検証では 1. Google OAuth を選択します。 ログイン方式 紐づけ先 Google OAuth Google アカウント Use a Google Cloud project Google Cloud プロジェクト     ▄▀▀▄ ▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▄▀▀ ▀▀▄ ▄▀▀ ▀▀▄   Welcome to the Antigravity CLI. You are currently not signed in .   Select login method: > 1 . Google OAuth 2 . Use a Google Cloud project   [ Use arrow keys to navigate, Enter to select ]   参考 : Installation & auth 参考 : Getting Started with Antigravity and Gemini Enterprise Agent Platform ブラウザが起動するので、Google アカウントを選択します。 Google アカウントの選択 認証コードが表示されるので、ターミナルに戻ってコードを貼り付け、Enter キーを押します。   If you aren ' t automatically redirected, paste the authorization code below:   ★コードをペーストする★   その他の初期設定 テーマを選択します。当検証では terminal を選択しました。また、同じ画面の下部に Gemini CLI からの移行オプションが表示されていたため、 Import extensions from Gemini CLI を選択し、 Next を選択します。   Welcome to Antigravity CLI!   Choose your color scheme: ╭─────────────────────────────────────────────────────────────╮ │ > you: add a greeting function │ * terminal │ │ light │ Here ' s the change: │ solarized light │ │ colorblind-friendly light │ 3 import "fmt" │ dark │ 4 │ solarized dark │ 5 - func main() { │ colorblind-friendly dark │ 5 + func greet(name string) { │ tokyo night │ 6 + fmt.Printf("Hello, %s!\n", name) │ │ 7 } │ │ │ │ ▾ Thought Process │ │ I need to add a greeting function. I ' ll use fmt.Printf. │ │ ⚙ tool: write_file main.go │ │ ◉ task: Implementing greeting │ │ ✗ error: compilation failed │ │ ⚠ warning: deprecation warning │ │ → link: file:///path/to/main.go │ │ ★ accent: highlighted text │ │ · dim: press Enter to continue │ ╰─────────────────────────────────────────────────────────────╯   Migration options:   [ x ] Import extensions from Gemini CLI ( 1 found: context7 )   > Next   ↑/↓ Navigate · enter Confirm   次に、利用規約とデータ利用に関する確認画面が表示されます。Interactions data は Antigravity CLI とのやり取りに関するデータです。当検証では、収集・利用に同意するチェックボックスが選択されていたため、チェックを外して Done を選択しました。   Terms of Service & Data Use   AI coding agents are known to have certain security risks, including autonomous code execution, data exfiltration, prompt injection and supply chain risks. Ensure that you monitor and verify all actions taken by the agent.   -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   [ ] Yes, I agree to help improve Antigravity CLI by allowing Google to collect and use my Interactions data, subject to the Google Antigravity CLI Terms of Service and Google Privacy Policy. I understand I can choose to opt out later whenever I want via my settings.   Links: - Terms of Service: https://antigravity.google/terms - Privacy Policy: https://policies.google.com/privacy   [ Previous ] > Done     ↑/↓ Navigate · enter Confirm     現在の作業フォルダを信頼するかどうかの確認画面が表示されるので、 Yes, I trust this folder を選択します。 Accessing workspace:   /home/miurak/work/develop/blog   Do you trust the contents of this project?   Antigravity CLI requires permission to read , edit, and execute files here.   > Yes, I trust this folder No, exit   ↑/↓ Navigate · enter Confirm   初期設定は以上です。 設定の移行 Extensions の移行 インストール時に Import extensions from Gemini CLI を選択しましたが、当検証環境ではインストール直後に agy plugin list で確認したところ、import 済みの plugin は1件も表示されませんでした(2026年5月現在の検証状況)。 $ agy plugin list No imported plugins. そのため、明示的に以下のコマンドを実行し、Gemini CLI の Extensions を Antigravity CLI の plugin へ移行しました。 $ agy plugin import gemini [ ok ] context7 ✔ skills : 3 processed - agents : skipped ( not found ) - commands : skipped ( not found ) ✔ mcpServers : 1 processed - hooks : skipped ( not found )   Staged to /home/miurak/.gemini/config   以下のコマンドで移行されていることを確認します。 $ agy plugin list { " imports " : [ { " name " : " context7 " , " source " : " gemini-cli " , " importedAt " : " 2026-05-30T03:02:51Z " , " components " : [ " skills " , " mcpServers " ] } ] } ここで表示されている skills および mcpServers は、Context7 plugin に同梱されている設定です。事前準備した移行検証用の skill や MCP サーバーとは別物です。 参考 : Migrating from Gemini CLI Agent Skills の読み込み確認 Antigravity CLI を起動し、 /skills コマンドで移行検証用の skill が表示されることを確認します。 グローバル(移行不要) グローバルに配置した flask-webapp は、移動なしで Shared skills に表示されました。 /skills   Skills 4 skills   Create new skills Workspace: ~/work/develop/blog/.agents/skills/ { skill_name } /SKILL.md Global: ~/.gemini/antigravity-cli/skills/ { skill_name } /SKILL.md Shared: ~/.gemini/skills/ { skill_name } /SKILL.md   Shared skills · From ~/.gemini/skills flask-webapp: Flask で簡単な Web アプリを作成する手順。Web アプリの雛形を作りたいときに使う。   /home/miurak/.gemini/antigravity-cli/plugins/context7/skills · From ~/.gemini/antigravity-cli/skills.json   ~省略~   ワークスペース(手動移行) ワークスペースの hello-workspace は、移動前のためまだ表示されていません。Gemini CLI のディレクトリ( <プロジェクト>/.gemini/skills/ )から Antigravity CLI 用のディレクトリ( <プロジェクト>/.agents/skills/ )へ移動します。 $ mkdir -p .agents/skills $ mv .gemini/skills/hello-workspace .agents/skills/hello-workspace 再度 /skills コマンドで確認すると、 hello-workspace が Workspace skills に表示されました。 /skills   Skills 5 skills   Create new skills Workspace: ~/work/develop/blog/.agents/skills/ { skill_name } /SKILL.md Global: ~/.gemini/antigravity-cli/skills/ { skill_name } /SKILL.md Shared: ~/.gemini/skills/ { skill_name } /SKILL.md   Workspace skills · Workspace config hello-workspace: ワークスペースに配置した移行確認用のサンプル skill。   Shared skills · From ~/.gemini/skills flask-webapp: Flask で簡単な Web アプリを作成する手順。Web アプリの雛形を作りたいときに使う。   /home/miurak/.gemini/antigravity-cli/plugins/context7/skills · From ~/.gemini/antigravity-cli/skills.json   ~省略~   MCP サーバーの手動移行 Gemini CLI と Antigravity CLI では MCP の設定形式が異なるため、Cloud Run のリモート MCP サーバーは Antigravity CLI の MCP 一覧に表示されませんでした。そのため、手動で移行します。 /mcp   MCP Servers   Plugins ( ~/.gemini/antigravity-cli/plugins ) > ✓ context7 Tools: resolve-library-id, query-docs   移行元の Gemini CLI 側( ~/.gemini/settings.json )の記述は以下のとおりです。 { " mcpServers ": { " cloud-run ": { " httpUrl ": " https://run.googleapis.com/mcp ", " headers ": { " Authorization ": " Bearer ${ACCESS_TOKEN} " } } } } Antigravity CLI 側の MCP 設定ファイル(当検証環境では ~/.gemini/config/mcp_config.json )に、以下の内容を配置します。Gemini CLI の httpUrl は、Antigravity CLI では serverUrl に変更します。 { " mcpServers ": { " cloud-run ": { " serverUrl ": " https://run.googleapis.com/mcp ", " headers ": { " Authorization ": " Bearer ${ACCESS_TOKEN} " } } } } Antigravity CLI を起動し、 /mcp コマンドで Cloud Run MCP サーバーが認識されていることを確認します。 /mcp   MCP Servers   Plugins ( ~/.gemini/antigravity-cli/plugins ) > ✓ cloud-run Tools: get_service, list_services, deploy_service_from_image, deploy_service_from_archive, deploy_service_from_file_contents ✓ context7 Tools: resolve-library-id, query-docs 参考 : Migrating from Gemini CLI 動作確認(開発とデプロイ) Antigravity CLI を起動し、以下のプロンプトで Web アプリの作成と Cloud Run へのデプロイを依頼します。 現在時刻を表示する簡単な Flask の Web アプリを作成し、Cloud Run にデプロイして公開 URL を教えてください。 現在時刻(日本時間: JST)を表示する Flask の Web アプリケーションを作成し、Google Cloud Run にデプロイしました。   公開 URL: https://time-app-XXXXXX.asia-northeast1.run.app   アプリケーションの概要: - JST の現在時刻を表示 - ブラウザ上で 1 秒ごとに時刻を更新 - Cloud Run の `PORT` 環境変数に対応 表示された公開 URL へアクセスし、Web ページが表示されることを確認します。 Web ページの確認 三浦 健斗 (記事一覧) クラウドソリューション部 2023年10月よりG-genにジョイン。元オンプレ中心のネットワークエンジニア。 ネットワーク・セキュリティ・唐揚げ・辛いものが好き。 Google Cloud Partner All Certification Holders 2025 / Google Cloud Partner Top Engineer 2026
G-gen の杉村です。2026年5月に発表された、Google Cloud や Google Workspace のイチオシアップデートをまとめてご紹介します。記載は全て、記事公開当時のものですのでご留意ください。 はじめに Google I/O 2026 が開催 Google Cloud のアップデート SCC で Compliance Manager がプロジェクト単位で有効化可能に Agent Search で agentic retrieval が Allowlist 付き一般公開 BigQuery の reservation groups が一般公開(GA) Google Cloud で Certificate Manager (2nd gen) が Preview 公開 NotebookLM Enterprise でスライド作成/インフォグラフィックが使用可能に 新機能 Skill Registry が登場(Preview) 新機能 AI Content Detection API が登場(Private Preview) 新機能 Managed Agents API が登場(Preview) Gemini 3.5 Flash が登場(GA) AI 統合型開発ツール「Antigravity」が一新 Antigravity 2.0 が Google Cloud 認証に対応 BigQuery の Python UDF(ユーザー定義関数)が Preveiew → 一般公開(GA) Security Command Center (Premium) で Artifact guard が Preview 公開 Security Command Center の Enterprise ティアが提供終了へ Knowledge Catalog の Data products 機能が一般公開(GA) Gemini Deep Research Agent が Preview 公開 Gemini Enterprise app で Slack データストアが一般公開(GA) Nano Banana 2 と Nano Banana Pro が一般公開(GA) gemini-2.5-flash、gemini-3-flash-preview 等が新規利用の受付停止 Google Workspace のアップデート Google ドキュメントの Gemini でカスタムインストラクションを設定可能に Gemini アプリで会話結果から各種ファイルを直接生成可能に Google Workspace の公式リモート MCP サーバーが Public Preview 公開 Google Workspace Studio の Google Meet 関連が強化 Gmail の Help me write(文章作成補助)機能が強化 Google Workspace Studio で Ask NotebookLM が使えるようになった Google Chat のメッセージ推敲が日本語を含む多言語に対応 NotebookLM で Google ドライブとの自動同期が可能に はじめに 当記事では、毎月の Google Cloud(旧称 GCP)や Google Workspace(旧称 GSuite)のアップデートのうち、特に重要なものをまとめます。 また当記事は、Google Cloud に関するある程度の知識を前提に記載されています。前提知識を得るには、ぜひ以下の記事もご参照ください。 blog.g-gen.co.jp リンク先の公式ガイドは、英語版で表示しないと最新情報が反映されていない場合がありますためご注意ください。 Google I/O 2026 が開催 100 things we announced at I/O 2026 (2026-05-19 〜 2026-05-20) Google の開発者向け年次カンファレンス「Google I/O」が開催。以下のような発表がされた。 Gemini 3.5 Flash : Gemini 3.5 ファミリーが発表。Flash モデルを先行投入(Preview ではなく一般公開) Gemini Omni : 動画生成モデル。編集も可能で動画版 Nano Banana といえる Gemini Spark : バックグラウンド動作する AI エージェントサービス。まず米国の Google AI Ultra サブスクリプション 登録者向けに提供 Google Antigravity : 機能が一新され Antigravity 2.0 となった。Antigravity CLI も発表 Google Cloud のアップデート SCC で Compliance Manager がプロジェクト単位で有効化可能に Enable Compliance Manager (2026-05-11) Security Command Center で Compliance Manager がプロジェクト単位で有効化可能になった。 Compliance Manager は CIS や ISO 27001 といったセキュリティ標準への適合性をチェックできる機能。これまで組織レベルでしか使用できなかった。 Agent Search で agentic retrieval が Allowlist 付き一般公開 Stream answers using agentic retrieval (2026-05-13) Agent Search(旧 Vertex AI Search)で agentic retrieval(streamAnswer メソッド)が Allowlist 付き一般公開。 エージェンティックに複数のデータストアに対して検索。回答はストリーミングで取得。ソースコードを開発することなく、容易に検索エージェントを構築できるのが利点。 BigQuery の reservation groups が一般公開(GA) Prioritize idle slots with reservation groups (2026-05-18) BigQuery の reservation groups が一般公開(GA)。 Idol slot が生まれたときに、他の reservation に貸し出す前に、まずは同一グループ内の reservation へ優先的に割り当てる。より緻密なスロット制御が可能になった。 Google Cloud で Certificate Manager (2nd gen) が Preview 公開 Certificate Manager (2nd gen) overview (2026-05-19) Google Cloud で Certificate Manager (2nd gen) が Preview 公開。 SSL/TLS 証明書の管理サービスの次世代版。ロードバランサー向けだった1st gen に比べてGKE、Compute Engine、ハイブリッド環境への対応が強化。有効期限の一覧表示ビューなども提供。 NotebookLM Enterprise でスライド作成/インフォグラフィックが使用可能に Gemini Enterprise release notes ‐ May 19, 2026 (2026-05-19) NotebookLM Enterprise(Gemini Enterprise appに付属)でスライド作成とインフォグラフィック機能が使用可能になった(GA)。 Google Workspace 版や個人版 NotebookLM との差異が1つなくなり、用途が広くなった。 新機能 Skill Registry が登場(Preview) Skill Registry overview (2026-05-19) Gemini Enterprise Agent Platform の一部として、新機能 Skill Registry が登場(Preview)。 Agent Skills 用のレポジトリ。Skill を zip して base64 エンコードしてアップロードできる。組織内で Skills を効果的に共有し、車輪の再開発を防ぐことができる。 新機能 AI Content Detection API が登場(Private Preview) Detect AI-generated images (2026-05-19) Gemini Enterprise Agent Platform の一部として、新機能 AI Content Detection API が登場。 Private Preview なので要申請。AI で生成された画像を検知できる API。形式は JPEG、PNG、WebP に対応。 あくまで推定を提供するものなので注意が必要。 新機能 Managed Agents API が登場(Preview) Managed Agents API on Agent Platform overview (2026-05-19) Gemini Enterprise Agent Platform の一部として、新機能 Managed Agents API が登場(Preview)。 エージェントをクラウドのサンドボックス内で実行。システムインストラクション、ツール、コード実行などをパッケージして保存し、いつでも呼び出せる。 ドキュメントに以下が明記されている(機械翻訳)。 (略)現在様々な段階の社内テストおよびレビューを受けています。そのため、これらの製品で機密情報、秘密情報、またはその他の機密データを使用しないでください。これらの製品は、限定的なテストおよび評価のためにのみお客様に提供されており、商用または本番環境での使用はできません。 Gemini 3.5 Flash が登場(GA) Gemini 3.5:行動を起こす最先端の知能 (2026-05-19) Gemini 3.5 Flash が登場(GA)。3.5 Pro も来月提供予定。 Gemini アプリや Gemini Enterprise app のほか、Agent Platform(旧 Vertex AI)や Google AI Studio から API 経由で利用可能。 Flash モデルながら 3.1 Pro を性能で凌駕するとされている。 Gemini 3.5 Flash 料金に注意が必要。Gemini 3 Flash Preview よりもトークンあたりの単価が高額になっている。 参考 : Cost of building and deploying AI models in Agent Platform AI 統合型開発ツール「Antigravity」が一新 エージェントが主導する未来の構築:Google I/O 2026 デベロッパー向けハイライト (2026-05-20) Google の AI 統合型開発ツール Antigravity が一新し、Antigravity 2.0 となった。 従来の Antigravity は IDE(エディタを含む統合開発環境)だったが、Antigravity 2.0 は Agent Manager 機能に専念したデスクトップアプリ。複数のエージェントを動作させるためのオーケストレーターとして動作する。Antigravity 2.0 は、他の IDE などと組み合わせて使われる想定。 旧来のようなエディタ画面を持つ IDE は、Antigravity IDE として提供され続ける。Antigravity IDE は、Agent Manager を搭載していない。 また、Antigravity CLI が提供開始され、Gemini CLI は廃止の方向になる。個人アカウントでは2026年6月18日には Gemini CLI が使えなくなる。Google Workspace の Gemini Code Assist では引き続き使える(EoS 明記なし)。 Antigravity 2.0 が Google Cloud 認証に対応 Google Antigravity in Gemini Enterprise (2026-05-20) Google の AI 統合型開発ツール「Antigravity 2.0」が Google Cloud 認証に対応。Google Cloud 利用規約が適用され、入出力データは再トレーニングに使用されない。 Gemini Enterprise Agent Platform(旧 Vertex AI)経由で LLM を呼び出す。LLM は従量課金。 今後も統制関係機能が追加予定。 BigQuery の Python UDF(ユーザー定義関数)が Preveiew → 一般公開(GA) Work with user-defined functions in Python (2026-05-20) BigQuery の Python UDF(ユーザー定義関数)が Preveiew → 一般公開(GA)。 これまでは SQL 版と JavaScript 版が GA だったが、Python 版も GA になった。PyPI や Cloud Storage 上のパッケージも使用可能。 Security Command Center (Premium) で Artifact guard が Preview 公開 Artifact guard overview (2026-05-21) Security Command Center Premium および Enterprise ティアで新機能 Artifact guard が Preview 公開。 ビルド中にポリシーに準拠しているかどうかをスキャン。脆弱性のあるパッケージがデプロイされるのを未然に防止。Cloud Build、GitHub Actions、Jenkins、GKE などに対応。 Security Command Center の Enterprise ティアが提供終了へ Security Command Center release notes ‐ May 21, 2026 (2026-05-21) Security Command Center の Enterprise ティアが提供終了へ。 2027-05-21 には終了して Premium ティアへ自動移行。Enterprise は、AWS や Azure の構成チェックもできる最上位ティアだった。 付属の SecOps(SIEM)などの件は営業チームと相談を。 Knowledge Catalog の Data products 機能が一般公開(GA) About data products (2026-05-25) Knowledge Catalog(旧 Dataplex Universal Catalog)で Data products 機能が Preview から一般公開(GA)になった。 データ管理者がデータを論理的にパッケージして利用者にキュレートできる。アクセスリクエストからの承認もフロー化できる。 Gemini Deep Research Agent が Preview 公開 Use the Gemini Deep Research Agent (2026-05-26) Gemini Deep Research Agent が Preview 公開。API(REST / SDK)経由で利用可能。 パブリック Web (Google 検索)や企業データ(MCP、Agent Search、ファイル添付)に基づいて包括的なレポートを生成する。進捗のストリーミング受信も可能。 Gemini Enterprise app で Slack データストアが一般公開(GA) Overview (2026-05-27) Gemini Enterprise app で Slack データストアが Private Preview → 一般公開(GA)。 Slack に対して検索を行い、AI が回答したりタスクをこなしたりできる。 Slack 側の契約が Slack AI search をサポートするプラン(Business+ 以上)である必要あり。 Nano Banana 2 と Nano Banana Pro が一般公開(GA) Agent Platform Gemini 3.1 Flash Image and Gemini 3 Pro Image (2026-05-28) Gemini Enterprise Agent Platform(旧 Vertex AI)で画像生成モデル Gemini 3.1 Flash Image(Nano Banana 2)と Gemini 3 Pro Image(Nano Banana Pro)が Preview → 一般公開(GA)に。 4k 画像の出力は Preview 提供。また Flash は動画の入力を受けられる。これも Preview 提供。 Preview 版モデルは 2026-07-17 に廃止されるため要注意。 gemini-2.5-flash、gemini-3-flash-preview 等が新規利用の受付停止 Google Cloud からユーザーにメールで通知 (2026-05-28) 2026-06-15 以降、以下のモデルの新規利用はできなくなる。 gemini-2.5-flash gemini-2.5-flash-lite gemini-3-flash-preview 既に利用中プロジェクト、すなわち過去90日以内に上記モデルの呼び出し履歴があるプロジェクトでは、引き続きこれらのモデルが使える。 なお、正式な廃止予定(Shutdown date)は以下のとおり。 gemini-2.5-flash : October 16, 2026 gemini-2.5-flash-lite : October 16, 2026 gemini-3-flash-preview : No shutdown date announced Google Workspace のアップデート Google ドキュメントの Gemini でカスタムインストラクションを設定可能に Set custom instructions for Gemini in Google Docs (2026-05-04) Google ドキュメントの Gemini サイドパネルでカスタムインストラクションを設定できるように。 文体や要約時のトーンなどを指定できる。2026-05-04から段階的ロールアウト。 Gemini アプリで会話結果から各種ファイルを直接生成可能に Move from conversation to creation with file generation in Gemini (2026-04-27) Gemini アプリで会話結果から以下のファイルを直接生成可能になった。 Google ドキュメント、Google スプレッドシート、Google スライド PDF .docx .xlsx .csv .md ... など Google Workspace の公式リモート MCP サーバーが Public Preview 公開 New: Agent tools and security updates for Google Workspace developers (2026-05-01) Google Workspace の公式リモート MCP サーバーが Public Preview 公開。 管理操作ではなくメールやファイル取得、カレンダー予定、チャットなど、ユーザー側の操作が可能。ただし、Developer Preview に申請しないと使えないとの情報もあり。 同時に Google Workspace 系 API に新しいクォータや超過分の課金体系が整備された。AI エージェントと Google Workspace の連携で業務自動化が進むことが期待される。 Google Workspace Studio の Google Meet 関連が強化 Improvements to the Meet starter step and Calendar time-blocking capabilities in Google Workspace Studio (2026-05-06) Google Workspace Studio の Google Meet 関連が強化。 複数会議をトリガーとして指定。カレンダー上に予定を確保(ただし自分しか招待できない)。自動議事メモ(transcript)もしくは Gemini メモ(take notes for me)の完成をトリガにできる。 Gmail の Help me write(文章作成補助)機能が強化 Improvements To Help Me Write in Gmail (2026-05-01) Gmail の Help me write(文章作成補助)機能が強化。 (1) トピックコンテキスト: Googleドライブや他のメールのコンテキストを取り込んで文章を作成 (2) スタイルのパーソナライズ: 以前のメールにあわせて文体をパーソナライズ Google Workspace Studio で Ask NotebookLM が使えるようになった Use NotebookLM in your Google Workspace Studio flows (2026-05-12) Google Workspace Studio で Ask NotebookLM が使えるようになった。 例として「メール受信 → NotebookLM のナレッジをもとに返信文のドラフトを作成」のような業務が自動化できる。 Google Chat のメッセージ推敲が日本語を含む多言語に対応 Expanding language support for refining messages with Gemini in Google Chat (2026-05-14) Google Chat のメッセージ推敲が日本語を含む多言語に対応。 従来は英語のみだったが、新たに日本語、フランス語、ドイツ語、イタリア語、韓国語、ポルトガル語、スペイン語の 7 言語が対応。チャット入力欄の「Refine」アイコンをクリックするか、特定のテキストを選択することで、Gemini に語彙の調整、文法やスペルの修正、トーンの改善を依頼できる。 NotebookLM で Google ドライブとの自動同期が可能に Keep your sources up to date with automatic Drive syncing in NotebookLM (2026-05-26) NotebookLM で Google ドライブとの自動同期が可能になる。 これまでは Google ドライブ側のファイルが更新されると手動で同期ボタンを押す必要があった。2026-05-26から15日間かけて段階的ロールアウト。 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
G-gen の勝島です。当記事では、Gemini Enterprise Agent Platform と Cloud Monitoring の MCP サーバーを組み合わせて、エラーログの検知から AI による原因分析、Slack 通知までを自動化します。 はじめに Gemini Enterprise Agent Platform とは MCP(Model Context Protocol)とは 当記事について 背景と構成 本構成の狙い システムの構成 環境構築 環境変数の設定 API の有効化 ログルーティングの設定 サービスアカウントと IAM ロール アプリケーションの実装 ディレクトリ構成 requirements.txt main.py ソースコードの解説 Cloud Run functions へのデプロイ デプロイコマンドの実行 Cloud Run の呼び出し権限の付与 動作確認 はじめに Gemini Enterprise Agent Platform とは 2026年4月現在、 Gemini Enterprise Agent Platform (以下、Agent Platform)は、Google Cloud が提供する AI エージェントの構築・運用のための統合プラットフォーム(プロダクト群)です。 同年4月の Google Cloud Next '26 で、従来の Vertex AI から名称変更されました。Agent Platform は、エージェントの開発、スケール、ガバナンス、最適化のためのプロダクト群であるといえます。 MCP(Model Context Protocol)とは Model Context Protocol (以下、 MCP )は、AI モデルが外部ツールを呼び出すための標準プロトコルです。 Google Cloud では、Cloud Monitoring や Cloud Logging などの主要サービス向けに、フルマネージドなリモート MCP サーバーである Google Cloud MCP Servers が提供されています。当記事の構成では、AI モデルがこの MCP サーバー経由で Cloud Monitoring のメトリクスをツールとして自律的に呼び出し、原因分析に使用します。 参考 : Google Cloud MCP servers overview 参考 : MCP Reference: monitoring.googleapis.com Google Cloud MCP Servers の概要や認証方式の詳細については、以下の記事も参照してください。 blog.g-gen.co.jp 当記事について 当記事では、Cloud Logging で severity >= ERROR のログを検知した際に、Gemini モデルが MCP サーバー経由で関連メトリクスを取得し、Cloud Logging の関連ログも横断的に検索したうえで、原因の仮説と対処アクションを Slack に通知する AI エージェントを構築します。 なお、当記事の構成で使用する Cloud Run functions の全体像については以下の記事も参照してください。 blog.g-gen.co.jp 背景と構成 本構成の狙い Cloud Monitoring の標準の アラート 機能でも、しきい値ベースでの通知や Error Reporting によるエラー集計は可能です。しかし、これらは「何が起きたか」を伝えてくれるものの、「なぜ起きたのか」「どう対処すべきか」までは教えてくれません。 エラー発生時にメトリクスとログを横断的に確認し、根本原因の仮説を立てるという作業は、依然としてエンジニアの手作業に依存しています。当構成では、この一次切り分けの作業を AI エージェントに委譲することで、対応のリードタイム短縮を狙います。 システムの構成 ユーザー側で severity >= ERROR のログが Cloud Logging に書き込まれると、ログシンクを経由して Pub/Sub にメッセージが転送されます。 Pub/Sub のメッセージを受信した Cloud Run functions は、Agent Platform 経由で Gemini モデルを呼び出します。 Gemini モデルは MCP サーバー経由で Cloud Monitoring からメトリクスを取得し、さらに Cloud Logging から関連ログを検索しながら、原因の仮説と対処アクションを生成し Slack へ通知します。 構成図 なお、Pub/Sub を中心とした疎結合アーキテクチャの考え方や、Cloud Logging のログルーター(シンク)の仕組みの詳細については、以下の記事を参照してください。 blog.g-gen.co.jp blog.g-gen.co.jp 環境構築 環境変数の設定 以降のコマンドで使用する環境変数を設定します。 PROJECT_ID と SLACK_WEBHOOK_URL は、実際の環境に合わせて変更してください。 export PROJECT_ID = " your-project-id " export REGION = " asia-northeast1 " export TOPIC_NAME = " error-alerts-topic " export SINK_NAME = " error-logs-sink " export SA_NAME = " ai-ops-agent-sa " export SA_EMAIL = " ${SA_NAME} @ ${PROJECT_ID} .iam.gserviceaccount.com " export SLACK_WEBHOOK_URL = " https://hooks.slack.com/services/xxxx/xxxx/xxxx " API の有効化 対象プロジェクトをセットし、必要な API を有効化します。 gcloud config set project $PROJECT_ID gcloud services enable \ logging.googleapis.com \ pubsub.googleapis.com \ cloudfunctions.googleapis.com \ run.googleapis.com \ aiplatform.googleapis.com \ monitoring.googleapis.com \ cloudbuild.googleapis.com \ eventarc.googleapis.com 主要な API の役割は以下の通りです。 API 役割 logging.googleapis.com エラーログを検知し、Pub/Sub へルーティングする pubsub.googleapis.com エラーログを受け取り、Cloud Run functions に通知する cloudfunctions.googleapis.com 通知をトリガーに分析処理を実行する aiplatform.googleapis.com Gemini モデルでエラーの原因分析を行う monitoring.googleapis.com MCP サーバー経由でメトリクスを参照する ログルーティングの設定 Cloud Logging から Pub/Sub へエラーログを転送するための ログシンク と Pub/Sub トピック を作成します。 # Pub/Sub トピックの作成 gcloud pubsub topics create $TOPIC_NAME # ログシンクの作成(テスト用ログのみ転送) gcloud logging sinks create $SINK_NAME \ pubsub.googleapis.com/projects/ $PROJECT_ID /topics/ $TOPIC_NAME \ --log-filter =" severity>=ERROR AND logName= \" projects/ ${PROJECT_ID} /logs/my-test-log \" " --log-filter で logName を my-test-log に限定することで、動作確認用のログだけを Pub/Sub に転送する構成にしています。本番運用ではこのフィルタを実際のサービスログに合わせて変更してください。 続いて、ログシンクが Pub/Sub に書き込めるよう、ログシンクのサービスアカウントに Publisher 権限を付与します。 SINK_SA = $( gcloud logging sinks describe $SINK_NAME --format =' value(writerIdentity) ' ) gcloud pubsub topics add-iam-policy-binding $TOPIC_NAME \ --member = $SINK_SA \ --role = roles/pubsub.publisher サービスアカウントと IAM ロール Cloud Run functions が Agent Platform、Cloud Monitoring、MCP を使用するためのサービスアカウントを作成し、必要なロールを付与します。 # サービスアカウントの作成 gcloud iam service-accounts create $SA_NAME \ --display-name =" AI Ops Agent " || true # Agent Platform ユーザー gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount: ${SA_EMAIL} " \ --role =" roles/aiplatform.user " # Monitoring 閲覧者 gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount: ${SA_EMAIL} " \ --role =" roles/monitoring.viewer " # ログ閲覧者 gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount: ${SA_EMAIL} " \ --role =" roles/logging.viewer " # MCP ツールユーザー gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount: ${SA_EMAIL} " \ --role =" roles/mcp.toolUser " 各ロールの目的は以下の通りです。 ロール 目的 Agent Platform ユーザー( roles/aiplatform.user ) Gemini モデルの呼び出し Monitoring 閲覧者( roles/monitoring.viewer ) MCP 経由でのメトリクス取得 ログ閲覧者( roles/logging.viewer ) 関連ログの参照 MCP ツールユーザー( roles/mcp.toolUser ) MCP ツールの呼び出し なお、Google Cloud の MCP サーバーは「MCP プロトコル自体を呼び出す権限( roles/mcp.toolUser )」と「対象サービスのデータを参照する権限( roles/monitoring.viewer など)」の二段階の認可で保護されています。両方を付与する必要がある点に注意してください。 アプリケーションの実装 ディレクトリ構成 以下の構成でファイルを作成します。 ai-ops-function(任意のフォルダ名) ├── main.py └── requirements.txt requirements.txt 必要なライブラリを定義します。 functions-framework==3.* google-cloud-pubsub google-cloud-logging google-genai google-auth requests main.py main.py は、Pub/Sub から受け取ったエラーログを Gemini に解析させ、Slack に通知するアプリケーション本体です。 import base64 import json import os from datetime import datetime, timedelta, timezone import requests from google import genai from google.cloud import logging_v2 import google.auth from google.auth.transport.requests import Request SLACK_WEBHOOK_URL = os.environ.get( "SLACK_WEBHOOK_URL" ) PROJECT_ID = os.environ.get( "PROJECT_ID" ) MCP_SERVER_URL = "https://monitoring.googleapis.com/mcp" def get_mcp_headers (): scopes = [ "https://www.googleapis.com/auth/cloud-platform" ] credentials, _ = google.auth.default(scopes=scopes) credentials.refresh(Request()) return { "Authorization" : f "Bearer {credentials.token}" , "Content-Type" : "application/json" } def list_monitoring_mcp_tools () -> str : """MCP サーバーから使用可能なツール一覧を取得する""" payload = { "jsonrpc" : "2.0" , "method" : "tools/list" , "id" : 1 } res = requests.post(MCP_SERVER_URL, json=payload, headers=get_mcp_headers()) if not res.ok: return f "MCP tools/list API エラー (HTTP {res.status_code}): {res.text[:1000]}" result_data = res.json().get( "result" , {}) simplified_tools = [] for tool in result_data.get( "tools" , []): schema = tool.get( "inputSchema" , {}) simplified_props = {} for k, v in schema.get( "properties" , {}).items(): simplified_props[k] = { "type" : v.get( "type" , "unknown" ), "description" : v.get( "description" , "" )[: 100 ] } simplified_tools.append({ "name" : tool.get( "name" ), "description" : tool.get( "description" , "" )[: 200 ], "required_args" : schema.get( "required" , []), "properties" : simplified_props }) return json.dumps({ "tools" : simplified_tools}, indent= 2 , ensure_ascii= False ) def call_monitoring_mcp_tool (tool_name: str , arguments_json_str: str ) -> str : """指定した MCP ツールを実行してメトリクスを取得する""" arguments = json.loads(arguments_json_str) payload = { "jsonrpc" : "2.0" , "method" : "tools/call" , "id" : 2 , "params" : { "name" : tool_name, "arguments" : arguments} } res = requests.post(MCP_SERVER_URL, json=payload, headers=get_mcp_headers()) if not res.ok: return f "MCP tools/call API エラー (HTTP {res.status_code}): {res.text[:1000]}" response_data = res.json() if "result" in response_data and "content" in response_data[ "result" ]: text_result = " \n " .join( [item.get( "text" , "" ) for item in response_data[ "result" ][ "content" ]] ) return text_result[: 3000 ] + " \n ...(省略)" if len (text_result) > 3000 else text_result return f "MCP エラー: {response_data.get('error', '不明なレスポンス')}" def search_cloud_logs (filter_str: str , hours: int = 2 ) -> str : """Cloud Logging で過去 N 時間のログを検索する""" client = logging_v2.Client(project=PROJECT_ID) start_time = datetime.now(timezone.utc) - timedelta(hours=hours) full_filter = f '{filter_str} AND timestamp>="{start_time.isoformat()}"' entries = client.list_entries(filter_=full_filter, max_results= 20 ) results = [] for entry in entries: results.append({ "timestamp" : entry.timestamp.isoformat() if entry.timestamp else "" , "severity" : str (entry.severity), "resource" : entry.resource.type if entry.resource else "" , "payload" : str (entry.payload)[: 500 ] }) if not results: return "該当するログは見つかりませんでした。" text = json.dumps(results, indent= 2 , ensure_ascii= False ) return text[: 3000 ] + " \n ...(省略)" if len (text) > 3000 else text def analyze_error (event, context): """Pub/Sub からエラーログを受け取り、Gemini で分析して Slack に通知する""" pubsub_message = base64.b64decode(event[ 'data' ]).decode( 'utf-8' ) log_data = json.loads(pubsub_message) error_msg = log_data.get( "textPayload" ) or log_data.get( "jsonPayload" ) client = genai.Client(vertexai= True , project=PROJECT_ID, location= "us-central1" ) log_str = json.dumps(log_data, indent= 2 )[: 5000 ] prompt = f """ 以下のエラーログが検知されました。MCP サーバーおよび Cloud Logging と連携して調査してください。 【ログ内容】 {log_str} 【厳守事項】 原因分析にあたり、以下のステップを必ずすべて実行してください。推測(ハルシネーション)による回答や、一部のツール呼び出しの省略は許可されません。 1. `list_monitoring_mcp_tools` でツール一覧を確認してください。 2. `call_monitoring_mcp_tool` でプロジェクト {PROJECT_ID} の直近 10 分のメトリクスを取得してください。取得対象はログの文脈(「リクエストが処理しきれません」等)から判断し、Cloud Run のリクエスト数(例: metric.type="run.googleapis.com/request_count")など、負荷状況がわかる確実な標準メトリクスを指定してください。無効なクエリは避けてください。 3. `search_cloud_logs` で直近 10 分の関連するログを検索してください(severity>=WARNING など)。 【出力フォーマット】 分析結果は、必ず以下の Markdown 構造に厳密に従って出力してください。ツール名は記載せず、自然な日本語で記載してください。 ### 調査結果 1. **メトリクス分析:** (実際に取得したメトリクスの数値やスパイクの有無など、客観的な事実のみを記載) 2. **ログ分析:** (実際に検索した関連ログの件数や内容など、客観的な事実のみを記載) ### 原因の仮説 (上記の客観的データに基づき、なぜエラーが発生したのかの考察を記載) ### 対処アクション (具体的な解決策を記載) """ res = client.models.generate_content( model= 'gemini-2.5-flash' , contents=prompt, config={ "tools" : [list_monitoring_mcp_tools, call_monitoring_mcp_tool, search_cloud_logs]} ) requests.post(SLACK_WEBHOOK_URL, json={ "text" : f "🚨 *【AI 自動分析】* \n *ログ:* \n ``` \n {str(error_msg)[:1000]} \n ``` \n *分析:* \n {res.text}" }) ソースコードの解説 上記のソースコードは、大きく分けて「Gemini に渡すツール関数群」と「Pub/Sub をトリガーにエージェントを起動するエントリーポイント」の2つのパートで構成されます。 まずは、ツール関数群について解説します。このパートは、 list_monitoring_mcp_tools 、 call_monitoring_mcp_tool 、 search_cloud_logs で構成されます。 list_monitoring_mcp_tools MCP サーバーから使用可能なツール一覧を取得します。Cloud Monitoring が返すスキーマは大きく、そのまま Gemini に渡すとコンテキスト上限を超える恐れがあるため、プロパティ情報を必要最小限に絞り込んでいます。 call_monitoring_mcp_tool 指定された MCP ツールを実行し、メトリクスを取得します。 search_cloud_logs Cloud Logging から関連ログを検索します。Gemini がメトリクスだけでは原因を判断できない場合に、追加の調査手段として呼び出されます。 次に、エントリーポイント( analyze_error() )のパートについて解説します。 Pub/Sub イベントの受信 Pub/Sub から渡されたメッセージをデコードし、含まれるエラーログの内容を取り出します。 Gemini モデルの呼び出し プロンプトと使用可能ツールの一覧を渡して generate_content を実行します。プロンプトには、ツールの呼び出し順序と、最終的に出力すべき内容(原因の仮説と対処アクション)を明記しています。 Slack への通知 Gemini から返された応答を、Slack Webhook 経由で指定チャンネルに POST します。 Cloud Run functions へのデプロイ デプロイコマンドの実行 ターミナルで ai-ops-function ディレクトリに移動し、Cloud Run functions にデプロイします。 # プロジェクト番号の取得 export PROJECT_NUMBER = $( gcloud projects describe $PROJECT_ID --format =' value(projectNumber) ' ) # デプロイの実行(クリーン版) gcloud functions deploy ai-ops-analyzer \ --gen2 \ --runtime = python311 \ --region = $REGION \ --source = . \ --entry-point = analyze_error \ --trigger-topic = $TOPIC_NAME \ --service-account = $SA_EMAIL \ --trigger-service-account = ${PROJECT_NUMBER} -compute@developer.gserviceaccount.com \ --set-env-vars = SLACK_WEBHOOK_URL = $SLACK_WEBHOOK_URL , PROJECT_ID = $PROJECT_ID \ --quiet Cloud Run の呼び出し権限の付与 Cloud Run functions は、内部的には Cloud Run service として展開されます。Pub/Sub 経由でのトリガー時に正しく認証が通るよう、サービスアカウントに Cloud Run の呼び出し権限を付与します。 # プロジェクト番号の取得 export PROJECT_NUMBER = $( gcloud projects describe $PROJECT_ID --format =' value(projectNumber) ' ) # Compute Engine デフォルトサービスアカウントに Cloud Run 起動権限を付与 gcloud run services add-iam-policy-binding ai-ops-analyzer \ --region = $REGION \ --member =" serviceAccount: ${PROJECT_NUMBER} -compute@developer.gserviceaccount.com " \ --role =" roles/run.invoker " 動作確認 デプロイしたエージェントの動作確認として、以下の手順で疑似的なインシデント状況を作り出してテストします。意図的にメトリクスの負荷スパイクを発生させ、テスト用エラーログを書き込むことで、AI による原因分析が正しく実行されるかを確認します。 1.Cloud Shell から、デプロイした関数に対してリクエストを送り、メトリクス上にスパイクを発生させます。 # 自分の関数の URL を取得 URL = $( gcloud run services describe ai-ops-analyzer --region = $REGION --format =' value(status.url) ' ) TOKEN = $( gcloud auth print-identity-token ) # 1 分間、並列でリクエストを送り続ける(スパイクを作成) echo " 負荷を発生させています(約 1 分間)... " for i in { 1 .. 100 } ; do curl -s -H " Authorization: Bearer $TOKEN " $URL > /dev/null & done sleep 30 for i in { 1 .. 100 } ; do curl -s -H " Authorization: Bearer $TOKEN " $URL > /dev/null & done wait echo " 負荷生成完了。 " 2.負荷をかけてから2〜3分のタイミングで、テスト用のエラーログを書き込みます。 gcloud logging write my-test-log \ " CRITICAL: サービス応答遅延が発生しています。リクエストが処理しきれません。 " \ --severity = ERROR 3.Slack 上で、AI による分析結果が通知されることを確認します。 勝島 祐太郎 (記事一覧) クラウドソリューション部 ソリューションアーキテクト課 2025年1月G-genにジョイン!飲食業界からIT業界に転身したエンジニア。 コーヒーが好きです。
G-gen の福井です。当記事では、AI エージェントツールに専門知識やワークフローを追加するためのオープンフォーマットである Agent Skills について、概念や動作の仕組み、スキルの構造、使い方などを解説します。 概要 Agent Skills とは Skills が可能にすること Skills の実体 Agent Skills の仕組み 基本的な動作 コンテキスト肥大化の防止 Skills と MCP の関係 Skills の構造 ディレクトリ構成 SKILL.md の中身 使い方 対応ツール Skills ファイルの配置場所 インストール Gemini CLI からスキルを呼び出してみる 概要 Agent Skills とは Agent Skills は、生成 AI エージェントツールに専門知識やワークフローを追加するためのオープンフォーマットです。Anthropic が策定したオープンスタンダードであり、現在は Anthropic 社外のさまざまなツールでも採用が進んでいます。 Agent Skills は、Claude Code、Gemini CLI など、さまざまな AI エージェントツールで使用することができます。 なお当記事内では、文脈に応じて Agent Skills のことを「スキル」「Skill(s)」と表記する場合があります。 参考 : https://agentskills.io/ 参考 : Agent Skills - Claude API Docs 参考 : Agent Skills | Gemini CLI Skills が可能にすること Agent Skills が提供する典型的な能力としては、以下のようなものが挙げられます。 特定領域の専門知識(例: Google Cloud の各製品の正確な仕様や最新の API) 繰り返し実行されるワークフロー(例: コードレビューの観点、リリース手順) 組織やチーム固有のルール(例: 社内のコーディング規約、ドキュメントテンプレート) AI エージェントツールは、Agent Skills を必要なときにだけ読み込むので、LLM のコンテキストウインドウを不必要に圧迫することがありません。 システムインストラクション(システムプロンプト)や tools を必要なときにだけ読み込むことで、 コンテキストウインドウを効率的に使用できるようにする のが Agent Skills の最大のメリットといえます。 Skills の実体 Agent Skills の実体は、 SKILL.md というマークダウン形式のテキストファイルを含む 1 つのフォルダ(ディレクトリ)です。フォルダの中には SKILL.md に加えて、参照ドキュメントや実行スクリプトなどのアセットを任意で配置できます。 AI エージェントツールはこのフォルダをスキルとして認識し、必要に応じて読み込んで使用します。 Agent Skills と AI エージェントツールの関係 Agent Skills の仕組み 基本的な動作 Agent Skills は、 progressive disclosure (段階的開示)と呼ばれる仕組みで動作します。これは、必要なときに必要な情報だけを読み込むことで、AI エージェントツールのコンテキストを効率的に使うための仕組みです。 progressive disclosure では、AI エージェントツールはスキルを次の 3 段階に分けて読み込みます。 1 つ目の段階は Discovery (発見)です。AI エージェントツールの起動時に、使用可能なすべてのスキルの name(名前)と description(説明文)だけを読み込みます。この段階では、各スキルがどのような場面で使えるのかを把握するための最小限の情報のみが読み込まれます。 2 つ目の段階は Activation (有効化)です。ユーザーからのタスクが、あるスキルの description にマッチした場合、AI エージェントツールはそのスキルの SKILL.md 本文をすべて読み込みます。これにより、そのスキルに書かれた指示の詳細をタスク遂行に使用できます。 3 つ目の段階は Execution (実行)です。AI エージェントツールは SKILL.md の指示に従ってタスクを進めます。必要に応じて、スキルに同梱されたスクリプトを実行したり、参照ドキュメントを追加で読み込んだりします。 progressive disclosure の 3 段階 このように、すべての情報を一度に読み込むのではなく、必要な情報を必要なタイミングだけ読み込む仕組みであるため、多数のスキルを導入した場合でも、LLM のコンテキストウインドウを節約できます。 コンテキスト肥大化の防止 Agent Skills が解決しようとしている課題の 1 つに、AI エージェントツールに特有の コンテキスト肥大化 (Context Bloat)があります。 AI エージェントツールが特定領域で正確に動作するためには、LLM が正確な知識を参照する必要があります。必要な情報を AI に参照させるには、システムインストラクションやユーザープロンプトとして大量の情報を読み込ませたり、あるいは Model Context Protocol(MCP)サーバー経由でドキュメントを取得させるといった方法が挙げられます。例えば Google は、Google Cloud のドキュメントを提供する MCP サーバーを公開しています。 しかし、長大なプロンプトや MCP サーバーによる情報取得を多用すると、大量のドキュメントが常時、コンテキストウィンドウに読み込まれることになり、LLM の応答精度や応答速度が下がるほか、トークン消費量の増加にも繋がります。これがコンテキスト肥大化です。 一方、Agent Skills では、AI エージェントツールが、 必要なスキルだけを必要なタイミングで 読み込みます。これにより、コンテキストを節約しつつ、特定領域に関する正確な知識を LLM に与えることができます。 Skills と MCP の関係 前のセクションでも触れた MCP は、外部システムへのアクセスを標準化するためのプロトコルです。一方の Agent Skills は、専門知識やワークフローをパッケージ化して AI エージェントツールに配信するためのフォーマットです。両者は競合するものではなく、 役割が異なる補完的な関係 です。 MCP は、LLM が外部のシステムやデータソースにアクセスする手段を提供します。たとえば、Google ドライブのファイルを読み込む、データベースにクエリを発行する、Slack にメッセージを投稿する、といった操作を、LLM が API 経由で実行しやすくするプロキシのような役割を果たすのが MCP です。 一方の Agent Skills は、AI エージェントツールが特定の領域やタスクで、人間の意図どおりに振る舞うための知識と手順(プロンプト)や、tools(スクリプト等)をパッケージしたものです。Agent Skills の実体は 1 つのディレクトリにまとめられたファイル群であるため、1 度開発すれば容易に他人に共有できます。また、スキル内からは、同梱のスクリプトをツールとして使うこともできれば、MCP サーバーを呼び出すこともできます。 Agent Skills と MCP は 併用 できます。たとえば、組織の開発のワークフローに沿うために以下のような Agent Skills を作成できます。 ユーザーが指示した CSV ファイルを分析し、適切な BigQuery テーブルの設計を行う(パーティショニング、クラスタリング、カラムの説明などを作成) BigQuery 用の MCP サーバーを呼び出して、設計に基づいてテーブルを作成する CSV を新規のテーブルにロードする Skills の構造 ディレクトリ構成 Agent Skills は、 SKILL.md を必須ファイルとして含む 1 つのフォルダで構成されます。 SKILL.md 以外のファイルやフォルダは、用途に応じて任意で配置できます。 代表的なディレクトリ構成は以下のとおりです。 skill-name/ ├── SKILL.md (必須)スキルのメタデータと指示 ├── references/ (任意)詳細な参照ドキュメント ├── scripts/ (任意)スキルから呼び出される実行スクリプト └── assets/ (任意)テンプレートやリソース それぞれのファイルやフォルダの役割は、以下の通りです。 構成要素 必須/任意 役割 SKILL.md 必須 スキルのメタデータと、AI エージェントツールがタスクを遂行する際に従う指示を記述するファイル references/ 任意 SKILL.md の指示の中で参照される詳細なドキュメントを格納するフォルダ。AI エージェントツールは、SKILL.md の指示に従って必要なときだけ読み込む scripts/ 任意 スキルから呼び出される実行可能なスクリプトを格納するフォルダ。フォーマット変換スクリプトや API 呼び出しのヘルパースクリプトなどを配置する assets/ 任意 スキルが使用するテンプレートファイルやリソース(画像、設定ファイルなど)を格納するフォルダ シンプルなスキルであれば SKILL.md だけで構成することも可能ですし、複雑なスキルであれば references/ や scripts/ を組み合わせて表現できます。スキルの複雑さに応じて柔軟に構成できる、軽量なフォーマットといえます。 参考 : Specification - Agent Skills SKILL.md の中身 SKILL.md は、先頭にメタデータを記述する YAML フロントマター(ファイルの冒頭に YAML 形式で記述されるメタデータのこと)があり、それに続いて、AI エージェントツールがタスクを遂行する際に従う指示を Markdown 形式で記述する構造になっています。 YAML フロントマターには、name(スキル名)と description(スキルの説明)の 2 つを必ず記述します。description は、AI エージェントツールがどのスキルを使うべきかを判断する際の最も重要な情報です。「このスキルがどのような場面で使われるべきか」を具体的に書きます。 google/skills リポジトリで公開されている bigquery-basics スキルの SKILL.md から、構造が分かる範囲を抜粋して以下に示します。 参考 : google/skills - bigquery-basics/SKILL.md (Apache 2.0 ライセンス、抜粋) --- name: bigquery-basics description: >- Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights. Use when you need to interact with BigQuery, run SQL queries, manage BigQuery resources, or leverage BigQuery's built-in ML capabilities. Also use when performing data analysis, ingesting data into BigQuery, or developing AI applications on BigQuery. --- # BigQuery Basics BigQuery is a serverless, AI-ready data platform that enables high-speed analysis of large datasets using SQL and Python. Its disaggregated architecture separates compute and storage, allowing them to scale independently while providing built-in machine learning, geospatial analysis, and business intelligence capabilities. ## Setup and Basic Usage (中略) ## Reference Directory - [ Core Concepts ]( references/core-concepts.md ): Storage types, analytics workflows, and BigQuery Studio features. - [ CLI Usage ]( references/cli-usage.md ): Essential ` bq ` command-line tool operations for managing data and jobs. - [ Client Libraries ]( references/client-library-usage.md ): Using Google Cloud client libraries for Python, Java, Node.js, and Go. (以下省略) このサンプルから、YAML フロントマター( name と description )、Markdown 本文( # BigQuery Basics 以降)、 references/ 配下のファイルへの参照( ## Reference Directory )という、これまで説明してきた構造が実際にどう書かれているかを確認できます。 description には、「いつこのスキルを使うか」を具体的に書くことが重要です。AI エージェントツールは、起動時に全スキルの description を読み込み、ユーザーのタスクと照合して「どのスキルを使うか」を判断します。description が曖昧だと、本来使われるべきスキルが選ばれない、または不適切な場面で使われてしまう、といった問題が発生します。 bigquery-basics スキルの description を見ると、「Use when you need to interact with BigQuery, run SQL queries...」のように、「いつ使うか」が具体的な動詞で複数列挙されているのが分かります。これにより、AI エージェントツールがユーザーのタスクと正確にマッチングできるようになっています。 使い方 対応ツール 規格に準拠した AI エージェントツールであれば、開発元を問わず Agent Skills を使用できます。主要なツールは以下のとおりです。 ツール名 提供元 種別 Antigravity Google IDE Gemini CLI Google CLI Claude Code Anthropic CLI Cursor Anysphere IDE GitHub Copilot GitHub IDE 拡張 Codex OpenAI CLI Anthropic、Google、OpenAI、GitHub などの主要 AI ベンダーが提供するツールが揃って Agent Skills の規格に対応しており、特定ベンダーに閉じない普遍的なフォーマットとして広く採用されていることがわかります。 なお、後述する npx skills install コマンドは、2026年5月現在で合計 55 個の AI エージェントツールへのインストールに対応しています。 Skills ファイルの配置場所 スキルは、決められたディレクトリに配置することで認識されます。AI エージェントツールは、起動時にこのディレクトリ配下を走査して、スキルを検出します。 Agent Skills の規格では、配置場所として Workspace スコープ と User スコープ の 2 種類が定義されています。 スコープ 説明 用途 Workspace スコープ プロジェクト(リポジトリ)単位でスキルを配置する形式。プロジェクトのカレントディレクトリ配下に配置され、プロジェクトと一緒に Git 管理できる プロジェクトメンバー間でスキルを共有する場合に使用する User スコープ ユーザー単位でスキルを配置する形式。ホームディレクトリ配下に配置され、すべてのプロジェクトから横断的に使用できる 個人で使うスキルや、プロジェクトを問わず使用するスキルに適している 主要なツールごとの、各スコープの配置場所は以下のとおりです。 ツール名 Workspace スコープ User スコープ Universal(Antigravity、Gemini CLI、Cursor 等に共通) .agents/skills/ ~/.agents/skills/ Gemini CLI .gemini/skills/ ~/.gemini/skills/ Claude Code .claude/skills/ ~/.claude/skills/ Augment .augment/skills/ ~/.augment/skills/ AiderDesk .aider-desk/skills/ ~/.aider-desk/skills/ 上記の表で「Universal」としているのは、複数のツールで使用される配置場所のことです。Antigravity、Gemini CLI、Cline、Codex、Cursor、GitHub Copilot などは、共通の .agents/skills/ ディレクトリ配下に配置されたスキルを認識します。 一方、Claude Code や Augment、AiderDesk など、独自のディレクトリを持つツールは、それぞれ専用のディレクトリにスキルを配置する必要があります。 なお、Gemini CLI については、上記の Universal エイリアス( .agents/skills/ )に加えて、ツール固有のパスである .gemini/skills/ も同時にサポートしています。両者は併用可能で、Gemini CLI は起動時に両方のディレクトリを走査します。同一スコープ(Workspace スコープまたは User スコープ)内で同名のスキルが両方のディレクトリに存在する場合は、 .agents/skills/ 配下のスキルが優先される仕様です。 参考 : Gemini CLI | Agent Skills Discovery tiers インストール 自前で作成したスキルを使用する場合は、前述に示したディレクトリに、 SKILL.md を含むスキルフォルダを直接配置します。AI エージェントツールは起動時に該当ディレクトリを走査してスキルを検出するため、特別なインストール作業は不要です。社内向けのスキルや、自身で作成したスキルを使う場合はこの方法が適しています。 一方、GitHub などで公開されているスキルは、 npx skills install コマンドでインストールできます。 npx skills は、Vercel 社(Vercel Labs)が提供するオープンソースの CLI ツールです。GitHub リポジトリ上の SKILL.md を取得し、AI エージェントツールの所定の配置場所に展開する役割を担います。 参考 : vercel-labs/skills - GitHub なお、 npx コマンドは Node.js に同梱されているコマンド実行ツールです。Node.js は、JavaScript ベースのコマンドラインツールやスクリプトを動かすためのランタイム環境で、Windows、macOS、Linux のすべてに対応しています。手元の環境で npx コマンドが使えない場合は、まず Node.js をインストールしてください。 参考 : Node.js 公式サイト - ダウンロード 以下のように GitHub リポジトリの URL を指定してコマンドを実行することで、スキルを導入できます。ここでは Google が公開している公式リポジトリ google/skills を例に挙げます。 npx skills install github.com/google/skills 処理を続行するか問われるため「y」を入力します。 Need to install the following packages: skills@ 1 . 5 . 5 Ok to proceed? ( y ) y インストールするスキルを選択します。リポジトリに含まれるスキルが一覧で表示されるため、必要なものだけを選択できます。 ┌ skills │ ◇ Source: https://github.com/google/skills.git │ ◇ Repository cloned │ ◇ Found 13 skills │ ◆ Select skills to install ( space to toggle ) │ ◻ alloydb-basics │ ◼ bigquery-basics ( Manages datasets, tables, and jobs in BigQuery, and integ... ) │ ◻ cloud-run-basics │ ◻ cloud-sql-basics │ ◻ firebase-basics │ ◼ gemini-api ( Guides the usage of the Gemini API on Agent Platform with... ) │ ◻ gke-basics │ ◼ google-cloud-recipe-auth ( Provides expert guidance on authenticating and authorizin... ) │ ◼ google-cloud-recipe-networking-observability ( Investigates Google Cloud networking issues by analyzing ... ) │ ◼ google-cloud-recipe-onboarding ( Guidance for a developer ' s first steps on Google Cloud, c...) │ ◼ google-cloud-waf-cost-optimization (Generates cost optimization guidance for Google Cloud wor...) │ ◼ google-cloud-waf-reliability (Generates reliability-focused guidance for Google Cloud w...) │ ◼ google-cloud-waf-security (Generates security-focused guidance for Google Cloud work...) インストール対象の AI エージェントツールを選択します。 Universal (.agents/skills) の下部に記載されているツールは、いずれも .agents/skills ディレクトリに配置されたスキルを認識します。一方、Claude Code など独自の配置場所を持つツールは、Additional agents の一覧から個別に選択する必要があります。 ◇ 55 agents ◆ Which agents do you want to install to? │ │ ── Universal ( .agents/skills ) ── always included ──────────── │ • Amp │ • Antigravity │ • Cline │ • Codex │ • Cursor │ • Deep Agents │ • Dexto │ • Firebender │ • Gemini CLI │ • GitHub Copilot │ • Kimi Code CLI │ • OpenCode │ • Warp │ │ ── Additional agents ───────────────────────────── │ Search: │ ↑↓ move, space select, enter confirm │ │ ○ AiderDesk ( .aider-desk/skills ) │ ○ Augment ( .augment/skills ) │ ○ IBM Bob ( .bob/skills ) │ ❯ ○ Claude Code ( .claude/skills ) │ ○ OpenClaw ( skills ) │ ○ CodeArts Agent ( .codeartsdoer/skills ) │ ○ CodeBuddy ( .codebuddy/skills ) │ ○ Codemaker ( .codemaker/skills ) │ ↓ 32 more │ │ Selected: Amp, Antigravity, Cline + 10 more 次に、インストールのスコープを選択します。 Project はカレントディレクトリ配下にスキルを配置する形式で、プロジェクトと一緒に Git 等で管理できます。Global はホームディレクトリ配下にスキルを配置する形式で、すべてのプロジェクトから横断的に使用できます。プロジェクトごとに使うスキルが異なる場合は Project、すべてのプロジェクトで共通して使う場合は Global を選びます。 ◆ Installation scope │ ● Project ( Install in current directory ( committed with your project )) │ ○ Global インストール確認に対する承認を行うため「Yes」を選択します。 インストール内容に加えて、各スキルに対する Gen、Socket、Snyk によるセキュリティリスク評価が表示されます。Agent Skills は AI エージェントツールが持つ権限で実行されるため、信頼できるソースのスキルだけをインストールすることが重要です。セキュリティリスク評価を確認することで、インストール前にリスクを把握できます。 セキュリティリスク評価に関する詳細は、 Security Risk Assessments の Details のリンク先から確認できます。 ◇ Installation Summary ──────────────────────────────────────────────────────────────────╮ │ │ │ ~/blog_work/google-skills/.agents/skills/bigquery-basics │ │ copy → Amp, Antigravity, Cline, Codex, Cursor + 8 more │ │ │ │ (中略) │ │ │ ├─────────────────────────────────────────────────────────────────────────────────────────╯ │ ◇ Security Risk Assessments ──────────────────────────────────────────────────────────╮ │ │ │ Gen Socket Snyk │ │ bigquery-basics Safe 0 alerts Low Risk │ │ gemini-api Safe 0 alerts Med Risk │ │ (中略) │ │ │ │ Details: https://skills.sh/google/skills │ │ │ ├──────────────────────────────────────────────────────────────────────────────────────╯ │ ◆ Proceed with installation? │ ● Yes / ○ No インストールが完了します。 └ Done! Review skills before use; they run with full agent permissions. Vercel 社が公開している「find-skills」のインストール確認があります。今回は不要ですので「No」を選択します。 ◆ Install the find-skills skill? It helps your agent discover and suggest skills. │ ○ Yes / ● No Gemini CLI からスキルを呼び出してみる これまで解説してきた Agent Skills の仕組みが実際にどう機能するかを、 Gemini CLI を例にとって実演します。 Gemini CLI の概要やインストール方法については、以下の記事で詳しく解説しています。 blog.g-gen.co.jp 今回は、題材として google/skills リポジトリで公開されている bigquery-basics スキルを使用します。ここからは、すでにこのスキルが導入済みである前提で紹介します。 参考 : google/skills - bigquery-basics/SKILL.md (Apache 2.0 ライセンス、抜粋) bigquery-basics スキルが導入された Gemini CLI に対して「BigQuery のデータセットを作りたい」と入力した結果が以下です。 > BigQuery のデータセットを作りたい BigQuery Dataset Creation Research: Activating the BigQuery skill to assist with dataset creation. ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Action Required │ │ │ │ ? Activate Skill "bigquery-basics": Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights. Use when … │ │ │ │ You are about to enable the specialized agent skill bigquery-basics. │ │ │ │ Description: │ │ Manages datasets, tables, and jobs in BigQuery, and integrates with BigQuery ML and Gemini for advanced data analytics and AI-driven insights. Use when you need to interact with BigQuery, │ │ run SQL queries, manage BigQuery resources, or leverage BigQuery's built-in ML capabilities. Also use when performing data analysis, ingesting data into BigQuery, or developing AI │ │ applications on BigQuery. │ │ │ │ Resources to be shared with the model: │ │ Showing up to 200 items (files + folders). │ │ │ │ /home/xxx/blog_work/google-skills/.agents/skills/bigquery-basics/ │ │ ├───SKILL.md │ │ └───references/ │ │ ├───cli-usage.md │ │ ├───client-library-usage.md │ │ ├───core-concepts.md │ │ ├───iac-usage.md │ │ ├───iam-security.md │ │ └───mcp-usage.md │ │ Do you want to proceed? │ │ │ │ ● 1. Allow once │ │ 2. Allow for this session │ │ 3. No, suggest changes (esc) │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ここで起こっているのは、progressive disclosure の Activation(有効化)の段階です。Gemini CLI は起動時に全スキルの description を読み込んでおり(Discovery)、ユーザーのプロンプト「BigQuery のデータセットを作りたい」が bigquery-basics スキルの description にマッチしたため、 SKILL.md 本文を読み込もうとしています。 ユーザーが有効化を承認すると、Gemini CLI は bigquery-basics スキルの SKILL.md を読み込み、その指示に従ってタスクを進めます。ここから progressive disclosure の Execution(実行)の段階です。 SKILL.md の指示に基づいて、データセット作成に必要な情報を Gemini CLI が対話形式で確認してきます。最初に、データセット名を尋ねられます。今回は my_dataset と入力します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Answer Questions │ │ │ │ ← ✓ Dataset Info │ □ Location │ ≡ Review → │ │ │ │ データセット名は何にしますか? │ │ │ │ > my_dataset │ │ │ │ │ │ Enter to submit · Tab/Shift+Tab to switch questions · Esc to cancel │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 続いて、データセットを作成するロケーション(リージョン)を尋ねられます。US や EU といったマルチリージョンに加えて、asia-northeast1(東京リージョン)などの選択肢が提示されます。今回は asia-northeast1 を選択します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Answer Questions │ │ │ │ ← ✓ Dataset Info │ □ Location │ ≡ Review → │ │ │ │ ロケーション(リージョン)はどこにしますか? │ │ │ │ ▲ │ │ 1 . US │ │ US multi-region │ │ 2 . EU │ │ EU multi-region │ │ ● 3 . asia-northeast1 │ │ Tokyo region │ │ ▼ │ │ │ │ Enter to select · ←/→ to switch questions · Esc to cancel │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 入力した情報の確認画面が表示されます。データセット名 my_dataset 、ロケーション asia-northeast1 で問題ないため、そのまま確定します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ Answer Questions │ │ │ │ ← ✓ Dataset Info │ ✓ Location │ ≡ Review → │ │ │ │ Review your answers: │ │ │ │ Dataset Info → my_dataset │ │ Location → asia-northeast1 │ │ │ │ Enter to submit · Tab/Shift+Tab to edit answers · Esc to cancel │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 入力した情報を元に、Gemini CLI が実行すべき gcloud コマンドと bq コマンドが提示されました。ここでは、BigQuery API の有効化( gcloud services enable bigquery.googleapis.com )とデータセット作成( bq mk --dataset --location=asia-northeast1 my_dataset )を 1 行で実行する形になっています。コマンドの実行を承認します。 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ ? Shell gcloud services enable bigquery.googleapis.com && bq mk --dataset --location = asia-northeast1 my_dataset │ │ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ │ │ gcloud services enable bigquery.googleapis.com && bq mk --dataset --location = asia-northeast1 my_dataset │ │ │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ Allow execution of [ gcloud ] ? │ │ │ │ ● 1 . Allow once │ │ 2 . Allow for this session │ │ 3 . No, suggest changes ( esc ) │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ コマンドが実行され、BigQuery のデータセットが作成されました。Gemini CLI から、データセットの作成完了と次のステップの提案が返ってきます。 ✦ BigQuery のデータセット my_dataset を asia-northeast1(東京)リージョンに作成しました。 次のステップとして、テーブルの作成やデータのインポートなど、お手伝いできることはありますか? このように、Agent Skills の仕様に準拠したスキルは、AI エージェントツールが認識できる場所に配置されていれば、ユーザーがスキルを意識して呼び出すことなく、ユーザーのプロンプトに応じて自動的に起動します。「Discovery」「Activation」「Execution」の 3 段階を経て動作する progressive disclosure の仕組みが、Gemini CLI で実際に動作していることが確認できました。 福井 達也 (記事一覧) カスタマーサクセス課 エンジニア 2024年2月 G-gen JOIN 元はアプリケーションエンジニア(インフラはAWS)として、PM/PL・上流工程を担当。G-genのGoogle Cloudへの熱量、Google Cloudの魅力を味わいながら日々精進
G-gen の佐々木です。当記事では、単一の API 呼び出しでマネージドな自律エージェントを構築・実行できるサービスである Managed Agents API on Agent Platform について解説します。 概要 Agent Platform とは Managed Agents API on Agent Platform とは プレビュー段階での注意点 他のエージェント構築手段との比較 Managed Agents API の基本 2つの API ツールの利用 料金 サンドボックス環境について プリインストール済ソフトウェアと組み込みツール ファイルシステムと永続化 スキルのマウント セキュリティ 利用手順 事前準備 API の有効化 IAM ロールの付与 認証 エージェントの作成 エージェントの呼び出し エージェントの削除 概要 Agent Platform とは Gemini Enterprise Agent Platform (旧称 Vertex AI、以下 Agent Platform と記載)は、Google Cloud が提供する生成 AI とエージェントの開発・運用プラットフォームです。基盤モデルの API 提供、エージェントの開発フレームワーク、デプロイ基盤、評価・モニタリング・ガバナンスなどの運用機能を統合的に提供します。 Agent Platform の全体像や提供機能の詳細は、以下の記事で解説しています。 blog.g-gen.co.jp Managed Agents API on Agent Platform とは Managed Agents API on Agent Platform (以下 Managed Agents API と記載)は Agent Platform の機能の1つで、単一の API 呼び出しで自律的なエージェントを構築・実行できるマネージドサービスです。2026年5月現在はプレビュー提供です。 エージェントは Antigravity ハーネス を搭載しており、隔離された Linux サンドボックス内で以下の操作を行います。 推論と計画 Python コードの実行 bash コマンドの実行 ファイルの読み書き Web 検索によるグラウンディング MCP サーバー経由での外部システム連携 Antigravity ハーネスは、Google I/O 2026 で発表された Antigravity プラットフォームの中核をなすエージェント実行基盤で、Gemini 3.5 Flash と協調するよう最適化されています。Google 自社のエージェント製品も同じハーネスを搭載しており、Managed Agents API はこれを Google Cloud から API 経由で利用できるようにしたサービスです。 Managed Agents API は REST API および Python SDK(Google Gen AI SDK)から利用できます。2026年5月現在の対応リージョンは global のみです。 参考 : Agent Platform の Managed Agents API の概要 参考 : I/O 2026: Antigravity 2.0 と新しい Gemini のエージェントツール プレビュー段階での注意点 2026年5月現在はプレビュー提供のため、本番採用にあたっては以下の制約に留意が必要です。 プレビュー期間中のサービス利用規約が適用される 機密データの投入は推奨されない API 仕様は変更される可能性がある 2026年5月現在の以下の公式ドキュメントの冒頭部分には「これらの pre-GA プロダクトは、内部テストとレビューのさまざまな段階にあります。そのため、これらのプロダクトで機密データやその他の機密データを使用しないでください 。これらのプロダクトは、限定的なテストと評価のみを目的としてお客様にご提供するものであり、商用目的や本番環境での使用はできません。」と明記されていることから、この点には十分留意する必要があると考えられます。 参考 : Agent Platform の Managed Agents API の概要 なおプレビュー提供されている Google Cloud サービスの考え方については、以下の記事も参照してください。 参考 : Preview版のサービスを使うとはどういうことなのか 他のエージェント構築手段との比較 Google Cloud 上でエージェントを構築する手段は Managed Agents API のほかにも存在します。Managed Agents API は、ノーコードでの構築とフルコード開発の中間に位置するサービスです。 エージェント構築手段 抽象度 カスタマイズ性 主な利用者 Gemini Enterprise のノーコードエージェント構築 高 低(プリセットの設定) 業務ユーザー Managed Agents API 中 中(API でハーネスの動作を設定) アプリケーション開発者 Agent Development Kit(ADK) 低 高(コードで自由に記述) エージェント開発者 Managed Agents API の基本 2つの API Managed Agents API は以下の2つの API で構成されます。 API 役割 Agents API (コントロールプレーン) エージェント設定(以下、例)の作成・取得・更新 ・システム指示 ・ツール ・ネットワーク許可 ・マウントするファイル Interactions API (データプレーン) デプロイ済みエージェントへのリクエスト(以下、例) ・マルチターン会話 ・ストリーミング応答 まず Agents API を使用してエージェントを定義し、以降は Interactions API の呼び出しを通じて会話を行うのが基本的な流れです。 ツールの利用 Managed Agents API では、エージェントが利用できるツールを定義できます。たとえば以下のようなツールをアタッチできます。 ツール 機能 code_execution Python コードの実行 filesystem サンドボックス内のファイル操作 google_search Web 検索によるグラウンディング url_context 指定 URL からのコンテンツ抽出 mcp_server MCP サーバーへの接続 ツールは Agents API でエージェント設定に永続的に紐づける方法と、Interactions API のリクエスト単位でオーバーライドする方法のどちらでも指定できます。リクエスト単位で tools を渡した場合、そのターンではエージェント設定側のツール定義は無視され、リクエスト側のツール指定のみが有効になります。 料金 Managed Agents API では、エージェントが使用するモデル使用料が Agent Platform の標準レートで課金されます。 Managed Agents API 自体の料金については、2026年5月現在、公式ドキュメントに記載されていません。 参考 : Gemini Enterprise Agent Platform 料金 サンドボックス環境について プリインストール済ソフトウェアと組み込みツール サンドボックスには以下のソフトウェアがプリインストールされています。 種別 ソフトウェア UNIX コマンド bc 、 curl 、 fd-find 、 gawk 、 gcloud 、 git 、 htop 、 iproute2 、 jq 、 lsof 、 procps 、 ripgrep 、 rsync 、 tree 、 unzip 、 wget 、 which Python 3.11 ast-grep-cli 、 beautifulsoup4 、 google-genai 、 numpy 、 pandas 、 pyyaml 、 requests Node.js 20 create-next-app 、 create-vite 、 typescript 外部ネットワーク接続が許可されているサンドボックスでは、 pip install や npm install で上記以外のパッケージを追加することもできます。 加えて、以下のツールは設定不要で常時利用できる「組み込みツール」です。前述「ツールの利用」のアタッチ式ツールとは別カテゴリで、 tools への指定なしに呼び出せます。 ツール 機能 bash サンドボックスでのシェルコマンド実行 file_system ファイルの読み書き・削除、ディレクトリの一覧表示 最新情報については以下の公式ドキュメントを確認してください。 参考 : Managed Agents API on Agent Platform sandbox environment - プリインストールされているソフトウェア ファイルシステムと永続化 サンドボックスのファイルシステムは会話をまたいで永続化されます。TTL は7日で、新しいインタラクションが発生するたびに TTL がリセットされます。エージェント設定自体は API で明示的に削除するまで永続的に保持されます。複数のエージェントで同じサンドボックスを共有するには、リクエスト時に同じ environment_id を渡します。 外部ネットワーク接続が許可されているサンドボックスでは、 pip install や npm install でインストールしたパッケージも環境スナップショットに保持され、同じ environment_id を再利用するインタラクションで引き続き利用可能です。 スキルのマウント エージェントが実行されるサンドボックス内のパスに対して、Cloud Storage バケットや Skill Registry に登録してある再利用可能なスキルをマウントできます。 リソース 説明 gcs Cloud Storage バケットに配置したスキルフォルダからカスタムスキルを追加する skill_registry Skill Registry に登録済みのスキルを追加する 参考 : エージェントの作成と管理 - エージェントにスキルを割り当てる 参考 : Managed Agents API on Agent Platform sandbox environment - スキル マウント アーキテクチャ セキュリティ サンドボックスでは、実行プロセス・マウント・外部接続のそれぞれにセキュリティ制限が組み込まれています。 対象 セキュリティ制限 サンドボックスプロセス 管理者権限を持たない一般ユーザーとして起動される 外部ネットワーク接続 デフォルトで無効。許可リストで指定したドメインへのアクセスのみ許可 Cloud Storage や Skill Registry のマウント 指定したディレクトリまたはスキルのみアクセスできるダウンスコープトークンで行われる MCP サーバーの認証ヘッダー 定義した MCP エンドポイントへのアクセス時にだけ送信される 外部ネットワーク接続の許可ドメインは、エージェントの定義で以下のように列挙します。 " network ": { " allowlist ": [ { " domain ": " example.com " } , { " domain ": " * " } ] } "*" を指定すると全ドメインへのアクセスが許可されますが、セキュリティ上、許可範囲はできるだけ狭く絞ることが推奨されます。 参考 : Managed Agents API on Agent Platform sandbox environment - サンドボックスの権限とセキュリティ 利用手順 事前準備 API の有効化 Agent Platform の API を有効化します。プロジェクト ID は適宜置き換えてください。 # API を有効化 $ gcloud services enable aiplatform.googleapis.com --project =< プロジェクトID > IAM ロールの付与 API を呼び出すユーザーまたはサービスアカウントに、以下のいずれかの IAM ロールを付与します。 Vertex AI ユーザー( roles/aiplatform.user ) Vertex AI 管理者( roles/aiplatform.admin ) 認証 REST API の呼び出しには、Bearer トークンとして gcloud で取得したアクセストークンを使用します。事前に gcloud auth login でログインを済ませておきます。 # gcloud で認証 $ gcloud auth login アクセストークンは gcloud auth print-access-token で取得できます。以降の例では $(gcloud auth print-access-token) の形でリクエスト時にその場で取得します。 エージェントの作成 「数値計算を Python コードで解いて答えるエージェント」を作成します。Agents API のエンドポイント POST /agents にリクエストを送信します。プロジェクト ID は適宜置き換えてください。 # エージェントの作成 $ curl -X POST \ " https://aiplatform.googleapis.com/v1beta1/projects/<プロジェクトID>/locations/global/agents " \ -H " Authorization: Bearer $( gcloud auth print-access-token ) " \ -H " Content-Type: application/json " \ -d ' { "id": "hello-agent", "base_agent": "antigravity-preview-05-2026", "description": "数値計算を Python コードで解いて答えるサンプルエージェント", "system_instruction": "あなたは数値計算のアシスタントです。ユーザーから与えられた計算は必ず Python コードを実行して解き、コードと結果の両方を日本語で示してください。", "tools": [ {"type": "code_execution"}, {"type": "filesystem"} ] } ' 参考 : エージェントの作成と管理 - エージェントを作成する エージェントの呼び出し 作成したエージェントを Interactions API で呼び出します。 POST /interactions にリクエストを送信します。Interactions API には Api-Revision ヘッダーが必須です。 # エージェントの呼び出し $ curl -X POST \ " https://aiplatform.googleapis.com/v1beta1/projects/<プロジェクトID>/locations/global/interactions " \ -H " Authorization: Bearer $( gcloud auth print-access-token ) " \ -H " Content-Type: application/json " \ -H " Api-Revision: 2026-05-20 " \ -d ' { "stream": true, "background": true, "store": true, "agent": "hello-agent", "environment": {"type": "remote"}, "input": [ { "type": "user_input", "content": [ {"type": "text", "text": "1から100までの整数のうち、3の倍数の合計はいくつですか。"} ] } ] } ' 新しいサンドボックスが払い出され、エージェントが Python コードを生成・実行し、結果を返します。 "stream": true を指定しているため、レスポンスは Server-Sent Events(SSE)形式で逐次到着します。 event: interaction.created data: { " interaction " : { " id " : " ChBhNTAxNGNmOWJmN2Q1M2Y5EAgaAzAwMSoEbWFpbg " , " status " : " in_progress " , " object " : " interaction " } , " event_type " : " interaction.created " } event: interaction.status_update data: { " interaction_id " : " ChBhNTAxNGNmOWJmN2Q1M2Y5EAgaAzAwMSoEbWFpbg " , " status " : " in_progress " , " event_type " : " interaction.status_update " } event: step. start data: { " index " :0, " step " : { " id " : " bbe14e24-ac0b-4898-87b2-ab44efb71763 " , " type " : " function_call " , " name " : " run_command " , " arguments " : {}} , " event_type " : " step.start " } event: step.delta data: { " index " :0, " delta " : { " arguments " : " { \" CommandLine \" : \" python3 -c \\\" print(sum(i for i in range(1, 101) if i % 3 == 0)) \\\"\" , \" Cwd \" : \" /workspace \" , \" explanation \" : \" Calculate the sum of multiples of 3 between 1 and 100 using python3. \" , \" WaitMsBeforeAsync \" :5000, \" toolSummary \" : \" Run Python command \" , \" toolAction \" : \" Running Python script \" } " , " type " : " arguments_delta " } , " event_type " : " step.delta " } event: step. stop data: { " index " :0, " event_type " : " step.stop " } event: step. start data: { " index " :1, " step " : { " call_id " : " bbe14e24-ac0b-4898-87b2-ab44efb71763 " , " signature " : "" , " type " : " function_result " , " name " : " run_command " } , " event_type " : " step.start " } event: step.delta data: { " index " :1, " delta " : { " name " : " run_command " , " is_error " :false, " type " : " function_result " , " result " : { " ExitCode " :0, " Output " : " [STDOUT] \n 1683 \n\n\n [STDERR] \n " }} , " event_type " : " step.delta " } event: step. stop data: { " index " :1, " event_type " : " step.stop " } event: step. start data: { " index " :2, " step " : { " type " : " model_output " } , " event_type " : " step.start " } event: step.delta data: { " index " :2, " delta " : { " text " : " 1から100までの整数のうち、3の倍数の合計を求めるためのPythonコードと計算 " , " type " : " text " } , " event_type " : " step.delta " } event: step.delta data: { " index " :2, " delta " : { " text " : " 結果は以下の通りです。 \n\n ### Pythonコード \n\n```python\n # 1から100までの整数のうち、","type":"text"},"event_type":"step.delta"} event: step.delta data: { " index " :2, " delta " :{ " text " : " 3の倍数の合計を計算します \n total_sum = sum(i for i in range(1, 10 " , " type " : " text " }, " event_type " : " step.delta " } event: step.delta data: { " index " :2, " delta " :{ " text " : " 1) if i % 3 == 0) \n print(total_sum) \n```\n\n ### 計算結果\n\n**","type":"text"},"event_type":"step.delta"} event: step.delta data: { " index " :2, " delta " :{ " text " : " 1683** \n\n --- \n **作業サマリー**: \n - 1から100までの範囲 " , " type " : " text " }, " event_type " : " step.delta " } event: step.delta data: { " index " :2, " delta " :{ " text " : " で3の倍数を抽出し、その合計を計算するPythonコードを実行しました。 \n - 計算の結果、合計 " , " type " : " text " }, " event_type " : " step.delta " } event: step.delta data: { " index " :2, " delta " :{ " text " : " は **1683** になることを確認しました。 " , " type " : " text " }, " event_type " : " step.delta " } event: step. stop data: { " index " :2, " event_type " : " step.stop " } event: interaction.completed data: { " interaction " :{ " id " : " ChBhNTAxNGNmOWJmN2Q1M2Y5EAgaAzAwMSoEbWFpbg " , " status " : " completed " , " usage " :{ " total_tokens " :15326, " total_input_tokens " :13786, " input_tokens_by_modality " : [ { " modality " : " text " , " tokens " :13786 } ] , " total_output_tokens " :309, " output_tokens_by_modality " : [ { " modality " : " text " , " tokens " :309 } ] , " total_thought_tokens " :1231}, " created " : " 2026-05-24T13:56:20Z " , " updated " : " 2026-05-24T13:56:20Z " , " environment_id " : " env_CAEQgICAgIDQ_PE1GiA1M2FhMTMzM2NlYjc0NDRmYjAwMTFmNzFkYzY1NDNlNA " , " object " : " interaction " }, " event_type " : " interaction.completed " } event: done data: [ DONE ] 各ステップは step.start / step.delta / step.stop のイベントで区切られ、 function_call (コマンド実行)、 function_result (実行結果)、 model_output (モデル応答)が順次ストリーミングされます。 最終イベント interaction.completed には interaction.id 、 environment_id 、消費トークン数( usage )が含まれます。次回リクエストで previous_interaction_id に interaction.id を、 environment に environment_id を渡すと、マルチターン会話とサンドボックスを引き継げます。 なお、エージェント作成直後は Interactions API のリクエスト時に以下のレスポンスが返ることがあります。作成リクエストから Interactions API でエージェントが解決可能になるまでに時間差があるため、このエラーが返った場合は数十秒ほど待ってから再送してください。 { " error ": { " message ":" Result not found. "," code ":" not_found " }} 参考 : エージェントを操作する エージェントの削除 最後にエージェント設定を削除します。 DELETE /agents/{AGENT_ID} により、サンドボックスとエージェント設定がまとめて破棄されます。 # エージェントの削除 $ curl -X DELETE \ " https://aiplatform.googleapis.com/v1beta1/projects/<プロジェクトID>/locations/global/agents/hello-agent " \ -H " Authorization: Bearer $( gcloud auth print-access-token ) " 参考 : エージェントの作成と管理 - エージェントを削除する 佐々木 駿太 (記事一覧) G-gen 最北端、北海道在住のクラウドソリューション部エンジニア 2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。 Follow @sasashun0805
G-gen の西田です。当記事では、Google Workspace の共有ドライブのデータに対する操作に対して必要なアクセス権について解説します。 共有ドライブのアクセス権の仕組み 共有ドライブの最上位レベルでのアクセス権付与 個別ファイルでのアクセス権付与 外部への共有 データの移動 共有ドライブのアクセス権の仕組み 共有ドライブ は Google ドライブの機能であり、チームでファイルを保存、検索、アクセスすることができます。 アクセス権は「 共有ドライブの最上位レベル 」、「 フォルダごと 」、「 ファイルごと 」にそれぞれ付与することができ、付与されたアクセス権によって実行できる操作が異なります。 「共有ドライブの最上位レベル」に権限を付与した場合、その権限は配下のすべてのフォルダやファイルに 継承 されます。そのうえで「フォルダごと」または「ファイルごと」に個別に追加の権限を付与することもできます。 アクセス権は個々のユーザー(Google アカウント)またはグループに割り当てることができます。異動や退職に少ない運用工数で対応できるよう、権限は グループに付与することが望ましい とされます。 共有ドライブの概要および制限事項などについては、以下のドキュメントを参照してください。 参考 : 共有ドライブとは 参考 : Google ドライブにおける共有ドライブの制限 共有ドライブの最上位レベルでのアクセス権付与 共有ドライブ自体(共有ドライブの最上位レベル)において、 メンバー (Google アカウントやグループ)に対する アクセス権 を付与することで、メンバーは共有ドライブ内のファイルやフォルダを操作することができるようになります。アクセス権には以下があります。 管理者 コンテンツ管理者 投稿者 閲覧者(コメント可) 閲覧者 なお、共有ドライブの最上位レベルでアクセス権の追加や削除ができるのは、共有ドライブに 管理者 権限を持つメンバーのみです。 ファイルやフォルダに対する基本的な操作とそれに必要なアクセス権は、以下の表の通りです。 操作\アクセス権 管理者 コンテンツ管理者 投稿者 閲覧者 (コメント可) 閲覧者 閲覧 ◯ ◯ ◯ ◯ ◯ 作成 ◯ ◯ ◯ (※) 編集 ◯ ◯ ◯ (※) 削除 ◯ ◯ 復元 ◯ ◯ ◯ 共有ドライブ内にファイルやフォルダを作成したり、編集したりするには 投稿者以上 の権限が必要です。また、削除には コンテンツ管理者以上 の権限が必要です。 仕様上の制約として、パソコン版 Google ドライブでは、投稿者によるファイルの追加や編集はできません。 パソコン版 Google ドライブ または Chrome OS ファイル アプリ内のファイルに対しては、[投稿者] のアクセス権はファイルに対する読み取りのみのアクセスになります。パソコン版 Google ドライブ や Chrome OS の共有ドライブ内でユーザーがファイルを作成、アップロード、編集できるようにするには、ユーザーに [コンテンツ管理者] または [管理者] 権限を付与します。 参考 : 共有ドライブのファイルへのアクセスの仕組み 参考 : パソコン版 Google ドライブを使用する 個別ファイルでのアクセス権付与 共有ドライブの最上位レベルにおいて適切なアクセス権を持っていれば、共有ドライブ配下の個々のファイルやフォルダに対して、 共有ドライブのメンバーでない人にもアクセス権を付与 できます。 なお、ファイルやフォルダに個別のアクセス権を付与することを指して、ドキュメント上や UI 上では「 共有する 」等と表現されることがあります。 ユーザーが共有ドライブの最上位レベルでどのアクセス権を持っているかによって、共有可能な対象が異なります。 権限付与対象\アクセス権 管理者 コンテンツ管理者 投稿者 閲覧者 (コメント可) 閲覧者 フォルダ (※1) ◯ ◯ (※2) ファイル (※1) ◯ ◯ ◯ ※1 : ユーザーによるアクセス付与は、共有ドライブの設定で「共有ドライブのメンバー以外のユーザーにファイルへのアクセスを許可する」が有効な場合に限ります。 ※2 : コンテンツ管理者がフォルダに対してアクセスを付与する操作も、共有ドライブの設定で「コンテンツ管理者にフォルダの共有が許可する」が有効な場合に限ります。 参考 : 共有ドライブのファイルへのアクセスの仕組み 外部への共有 ファイルやフォルダは、異なるドメイン(別の組織)の Google Workspace ユーザーやグループに対しても共有できます。しかし共有する情報によっては、それがセキュリティ面で望ましくない場合もあります。 ドメイン外のユーザーへアクセス権が付与されることを制御する方法については、以下の記事を参照してください。 blog.g-gen.co.jp また、ファイルやフォルダはインターネットに公開することもできます。これは共有リンクを知っていれば誰でもアクセスできる状態であることを意味し、多くの場合でセキュリティ上、望ましくありません。 ファイルやフォルダのインターネット公開を防ぐ方法については、以下の記事を参照してください。 blog.g-gen.co.jp データの移動 共有ドライブの ファイルやフォルダ移動の操作 に必要な権限は、以下の図と表の通りです。移動できる対象(ファイルかフォルダ)や対象の移動先、移動元はユーザーが持つアクセス権によって異なります。 操作 対象 管理者 コンテンツ管理者 投稿者 ①異なる共有ドライブ間の移動 フォルダ, ファイル ◯ ②共有ドライブ→マイドライブに移動 フォルダ, ファイル ◯ ③マイドライブ→共有ドライブに移動 フォルダ ◯ ファイル ◯ ◯ ◯ ④単一の共有ドライブ内での移動 フォルダ, ファイル ◯ ◯ 移動操作における詳細は、以下の記事で解説しています。 blog.g-gen.co.jp 西田 匡志 (記事一覧) クラウドソリューション部 美容商社→物流→情シスを経て、2025年6月G-genにジョイン。Google Cloud を通じて多くの人に貢献できるよう日々精進!
G-genの菊池です。Looker におけるデータモデリングにおいて、複雑な分析や集計を効率化する 派生テーブル (Derived Tables)について、その機能分類と選定の基準を解説します。 Looker の派生テーブルとは 定義方法による分類 概要 ネイティブ派生テーブル SQL ベースの派生テーブル データの保持方法による分類 概要 一時的な派生テーブル 永続的な派生テーブル(PDT) 永続性戦略 概要 トリガーベースの戦略 保存期間ベースの戦略 データベースが管理する戦略(マテリアライズドビュー) 増分 PDT 概要 利用するための必須条件 Looker 派生テーブルの選定基準 概要 定義方法の選定基準 データの保持方法の選定基準 PDT の永続性戦略や増分 PDT の選定基準 Looker の派生テーブルとは Looker の 派生テーブル とは、LookML 内で定義したクエリ結果を、データベース内の実際のテーブルのように使用できるようにする機能です。 派生テーブルを使用することで、複数の種類のデータを事前結合したり大量のデータを集計したりした結果を、あたかも1つのテーブルであるかのように扱うことができます。 例えば、顧客が行った注文の数や初回注文日時など、顧客ごとの集計値を事前に計算した派生テーブルを作成することで、データベース内の他のテーブルと同じようにデータ探索ができます。 参考 : Lookerの派生テーブル 定義方法による分類 概要 派生テーブルは定義に方法に応じて「ネイティブ派生テーブル」「SQL ベースの派生テーブル」に分類することができます。 参考 : Lookerの派生テーブル - ネイティブ派生テーブルとSQLベースの派生テーブル ネイティブ派生テーブル ネイティブ派生テーブル は、LookML を使用して定義される派生テーブルです。既存の Explore (エクスプローラ)の定義を再利用して作成します。 ネイティブ派生テーブルの大きなメリットとして、まずデータモデルの可読性と保守性が向上します。ネイティブ派生テーブルは、LookML 内ですでに定義されているディメンションやメジャーを参照して定義されます。そのため、SQL を直接記述するアプローチと比較して、データをモデル化するときの読みやすさと理解しやすさが向上します。 また、コードを記述する手間を大幅に削減できるという利点があります。Looker の Explore 機能の画面上で派生テーブルとして表示したいデータの形を整えた後、そこからネイティブ派生テーブル用の LookML を自動生成してコピーできるため、一から手動でコードを記述する手間を省くことができます。 Explore 機能で表示データ作成 ネイティブ派生テーブルの LookML を取得 さらに、フィルタ機能の簡単な適用とシームレスな連携が可能です。豊富なフィルタ機能をLookMLの構文で直接適用できることに加え、 bind_filters や bind_all_filters といった機能を使用することで、元の Explore でユーザーが設定した日付などのフィルタ条件を、派生テーブル側のクエリにも簡単に連携させることができます。 ネイティブ派生テーブルの注意点として、ネイティブ派生テーブルは LookML の構文に依存しているため、複数ステップの処理を必要とする SQL 構文やカスタム DDL(データ定義言語)が必要なケースには対応できません。 さらに、既存の LookML モデルへの依存度が高い点も挙げられます。ネイティブ派生テーブルは既存の Explore(エクスプローラ)の定義をベースに構築されるため、参照したいテーブルや結合関係が LookML 上にまだ定義されていない場合は、まずその基礎となるデータモデリングから始める必要があります。 SQL ベースの派生テーブル SQL ベースの派生テーブル は、標準的な SQL クエリを直接記述して定義する派生テーブルです。 SQL ベースの派生テーブルの大きなメリットとして、まず既存の SQL 資産を手軽に流用できる点が挙げられます。Looker の「SQL Runner」機能で作成・テストした SQL クエリを、そのまま派生テーブルの定義へと簡単に変換できるショートカット機能が用意されています。これにより、すでに動作確認済みの SQL や、データアナリストが書き慣れた SQL クエリを素早く Looker のデータモデルに組み込むことができます。 SQL Runner 機能で SQL クエリ作成 SQL ベース派生テーブルの LookML を取得 また、ネイティブ派生テーブル(LookML)では表現が難しい、高度で複雑な処理を実現できる点も重要な強みです。単一の SQL ステートメントでテーブルを作成できず複数ステップの処理が必要な環境や、BigQuery ML のようなデータベース固有のカスタム DDL コマンドを実行したいといった、極めて高い柔軟性が求められるケースに対応できます。 ただし、保守性や運用面においては注意が必要です。SQL ベースの派生テーブルは、基盤となるデータベースのスキーマで列の追加や削除などがされた際、エラーを防ぐために手動で SQL の記述を修正しなければなりません。そのため、基本的には可読性やメンテナンス性が高いネイティブ派生テーブルの利用を第一に検討し、どうしても SQL の直接記述や特殊な機能が必要な場面に限って SQL ベースの派生テーブルを採用することが推奨されます。 データの保持方法による分類 概要 派生テーブルは「ネイティブ派生テーブル」「SQL ベースの派生テーブル」という分類のほかに、データの保持方法に応じて「一時的な派生テーブル」「永続的な派生テーブル(PDT)」にも分類できます。 それぞれの組み合わせで、4種類の派生テーブルがあり得ることになります。 参考 : Lookerの派生テーブル - 一時的な派生テーブルと永続的な派生テーブル 一時的な派生テーブル 一時的な派生テーブル は、データベースに物理的なテーブルとして書き込まれない派生テーブルです。 ユーザーが Explore などでデータをリクエストするたびに、Looker が派生テーブルの定義を使用して SQL クエリを構成し、都度データベースに対して新しいクエリを実行します。 ただし、有効なキャッシュが存在する場合はそれが使用されます。 データベースに実際のテーブルを作成しないため、Looker 用の書き込み権限や専用のスキーマを事前に準備する必要がありません。 また、リクエストのたびにクエリが実行されるため、常にベースとなるテーブルの最新のデータ状態を反映した結果を得ることができます。そのため、一時的な派生テーブルは、常に最新データを取得したい場合や、実行速度が速くデータベースに過度な負荷をかけない軽量なクエリに向いています。 一方で、クエリの実行に長時間を要する重い処理の場合は、パフォーマンスの低下を避けるために永続的な派生テーブル(PDT)を使用します。 永続的な派生テーブル(PDT) 永続的な派生テーブル (Persistent Derived Tables、略称 PDT)は、定義されたクエリの実行結果をデータベース上の スクラッチスキーマ (書き込み用の一時スキーマ)に実際のテーブルとして書き込み、指定したスケジュール(永続性戦略)に基づいて再構築する派生テーブルです。 一時的な派生テーブルがクエリのたびに都度計算されるのに対し、PDT は計算済みのデータをデータベース内に保持する仕組みを持っています。 PDT の最大のメリットは、頻繁に実行されるクエリの結果を保持することで、実行速度を向上させ、データベースへの負荷を大幅に削減できる点です。 特に、大量のデータや複数種類のデータを扱う場合(例:初回注文日を基準に顧客をコホート別に分類するなど)に有効で、リアルタイムで実行すると重い処理を事前に1度だけ計算し、その結果を PDT として再利用できます。 さらに、開発を効率化できる点も魅力です。データベース管理者(DBA)のサポートがなくても、Looker 上でインデックスやソートキーなどの最適化オプションを自らテストし、パフォーマンスの向上を確認してから DBA に本番環境への適用を依頼することができます。 永続性戦略 概要 永続性戦略 とは、永続的な派生テーブル(PDT)の再構築タイミングを決める設定のことです。PDT はデータベース上に実テーブルとして書き込まれることになるため、データを最新化するタイミングが重要になります。 特定の値が変化したことなどを検知するトリガーベースの戦略、時間経過をきっかけとする保存期間ベースの戦略、データベースが管理する戦略(マテリアライズドビュー)があります。 参考 : Lookerの派生テーブル - 永続性戦略 トリガーベースの戦略 データグループ( datagroups )を使用する、最も推奨される戦略です。 データベースの特定の値を監視する SQL クエリ( sql_trigger )を定義し、その値が変化したとき(例として ETL 処理の完了を示すフラグが立ったとき)に PDT を再構築します。これにより、ソースデータの更新に合わせて効率的にテーブルを更新できます。 保存期間ベースの戦略 persist_for パラメータを使用して、PDT を保持する時間を指定します。 指定した時間が経過した後にクエリが実行されると、PDT が再構築されます。厳密な更新タイミングを必要としない場合や、設定の簡略化を優先する場合に使用します。 データベースが管理する戦略(マテリアライズドビュー) Google Cloud の BigQuery など、データベース側の マテリアライズドビュー 機能を利用する戦略です。 LookML で materialized_view: yes を指定することで、Looker の PDT 管理ロジックではなく、データベース側の自動更新ロジックに委ねることができます。 増分 PDT 概要 増分 PDT (Incremental PDTs)は、PDT をすべて作り直すのではなく、新しく追加されたデータのみを既存のテーブルに追加する機能です。 通常の PDT は再構築のたびにテーブル全体を削除して作成し直しますが、増分 PDT では increment_key (日付やタイムスタンプなど)を基準に、新しいデータのみを取得して追加します。 これにより、テーブルの再構築にかかる時間とデータベースのリソース消費を大幅に削減できます。 参考 : 増分 PDT 利用するための必須条件 増分 PDT を導入する際には、システム上必須となる条件(必須条件)と、パフォーマンスに影響する推奨条件の2つがあります。 まず、増分 PDT を有効にするための必須条件について説明します。 増分 PDT は、再構築のタイミングを制御する「永続性戦略」において、必ずトリガーベースの戦略を採用していなければなりません。保存期間をベースとする戦略では、Looker の仕様上サポートされていないためです。 また、新しいデータの追加範囲を Looker に認識させるため、照会期間を定義する increment_key パラメータの設定が不可欠です(SQL ベースの場合はさらに Liquid フィルタの追加も必要になります)。 加えて、派生テーブルの定義方法にも制約があります。SQL ベースで定義する場合、必ず標準の sql パラメータを使用する必要があります。複雑なカスタム DDL ステートメント( sql_create など)を利用すると、Looker が正確な増分作成に必要なコマンドを判別できなくなり、構築に失敗してしまうためです。 また、制約として、接続先のデータベース自体が増分更新に必要な操作に対応している(行の削除や挿入を行う DDL コマンドをサポートしている)必要があります。これらを一つでも満たしていない場合、増分 PDT という機能を利用することができません。 一方、システム的な必須条件ではないものの、実運用において強く求められる推奨条件が存在します。 それは、元のソーステーブルに対して、時間ベースのクエリに向けた最適化(パーティショニングやインデックス、並べ替えキーの付与など)を施しておくことです。 増分 PDT はテーブルを更新するたびに、まずソーステーブルに対してクエリを実行し、増分キーの「最新値」を調べるという仕様になっています。もしソーステーブルが最適化されていないと、この最新値を探し出す処理そのものに膨大な時間とコストがかかってしまいます。つまり、この条件を満たしていなくても増分 PDT を構築すること自体は可能ですが、構築時間を短縮するという本来のメリットが失われ、かえって非効率になってしまうため、事前の最適化が強く推奨されています。 Looker 派生テーブルの選定基準 概要 基本的には、メンテナンス性の高いネイティブ派生テーブルかつ、データベースに負荷をかけない一時的な派生テーブルから構築を始めるのが第一選択です。 その後、クエリの重さに応じて一時的なテーブルを使うか、PDT を使うか検討します。 さらにデータ量が多く再構築コストが高ければ全体の再構築を伴う PDT ではなく、増分 PDT を使用することを判断します。 このように、パフォーマンス要件に合わせて最適な設定を選択するのが、Looker の派生テーブルのベストプラクティスです。 詳細を、以下に記載します。 定義方法の選定基準 派生テーブルのクエリをどのように記述するかによる分類です。基本的にはメンテナンス性の高いネイティブ派生テーブルを第一選択とします。 分類 定義 有用なケース 向いていないケース ネイティブ派生テーブル LookML (Explore やフィールド参照)を使用して定義する派生テーブル 既存の LookML 指標を再利用したい場合。データモデルの読みやすさと理解しやすさ(保守性)を高めたい場合 単一のSQLで完結しない処理やカスタムDDLが必要な場合など、特殊なSQL構文を要するケース SQL ベースの派生テーブル 標準的な SQL クエリを直接記述して定義する派生テーブル LookMLだけでは表現が難しい特殊な処理や複数ステップの処理が必要な場合。SQL Runner でテスト済みのクエリをそのまま流用したい場合 スキーマ変更の影響を受けやすいため、保守性を重視する場合。既存の LookML 指標を参照したい場合 データの保持方法の選定基準 クエリ結果をデータベースに物理的に保存するかどうかの分類です。絶対に不可欠になるまでは一時的な派生テーブルを使用し、パフォーマンス要件に応じて PDT 化を検討するのがベストプラクティスです。 分類 定義 有用なケース 向いていないケース 一時的な派生テーブル リクエストのたびにデータベースで都度クエリが実行され、物理的に保存されない派生テーブル 実行速度が速くデータベースへの負荷が低いクエリの場合。常に最新のデータ状態を反映した結果を得たい場合。データベースが読み取り専用の環境である場合 クエリの実行に長時間を要する重い処理や、頻繁に実行される複雑な事前集計の場合 永続的な派生テーブル(PDT) クエリの結果をデータベースの専用スキーマに実際のテーブルとして書き込み、保持する派生テーブル 大量のデータの事前結合や集計が必要な重い処理を1度だけ計算し、結果を再利用してパフォーマンスを向上させたい場合 パフォーマンス上の問題がなく常に最新のデータが必要な場合。ストレージやリソースコストの消費が許容できない場合 PDT の永続性戦略や増分 PDT の選定基準 PDT を使用する場合、永続性戦略や(再構築のタイミング)や増分 PDT を使用するか否かも選定する必要があります。 分類(戦略・種類) 定義 有用なケース 向いていないケース トリガーベースの戦略 指定したデータグループや時間間隔等に基づき自動的に再構築する戦略 複雑な重い処理で、ユーザーにクエリ完了の待機時間を発生させたくない場合(構築中も古いデータを返すため) ユーザー属性やテンプレートフィルタを使用するクエリ(サポート対象外) 保存期間ベースの戦略 最初にクエリを実行したタイミングで構築され、指定期間保持された後に削除される戦略 常に最新である必要はなく、一定期間結果を保持して再利用できれば十分な場合 期限切れ後にクエリを実行するユーザーに待機時間を発生させたくない場合。増分 PDT を利用したい場合 データベース管理 (マテリアライズドビュー) データベース側のマテリアライズドビュー機能を利用してテーブル更新を管理する戦略 データベース側で新しいデータが検出されるたびに更新されるため、リアルタイムなデータが必要なシナリオ データベース側が非対応な場合。マテリアライズドビューに関する高度な知識がない環境 増分 PDT 全体を再構築するのではなく、新しいデータ(増分)のみを追加して構築する設定 データ量が膨大で、テーブル全体の初期構築や再構築に大きなコストや時間がかかる場合 ソーステーブルの時間ベースの列がクエリ用に最適化(パーティショニング等)されていない場合。保存期間ベースの戦略を採用している場合 菊池 健太 (記事一覧) 事業開発部クラウドサポート課。2024年7月より、G-genに入社。群馬出身のエンジニア。前職でLookerの使用経験はあるが、Google Cloudは未経験なので現在勉強中。
G-gen の杉村です。当記事では、Google Cloud を管理・運用していくうえで必須となる 課金レポート の基本的な見方について、またコスト分析と対策を効率的に行うためのテクニックについて解説します。 課金レポートとは 課金レポートへのアクセスと権限 概要 請求先アカウントのスコープで閲覧 アクセス権限 アクセス手順 プロジェクトのスコープ アクセス権限 アクセス手順 レポートの基本的な見方 グループ化条件とフィルタ サービス単位での表示の限界 SKU とは グループ条件を SKU に設定する 表示対象の絞り込み その他のコスト分析テクニック 料金スパイクの原因を調査 特に料金が発生しているプロジェクトの特定 異常検知(Anomaly Detection) クレジット(割引)を考慮した分析 想定外の Google AI Studio 利用を発見 想定外のリージョン利用を発見 Tips レポート表示のタイムゾーンは PST レポート表示は約1日遅れ コスト予測の表示 カスタマイズしたレポートを保存・共有 BigQuery エクスポート 課金レポートとは Google Cloud の 課金レポート (請求レポートまたは Billing report とも呼称)は、Google Cloud の利用料金を確認したり、詳細な分析をするための画面です。Google Cloud コンソールで提供されています。 参考 : Analyze billing data and cost trends with Reports 課金レポートは 請求先アカウント ごとに表示できます。Google Cloud 再販パートナー経由で Google Cloud を利用している場合、課金レポートが閲覧できるかどうかはパートナーによりますが、例として株式会社 G-gen の顧客の場合、適切な IAM ロールをもってさえいれば、課金レポートを閲覧できます。 請求先アカウントの概念の詳細については、以下の記事を参照してください。 参考 : Google Cloudの請求の仕組みを徹底解説! - G-gen Tech Blog 課金レポート レポート画面では、期間の指定、サービスのフィルタリング、コストのグルーピングなどが自由に行えます。しかし、各種フィルタの使い方を理解しなければ「どのリソースがコスト高の原因なのか」を正確に突き止めることはできません。 当記事では、課金レポートの基本的な見方と、フィルタやグループ条件を使いこなして課金の状況を深掘りするコツを紹介します。 課金レポートへのアクセスと権限 概要 課金レポートを閲覧する際、レポートの閲覧スコープには2種類あります。 請求先アカウントのスコープで閲覧 プロジェクトのスコープで閲覧 1. は、特定の請求先アカウントに紐づくすべてのプロジェクト等の課金情報を横断して閲覧したり、フィルタリングして閲覧できます。 2. では、自分が管理権限を持っているプロジェクトに対してのみ、課金情報を閲覧できます。それぞれ、手順と必要な権限が異なります。 請求先アカウントのスコープで閲覧 アクセス権限 請求先アカウントのスコープで課金レポートを閲覧するには、操作者アカウントが、該当の請求先アカウントに対して少なくとも「請求先アカウント閲覧者( roles/billing.viewer )」ロールを持っている必要があります。権限が不足している場合、前述のプルダウンリストの中に請求先アカウントが表示されません。 ほかにも「請求先アカウントの費用管理者( roles/billing.costsManager )」ロールや「請求先アカウント管理者( roles/billing.admin )」ロールなどでも構いません。 このような権限を持つことで、ある請求先アカウントに紐づくすべての Google Cloud プロジェクトの請求情報を閲覧できます。 参考 : Analyze billing data and cost trends with Reports ‐ Full billing account permissions 請求先アカウントにロールを付与するには、該当の請求先アカウントに既に「請求先アカウント管理者( roles/billing.admin )」ロールを持っている人に依頼をして、ロールを付与してもらう必要があります。 アクセス手順 以下の手順で、特定の請求先アカウントの課金レポートにアクセスできます。 Google Cloud コンソール( https://console.cloud.google.com/ )にログイン 検索ボックスに「レポート」と入力 サジェストされた「レポート / プロダクト ページ・課金」をクリック プルダウンリストから請求先アカウントを選択 「レポートページに移動」をクリック 3. サジェストされた「レポート / プロダクト ページ・課金」をクリック 4. プルダウンリストから請求先アカウントを選択 / 5. 「レポートページに移動」をクリック なお、もし請求先アカウントの ID( 01230A-12A3B4-AB123C のようにハイフンで区切られた英数字)が分かっている場合には、以下の形式の URL に接続することで、課金レポートにクイックにアクセスできます。 https://console.cloud.google.com/billing/01230A-12A3B4-AB123C/reports プロジェクトのスコープ アクセス権限 プロジェクトのスコープで課金レポートを閲覧するには、該当のプロジェクトに対して、操作者アカウントが以下のいずれかの IAM ロールを持っている必要があります。 オーナー( roles/owner ) 編集者( roles/editor ) 閲覧者( roles/viewer ) Cloud Hub オペレーター( roles/cloudhub.operator ) サポート ユーザー( roles/iam.supportUser ) 上記に加えて、請求先アカウントに対して「プロジェクトの請求費用管理者( roles/billing.projectCostsManager )」ロールを持っていれば、複数のプロジェクトの課金情報を1つの課金レポート上で閲覧できます。つまり、プロジェクト A とプロジェクト B があり、どちらも請求先アカウント A に紐づいているとき、ある操作者が両方のプロジェクトに閲覧者ロールを持ち、かつ請求先アカウント A に「プロジェクトの請求費用管理者」ロールを持っていれば、1つの課金レポートでこれらのプロジェクトの課金を両方見ることができます。 このような権限設定は、「ある請求先アカウントに紐づくすべてのプロジェクトの課金情報を見せたいわけではない」「しかし、複数のプロジェクトの課金情報を見られる状態にしたい」といったときに有効です。 参考 : Analyze billing data and cost trends with Reports ‐ Project-scoped billing permissions 参考 : Cloud 請求先アカウントへの複数プロジェクトの費用閲覧権限を設定する アクセス手順 操作者が特定の Google Cloud プロジェクトのみの課金に関するレポートを閲覧したい場合は、以下の手順でレポートにアクセスできます。必要な IAM ロールについては、後述します。 Google Cloud コンソール( https://console.cloud.google.com/ )にログイン 左上のプロジェクトセレクタで対象のプロジェクトを選択 検索ボックスに「課金」と入力 サジェストされた「課金 / プロダクト・さまざまな課金とコストの管理ツール」をクリック 「リンクされた請求先アカウントに移動」をクリック 上記の手順 2. で、課金を確認したい対象プロジェクトを正しく選択するように注意してください。手順 4. のあとでプロジェクトを選択しなおしても構いません。 4. サジェストされた「課金 / プロダクト・さまざまな課金とコストの管理ツール」をクリック 5. 「リンクされた請求先アカウントに移動」をクリック レポートの基本的な見方 課金レポート画面にアクセスすると、初期状態では、当月の1日から現在までの課金状況が表示されます。グラフの上部には各種フィルタパネルが表示されており、グルーピングの方法や、対象サービスや SKU のフィルタリング、表示対象の期間などをコントロールできます。これらのフィルタパネルを駆使して、コスト分析を進めることになります。 課金レポート 表示されている料金は、請求先アカウントに紐づくすべての Google Cloud プロジェクトの合算値です。棒グラフは、初期状態だとサービス(BigQuery、Cloud Storage、Compute Engine、Vertex AI など)ごとに色分けされており、その内訳は棒グラフの下部に表形式で表示されます。 初期状態では「サービス」でグルーピングされている なお、該当の請求先アカウントに紐づく Google Cloud プロジェクトの一覧は、左部ペインの最下部の「アカウント管理」を押下することで確認できます。この画面の右ペインでは、この請求先アカウントにロールを紐づけられているプリンシパル(アカウント、グループ等)の一覧を確認できるほか、ロールの追加も可能です。 プロジェクトの一覧。右ペインでは請求先アカウントのロールを管理可能 グループ化条件とフィルタ サービス単位での表示の限界 課金レポート画面にアクセスすると、初期状態では、「グループ条件」フィルタで「サービス」が選択されています。「サービス」単位の表示では、BigQuery、Cloud Storage、Compute Engine といったサービスごとの合計金額が表示されます。 この表示方法では、各サービス内で「なぜ」課金が発生しているのかを理解することができません。 例えば BigQuery の料金を節約したいと考えたとき、スキャン量に対する課金が多いのか、あるいはストレージ料金が多いのかを区別しなければ、適切な対策を打つことができません。 例えば以下のスクリーンショットでは、「Networking」「Compute Engine」「Vertex AI」で特に課金が大きいことは分かりますが、「何に使っているのか」「誰が使っているのか」はわからない状態です。 この表示方法では情報が足りない SKU とは 「何に使っているのか」を理解するのに重要になるのが、 SKU (Stock Keeping Unit)単位での表示です。SKU とは、Google Cloud における課金単位です。 例えば BigQuery であれば、以下のような SKU があります。 SKU name SKU ID 説明 Analysis (asia-northeast1) 82D5-BCCE-5431 東京リージョンにおけるオンデマンドクエリのスキャン料金 Active Logical Storage (asia-northeast1) 709C-E503-30BF 東京リージョンにおけるアクティブなストレージ料金 レポートを SKU 単位で表示することで、コスト削減に向けた具体的な打ち手を検討できるようになります。 参考 : SKU Groups - BigQuery 参考 : SKU Groups グループ条件を SKU に設定する 左上の「グループ化」フィルタで「SKU」を選択すると、グラフの凡例が SKU ごとに細分化されます。 以下のスクリーンショットの例では、「Networking」という大まかな分類で示されていた内訳が、SKU 単位で表示されるようになったことで、「Cloud Load Balancing」と「Cloud Armor ポリシー」の課金であることがわかるようになりました。 SKU にグループ化条件を変更すると内訳が詳細化する なお、グループ条件には SKU のほかにも以下のような項目が指定可能です(一部抜粋)。 プロジェクト : プロジェクトごとのコストを表示 プロジェクト階層 : 組織、フォルダ、プロジェクトの構造に基づいた表示 ロケーション : リージョンやマルチリージョンごとのコストを表示 ラベル : リソースに付与したラベルのキーごとのコストを表示 表示対象の絞り込み フィルタを設定することで、特定の SKU だけを表示対象として絞り込むことができます。 先程のスクリーンショットの続きの作業として、特に課金が大きかった「Cloud Load Balancer Forwarding Rule Minimum Global」という SKU が、どのプロジェクトで発生しているのかを調査してみます。上部の「SKU」フィルタで「Cloud Load Balancer Forwarding Rule Minimum Global」のみを選択し、他は表示対象外とします。これで、この SKU に関する課金だけがレポートに表示されるようになります。次に、「グループ化」フィルタで「プロジェクト」を選択します。特定の SKU だけに絞られた表示が、プロジェクトごとにグルーピングされるようになりました。 特定の SKU の課金がどのプロジェクトで発生しているか判明 該当のプロジェクトの管理者を特定することで「誰が使っているのか」が判明します。管理者に SKU 情報などを連絡することで、検証用の Cloud Load Balancer の削除などの対策を打つことができます。 このように、グループ条件(切り口)とフィルタ(絞り込み)を交互に切り替えることで、課金データの中からボトルネックを特定できます。次に、その他のコスト分析テクニックの例をいくつか挙げます。 その他のコスト分析テクニック 料金スパイクの原因を調査 ある月で、Google Cloud 利用料金が意図せず高額になった(スパイクした)とします。以下のようにしてスパイクした SKU を特定し、さらにその SKU の課金が発生したプロジェクトを特定します。これは、当記事内の前述の例で示したものと同じ手法です。 グループ条件を「SKU」に変更 特に料金のかかっている SKU を特定 「SKU」フィルタで、特定した SKU だけに表示を絞り込む グループ条件を「プロジェクト」に変更 特にその SKU が多く発生しているプロジェクトを特定 該当プロジェクトの担当者と連携して、技術的に原因を調査 課金レポートを開いてすぐは、デフォルトでグルーピングが「サービス」になっており、スパイクの原因を直接的に特定しづらい状態です。まずはグループ条件を SKU にして、発生した課金の正体を特定することが重要です。 特に料金が発生しているプロジェクトの特定 組織全体で同じ請求先アカウントを使っているようなケースで、組織のクラウド管理者や情報システム部門が、特に料金が高いプロジェクトを特定して、担当者に改善を促すようなケースでは、以下の手順が参考になります。 グループ条件を「プロジェクト」に変更 特に料金のかかっているプロジェクトを特定 「プロジェクト」フィルタで、特定したプロジェクトだけに表示を絞り込む グループ条件を「SKU」に変更 これにより該当プロジェクトで特に料金が高い SKU を特定 該当プロジェクトの担当者に、情報提供しつつ対策を指示 先に紹介した例だと、まず SKU を絞ってからプロジェクトでグルーピングしていますが、この例では順序が逆です。SKU(課金の要素、原因)に先に注目するか、プロジェクト(誰が課金を発生させているか)に先に注目するかの違いです。 異常検知(Anomaly Detection) Google Cloud の請求先アカウントには、過去の利用傾向から逸脱した課金が発生した際に自動で検知する 異常検知(Anomaly Detection) 機能が備わっています。 意図しない設定ミスや、想定外のトラフィック急増などによるコストスパイクを早期に発見するために有効です。異常が検知されると、詳細画面から「どのサービス、どの SKU が原因か」といった根本原因分析(RCA)の結果を確認できます。 参考 : 費用の異常を表示して管理する 参考 : Google Cloud請求先アカウントの異常検知(Anomaly Detection)を解説 - G-gen Tech Blog クレジット(割引)を考慮した分析 課金レポート上部のフィルタパネルにある「コスト削減」フィルタを使うことで、費用ベースの確約利用割引(CUD)やプロモーション用クレジット、無料枠の適用状況をコントロールできます。 「特定のサービスの利用量そのものが増えているか」を調べたいときはクレジットを除外し、「最終的にいくら支払うのか」を調べたいときはクレジットを含める、といった使い分けができます。 想定外の Google AI Studio 利用を発見 以下の記事では、Gemini API の不正利用に警戒する目的から、Google AI Studio(Gemini API)の使用有無を、課金レポートを使って特定する手順を紹介しています。 blog.g-gen.co.jp 想定外のリージョン利用を発見 セキュリティガバナンスやデータ主権の観点から、利用リージョンを制限している場合に役立つテクニックです。意図しないリージョンでのリソース作成は、シャドー IT の発見やコスト最適化のヒントになることが多くあります。 グループ条件を「ロケーション」に設定 リストの中から、利用を許可していないリージョン(例: us-east1 )が含まれていないか確認 想定外のリージョンがあれば、まず「ロケーション」フィルタで該当のリージョンのみを選択して表示をフィルタリングする 次にグループ条件を「プロジェクト」に変更して、どのプロジェクトで課金が発生しているか特定 Tips レポート表示のタイムゾーンは PST 課金レポートの表示日付のタイムゾーンは PST (太平洋標準時、UTC-8)です。JST(日本標準時、UTC+9)とは マイナス17時間 の時差があります。 例えば、実際に課金が発生したのが日本時間の「2026年5月11日(月)10:00」だとしても、レポート上は「2026年5月10日(日)」の課金として表示されます。以下の記事も参照してください。 blog.g-gen.co.jp レポート表示は約1日遅れ Google Cloud プロジェクトで課金が発生してから、それが課金レポートの表示に反映されるまで、 1日間程度の遅れ があります。 注意が必要なのは、前述のとおりレポート表示のタイムゾーンは PST なので、レポート上で2026年5月11日の課金として表示される課金が実際に発生したのは、日本時間2026年5月11日 17:00 から2026年5月12日 16:59 の間ということになります。そのため、レポートの日付だけに注目すると、以下のスクリーンショットのように1日以上遅れて見えることになります。 レポートを閲覧しているのは5月4日の午前 上記のスクリーンショットのレポートを閲覧しているのは5月4日の午前10時ころです。毎日7,000円以上の課金が発生しているのが通常なのに、まだ5月3日の分が1,000円程度しかレポートに反映されていないところを見ると、一見、5月3日の午前3時ころまでしかレポートが反映されておらず、反映が31時間ほど遅れているように感じます。しかし実際には、レポートのタイムゾーンは PST ですので、5月3日の午前3時(PST)は5月4日の午後8時(JST)です。14時間程度の遅延で済んでいることがわかります。 参考 : Analyze billing data and cost trends with Reports - Why are my usage date costs different than my invoice month costs? Typically, your cost details are available within a day, but can sometimes take more than 24 hours. (通常、料金の詳細は1日以内に確認できるようになりますが、場合によっては24時間以上かかることもあります。) コスト予測の表示 期間フィルタで指定する期間に将来の日付が含まれていると、過去の利用傾向に基づいた機械学習による予測値が、グラフ上に薄いグレーの棒として表示されます。予算超過の兆候を早めに察知するために便利です。 カスタマイズしたレポートを保存・共有 フィルタやグループ条件を細かく設定したレポートは、他人に共有できます。レポート上部の「共有」ボタンを押下すると、フィルタの設定情報を含んだ共有用 URL が発行されます。 また、レポートは「保存済みレポート」として名前を付けて保存することもできます。 BigQuery エクスポート 課金データを BigQuery へエクスポートすることで、SQL で詳細な分析を行ったり、データポータル(英名 Data Studio、旧称 Looker Studio)でオリジナルのコスト可視化ダッシュボードを作成できます。 参考 : Cloud Billing データを BigQuery にエクスポートする BigQuery エクスポートを初めて有効にすると、前月の1日の課金データまで遡って BigQuery にエクスポートされます。最初のデータのエクスポートが完了するまで5日ほどかかりますが、それ以降は1日1回、課金データがエクスポートされます。前月の1日以前のデータをエクスポートすることはできません。 参考 : BigQuery 内の Cloud Billing データテーブルについて - データの可用性 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
G-gen の佐々木です。当記事では、Google Cloud の AI エージェント開発プラットフォームである Gemini Enterprise Agent Platform の概要を解説します。 Gemini Enterprise Agent Platform とは Studio 概要 Agent Studio Agents - Build 概要 Agent Garden(プレビュー) Agent Development Kit Managed Agents API(プレビュー) MCP サーバー スキルレジストリ(プレビュー) RAG Engine(プレビュー) Vector Search Agent Search Agents - Scale 概要 Agent Runtime セッション メモリバンク サンドボックス(プレビュー) Agents - Govern 概要 Agent Registry(プレビュー) ポリシー(プレビュー) Agent Gateway(プレビュー) セキュリティ Agents - Optimize 概要 オブザーバビリティ(プレビュー) エージェントの評価(プレビュー) Example Store(プレビュー) Models 概要 Model Garden 使用オプション モデルのチューニング Gen AI Evaluation Service Model Registry エンドポイント バッチ推論 Models - その他のサービス 概要 データセット Feature Store トレーニング Experiments ML メタデータ Pipelines モデルモニタリング Notebooks 概要 Colab Enterprise Agent Platform Workbench Gemini Enterprise Agent Platform とは 2026年4月に開催された Google Cloud Next '26 で、AI エージェントを構築・運用するための統合プラットフォームとして Gemini Enterprise Agent Platform (旧称 : Vertex AI、以下 Agent Platform と記載)が発表されました。 Agent Platform は、これまで Vertex AI が提供してきた機械学習基盤を組み込みつつ、エージェント中心のコンポーネントを新たに統合したサービスです。 Agent Platform はエージェントのライフサイクルを Build 、 Scale 、 Govern 、 Optimize の4領域で整理し、それらを横断する開発環境として Studio 、モデル基盤として Models 、開発作業環境として Notebooks を提供します。 当記事では、Agent Platform を構成する各コンポーネントを概要レベルで紹介します。記事内のカテゴリは、基本的には2026年5月現在の Google Cloud コンソールで選択できる項目に対応しています。また2026年5月現在、 asia-northeast1 (東京リージョン)においてプレビュー提供となっているコンポーネントについては、見出しに(プレビュー)と付記しています。 カテゴリ コンポーネント 概要 Studio Agent Studio エージェント開発の作業を一元化したコラボレーションワークスペース Agents - Build Agent Garden 事前構築済みエージェントサンプルを提供する厳選ライブラリ Agents - Build Agent Development Kit エージェントの構築・デバッグ・デプロイ用のオープンソースフレームワーク Agents - Build Managed Agents API 単一の API 呼び出しでマネージドな自律エージェントを構築・実行できるサービス Agents - Build MCP サーバー Google Cloud サービスをリモート MCP 経由で AI アプリに接続する仕組み Agents - Build スキルレジストリ エージェントの機能を拡張するスキルを一元管理する低レイテンシなプライベートリポジトリ Agents - Build RAG Engine 検索拡張生成(RAG)を容易にするデータフレームワーク Agents - Build Vector Search ScaNN を基盤とするセマンティック検索エンジン Agents - Build Agent Search Google 品質のセマンティック検索と生成 AI を組み合わせた検索基盤 Agents - Scale Agent Runtime エージェントを HTTP サーバーとしてホストするマネージドランタイム Agents - Scale セッション ユーザーとエージェント間のやり取り履歴を保持する機能 Agents - Scale メモリバンク エージェントとの会話に基づいて長期記憶を動的に生成・管理するマネージドサービス Agents - Scale サンドボックス コード実行・ブラウザ操作などをエージェント本体と隔離された環境で安全に実行する機能群 Agents - Govern Agent Registry エージェント・MCP サーバー・エンドポイントを管理する統合カタログ Agents - Govern ポリシー Agent Gateway が用いる IAM 許可ポリシーとセマンティック ガバナンス ポリシーの総称 Agents - Govern Agent Gateway エージェントインタラクションを保護・管理するネットワーキング基盤 Agents - Govern セキュリティ デプロイ済みエージェントを継続監視し検出結果を確認する機能 Agents - Optimize オブザーバビリティ エージェントと MCP サーバーのパフォーマンス・健全性監視 Agents - Optimize エージェントの評価 エージェントのパフォーマンス・安全性・品質を測定する評価機能 Agents - Optimize Example Store Few-shot サンプルを保存・動的に取得するマネージドサービス Models Model Garden Google・パートナー・OSS の各モデルを横断的に扱うモデルライブラリ Models 使用オプション 生成 AI モデルの5種類の課金・提供方式の体系 Models モデルのチューニング Gemini をラベル付きデータセットで特定タスクに適応させる機能 Models Gen AI Evaluation Service 生成 AI モデルを客観的・データドリブンに評価するツール Models Model Registry ML モデルのライフサイクルを管理する中央リポジトリ Models エンドポイント オンライン推論用にモデルを関連付ける物理リソース Models バッチ推論 大規模データ向け非同期・高スループット・低コストの推論サービス Models - その他のサービス データセット AutoML やカスタムモデル用ソースデータの一元管理サービス Models - その他のサービス Feature Store 機械学習で使う特徴量を一元管理する特徴管理サービス Models - その他のサービス トレーニング 独自 ML モデルを学習させる機能群(AutoML / カスタムトレーニング / Ray on Agent Platform) Models - その他のサービス Experiments モデル開発のプロセスを追跡・比較・分析する実験管理ツール Models - その他のサービス ML メタデータ ML システムが生成するメタデータとアーティファクトの記録管理サービス Models - その他のサービス Pipelines ML ワークフローをサーバーレスでオーケストレーションするマネージドサービス Models - その他のサービス モデルモニタリング 本番環境のモデル品質劣化を検出・追跡するモニタリングサービス Notebooks Colab Enterprise チーム利用に最適化されたマネージド Jupyter ノートブック環境 Notebooks Agent Platform Workbench VM インスタンス上で動作するカスタマイズ性の高い JupyterLab 環境 参考 : Agent Platform の概要 参考 : Introducing Gemini Enterprise Agent Platform, powering the next wave of agents Studio 概要 このカテゴリでは、Build / Scale / Govern / Optimize の各ライフサイクルを横断する開発環境である Agent Studio が提供されています。モデル探索からシステム指示の改良、プロンプト最適化、Web アプリケーションとしてのデプロイまでを一元的に行える開発フロントエンドとして位置づけられています。 Agent Studio Agent Studio は、エージェント開発に必要な作業を一元化した、Google Cloud コンソール内のコラボレーションワークスペースです。コードの編集とプレビューを並行して行える「インタラクティブキャンバスビュー」を備え、自然言語での対話を起点にプロンプトとシステム指示を組み立てていきます。 モデルの探索においては、後述の Model Garden を経由して候補となるモデルを選び、同じ入力に対する挙動を Agent Studio 上で並列に比較できます。システム指示も Agent Studio に自動生成させたうえで、複数バージョンを並べて結果を見比べることで素早く改良できます。 チャットインターフェースを用いたモデルの挙動比較 外部知識の取り込みも幅広く、Google 検索 / Google マップによるリアルタイムグラウンディングのほか、後述の RAG Engine や Agent Search、Elasticsearch などを介して自社データを参照させられます。あわせて、思考レベル、構造化出力、安全フィルタといったモデル挙動の細かな制御もコンソールから調整できます。 仕上げたプロンプトはそのまま Web アプリケーションとして本番環境にデプロイでき、Google Cloud エコシステム全体と統合された API・デプロイ経路を経由してエージェントを公開することができます。 参考 : Agent Studio の概要 Agents - Build 概要 このカテゴリでは、エージェント本体とその周辺機能を構築するためのコンポーネント群を扱います。事前構築済みのエージェントサンプルを提供する Agent Garden 、エージェントのオープンソースフレームワークである Agent Development Kit 、単一の API 呼び出しでマネージドなエージェントを構築・実行できる Managed Agents API 、Google Cloud サービスへの接続口となる MCP サーバー 、エージェントの機能を拡張するスキルを一元管理する スキルレジストリ 、エージェントの知識基盤となる RAG Engine / Vector Search / Agent Search が含まれ、エージェントのロジックとデータソースの両方をカバーします。 Agent Garden(プレビュー) Agent Garden は事前構築済みのエージェントのサンプルを提供するライブラリです。2026年5月現在はプレビュー提供となっています。 サンプルエージェントは RAG Engine、ベクトル検索、Gemini モデルなど他のコンポーネントとシームレスに連携できるように構成されており、ドキュメントに基づくカスタマーサポートや業種特化の調査統合といった、特定タスクに合わせた素早い立ち上げを支援します。 また、GitHub に公開されているサンプルエージェントのソースコードにアクセスし、ロジックを独自にカスタマイズすることもできます。 Agent Garden では多数のサンプルエージェントが提供される Agent Garden からサンプルエージェントをデプロイする 参考 : Agent Garden Agent Development Kit Agent Development Kit (以下、ADK)は、オープンソースの AI エージェント開発用フレームワークであり、エンタープライズ規模の信頼性の高いエージェントの構築・デバッグ・デプロイを容易にします。 単純なタスクを処理するエージェントから、複数のエージェントが協働して複雑なタスクを処理するマルチエージェントシステムまで、柔軟に設計・実装できます。 開発したエージェントは、後述の Agent Runtime や Vertex AI、Cloud Run、Google Kubernetes Engine(以下、GKE)など、マネージドな実行環境にデプロイすることができます。 参考 : Agent Development Kit ADK を使用したエージェントの開発、ユースケースについては、以下の記事カテゴリで取り上げています。 blog.g-gen.co.jp Managed Agents API(プレビュー) Managed Agents API on Agent Platform は、単一の API 呼び出しでマネージドかつ自律的なエージェントを構築・実行できるサービスです。2026年5月現在はプレビュー提供となっています。 エージェントは Google の Antigravity ハーネスで駆動され、隔離された Linux サンドボックスの内部でコード実行、ファイル操作、Web 検索、MCP サーバー経由の外部システム連携などを自律的に行います。Antigravity ハーネスは Google 自社のエージェント製品も動作する実行基盤で、Gemini 3.5 Flash と相互に最適化されています。 ADK のようなフレームワークでロジックを記述する必要がなく、Agent Runtime へのデプロイ作業も不要なため、コード実行を伴う自律エージェントを API 呼び出しだけで素早く立ち上げたいケースに向いています。 サービスの詳細については、以下の記事をご一読ください。 blog.g-gen.co.jp 参考 : Agent Platform の Managed Agents API の概要 MCP サーバー Google Cloud MCP servers は、Google および Google Cloud が提供するフルマネージドのリモート MCP サーバーです。 Google および Google Cloud の各サービスを、エンタープライズレベルのガバナンス・セキュリティ・アクセス制御を備えたリモート MCP サーバー経由で利用することができます。IAM でユーザーアクセスを制御し、専用の HTTP エンドポイントを通じて Gemini CLI などの AI クライアントからすぐに使い始めることができます。 リモート MCP サーバーは Google が管理するインフラストラクチャ上で動作するため、ユーザーによる運用管理は不要です。また、Apigee や Cloud Run を使用することで、独自に実装した MCP サーバーを公開することもできます。 参考 : Google Cloud MCP servers overview Google Cloud が提供するリモート MCP サーバーについては、以下の記事で解説しています。 blog.g-gen.co.jp スキルレジストリ(プレビュー) スキルレジストリ (Skill Registry)は、エージェントの機能を拡張する スキル (Skill)を一元管理するための、安全かつ低レイテンシなプライベートリポジトリです。2026年5月現在はプレビュー提供となっています。 スキルは、構造化された手順、実行可能なコード、ドキュメントをひとまとめにした自己完結型のパッケージです。スキルレジストリに登録されたスキルは、ユーザーの意図に応じて関連性の高いものをエージェントが動的に検出・読み込みでき、複数のエージェント間で同じスキルを共有・再利用することもできます。 スキルレジストリでは、表示名・タイムスタンプ・ラベルなどのメタデータとコンテンツを持つトップレベルのリソースである スキル と、そのスキルの特定バージョンを表す不変のスナップショットである スキルリビジョン (Skill Revision)の2階層でリソースが管理されます。スキル自体は可変ですが、リビジョン単位ではコンテンツが固定されるため、過去バージョンの再現性を保ちながらリビジョンを切り替えて段階的に更新していくバージョン管理が可能です。 スキルの本体は zip アーカイブで登録し、ルートに YAML フロントマターと Markdown 本文からなる SKILL.md を配置することでスキルを定義します。スキルの作成・更新時にはペイロードが非同期で自動検証され、アーカイブサイズ(10MB 以下)、解凍後の総ファイルサイズ(500MB 以下)、ファイル数(10,000 個以下)、 SKILL.md の文字数(500,000 文字以下)といった制約に違反していないかが確認されます。 参考 : スキル レジストリの概要 RAG Engine(プレビュー) RAG Engine は、検索拡張生成(Retrieval-Augmented Generation、以下 RAG)を容易にするためのコンポーネントです。2026年5月現在はプレビュー提供となっています。 ローカルファイル、Cloud Storage、Google Drive など複数のデータソースから取り込んだデータを、変換・インデックス化のパイプラインを通じて コーパス (検索用に最適化されたデータのインデックス)として整備します。エージェントの応答生成時にコーパスを検索して LLM のコンテキストに独自のデータを加えることで、ハルシネーションを抑制します。 コーパスは検索対象のデータの論理的な単位であり、データの実体が保存されるベクトルデータベースが別途必要となります。ベクトルデータベースのインフラは2つのモードから選択することができ、インフラ管理を完全に抽象化した サーバーレスモード と、専用の Cloud Spanner インスタンスを使用し、高いカスタマイズ性を実現できる Spanner モード が存在します。 RAG Engine は、2026年5月現在 us-central1 などいくつかのリージョンでは GA となっていますが、 asia-northeast1 を含む多数のリージョンではプレビュー提供となっています。最新のリリース状況については以下のドキュメントを参照してください。 参考 : Gemini Enterprise Agent Platform RAG Engine の概要 Vector Search Vector Search は、Google Research が開発した ScaNN アルゴリズムを基盤とするセマンティック検索エンジンで、Google 検索、YouTube、Google Play と同じ技術スタックを利用したエンタープライズ向けのベクトル検索基盤を利用できます。 ユーザー側で用意した埋め込みベクトルを Cloud Storage に保存し、それを元にインデックスを作成します。作成したインデックスはエンドポイントとしてデプロイすることで、アプリケーションからエンドポイント経由でベクトル検索を使用することができます。 検索方式は、意味の近さで探す 高密度エンベディング検索 、キーワード一致を重視する スパースエンベディング検索 、両者を組み合わせた ハイブリッド検索 の3方式に対応しています。 参考 : ベクトル検索 Agent Search Agent Search (旧称 : Vertex AI Search)は、前述の Vector Search 同様、Google 品質のセマンティック検索(意味論検索)機能をフルマネージドで利用できるコンポーネントです。過去には Generative AI App Builder、Vertex AI Search and Conversation、Vertex AI Agent Builder、AI Applications など複数のブランド名を経てきた経緯があります。 Vector Search が埋め込みベクトルの類似検索エンジンに特化しているのに対し、Agent Search はドキュメントの取り込み・パース・自然言語理解・要約までを内包したフルマネージドの検索ソリューションとなっており、 検索 と レコメンデーション を2本柱の主軸機能として提供します。 データソースとして Cloud Storage や BigQuery に保存した構造化・非構造化データのほか、一般公開ウェブサイトのデータもインデックスとして登録できます。自然言語クエリによる検索とレコメンデーションに加えて、検索結果の要約生成やフォローアップ質問を踏まえたマルチターンの回答生成といった LLM 機能も内蔵しており、外部 LLM のグラウンディングソースとしても利用できます。 汎用のカスタム検索のほかに、映画・動画・音楽向けの メディア検索 や、FHIR 形式の医療データ向けの ヘルスケア検索 といった業種特化ソリューションも提供されています。 参考 : Agent Search の概要 Agent Search の詳細については、以下の記事もご一読ください。 blog.g-gen.co.jp Agents - Scale 概要 このカテゴリでは、構築したエージェントを本番ワークロードとして提供するための実行基盤群を扱います。エージェントをマネージドにホストする Agent Runtime 、ユーザーとエージェント間のやり取りを保持する セッション 、会話に基づいて長期記憶を生成・管理する メモリバンク 、コード実行やブラウザ操作などリスクを伴う処理を隔離環境で実行する サンドボックス が組み合わさり、ステートを伴うエージェントの安定運用を支えます。 Agent Runtime Agent Runtime (旧称 : Agent Engine)は、開発した AI エージェントをリモートからアクセス可能な HTTP サーバーとしてホストするフルマネージドの実行基盤です。 ADK をはじめ、LangChain や LangGraph といった様々なエージェントフレームワークのデプロイを容易にするテンプレートが提供されており、テンプレートに適合しない場合でもカスタムエージェントとして構築できます。ただし、2026年5月現在、Agent Runtime にデプロイできるエージェントは Python で開発されたもののみとなっています。 自動スケーリング機能、モニタリング、ロギングなど、エージェントの運用に必要な機能を組み込みで利用することができるほか、後述のセッションやメモリバンクと連携して記憶や履歴を伴うマルチターンのエージェントの会話を容易に実現できます。 参考 : エージェントをデプロイする Agent Runtime の詳細については以下の記事もご一読ください。 blog.g-gen.co.jp セッション セッション (Sessions)は、ユーザーとエージェント間のやり取りの履歴を保持し、エージェントが会話のコンテキストを参照するための機能です。 セッションは「ユーザーとエージェントシステム間の一つの会話の流れにおけるメッセージとアクション(イベント)の時系列」と定義され、イベントには会話の内容のほか関数呼び出しなどエージェントが実行したアクションが保存されます。 コアコンセプトとして、現在の会話中のみに関連する一時データを表す「状態」と、特定のユーザーの複数のセッションでアクセスできるパーソナライズされた情報を表す「記憶」が分離されている点が特徴です。記憶の保存・参照が必要な場合は後述のメモリバンクを使用します。 単一セッション内の会話の状態を管理する ADK で開発したエージェントを Agent Runtime にデプロイした場合、セッション管理はデフォルトで使用されます。その他のフレームワークで開発したエージェントの場合は、API を使用してセッション管理を行うことができます。 参考 : Agent Platform セッションの概要 メモリバンク メモリバンク (Memory Bank)は、ユーザーとエージェントの会話に基づいて長期記憶を動的に生成・管理するマネージドサービスです。 メモリバンクは内部的に LLM を用いて、セッションのイベント(会話履歴)からユーザーの嗜好や事実を抽出・要約し、ユーザー単位で保存します。これにより、エージェントとの会話(セッション)を一度中断しても、後の会話でユーザーごとにパーソナライズされた応答を返すことができるエージェントを構築できます。 不変のドキュメントを根拠とする RAG とは異なり、メモリバンクはユーザーごとに進化していく動的なコンテキストを扱う点が特徴です。 セッションとメモリバンクは独立した機能ですが、併用できます。セッションが単一会話内の状態(短期記憶)を、メモリバンクが複数セッションを跨ぐ長期記憶を担うため、両者を組み合わせることで、会話中の文脈維持と、過去の会話を踏まえたパーソナライズを両立できます。 メモリバンクを使用してユーザーごとの記憶を生成・管理する ADK では組み込みの機能として VertexAiMemoryBankService が提供されており、エージェントのツールおよびコールバックとして組み込むだけでメモリバンクとの連携を実現できます。その他のフレームワークで開発したエージェントの場合、セッション同様に API が提供されています。 参考 : Agent Platform メモリバンク 以下の記事では、ADK で開発したエージェントを Agent Runtime で実行する際にメモリバンクを利用する方法を解説しています。 blog.g-gen.co.jp サンドボックス(プレビュー) サンドボックス (Sandbox)は、エージェントの代わりに特定のタスクを実行するために起動される隔離コンピューティング環境を提供する機能群の総称です。2026年5月現在はプレビュー提供となっています。 エージェントが生成したコードやブラウザ操作といったリスクを伴う処理を、エージェント本体とは別の短命な環境に隔離して実行することで、ホストシステムや他のエージェントへの影響を防ぎます。隔離・セキュリティ・安全性の3つを基本原則とし、コンテナベースのサンドボックス境界によって、有害なコマンドやリソースを大量に消費するループの影響範囲をサンドボックス内に閉じ込めます。 サンドボックスでは、以下の機能が提供されます。 機能 説明 Code Execution エージェントが生成したコードを隔離サンドボックス上で実行する機能。LLM が苦手な厳密な数値計算・データ処理・可視化などをコード実行で補強し、財務計算・データサイエンスワークフロー・信頼できないコードの隔離実行といったユースケースで利用される。サンドボックスは1秒未満で起動でき、ファイルシステムへのアクセスは制限され、外部ネットワークへのアクセスも遮断されている Computer Use コンテナ化されたブラウザ環境を提供し、エージェントが URL ナビゲーション・要素クリック・テキスト入力・スクリーンショット取得などの操作を実行できる機能。Chrome DevTools Protocol(CDP)経由で Playwright などのブラウザ自動化フレームワークから操作することも可能 カスタムコンテナ サンドボックスの実行環境としてユーザー独自の Docker イメージを持ち込める Bring Your Own Container(BYOC)機能。標準のサンドボックスでは利用できない依存ライブラリ・ランタイムバージョン・プロプライエタリツールを伴うワークロードに対応する。コンテナイメージは Artifact Registry に格納する スナップショット サンドボックスの状態(インストール済みライブラリ・ファイルシステムの変更・メモリ状態など)を保存して後から復元できる機能。チェックポイントによる復旧や、同一スナップショットからの分岐実行で複数のアプローチを並行検証する用途で利用できる なお、Code Execution については2026年5月現在、 us-central1 リージョンでのみ利用できます。 参考 : Sandboxes overview 参考 : Code Execution 参考 : Computer Use 参考 : Custom container sandbox overview 参考 : Manage snapshots Agents - Govern 概要 このカテゴリでは、エージェントの動作と通信を統制するためのガバナンスコンポーネント群を扱います。MCP サーバー / ツール / エージェントを一元管理する Agent Registry 、認証・認可と自然言語ベースの統制を担う ポリシー 、ネットワーク境界を保護する Agent Gateway 、Security Command Center 連携でリスクを可視化する セキュリティ機能 、プロンプトとレスポンスを検査する Model Armor で構成されます。 Agent Registry(プレビュー) Agent Registry は、Google Cloud 内のエージェント、MCP サーバー、エンドポイントを保存・検出・管理できる、一元化された統合カタログです。2026年5月現在はプレビュー提供となっています。 Agent Registry が備える主要機能は以下のとおりです。 機能 説明 カタログ機能 エージェント、MCP サーバー、エンドポイントを登録する 検索 / 検出機能 レジストリへのクエリで利用可能な機能を特定する メタデータ管理機能 エージェントの「スキル」や MCP サーバーの「ツール」を抽出する Agent Registry では、エージェント( Agent )、MCP サーバー( McpServer )、エンドポイント( Endpoint )の3種類を サービス ( Service )としてカタログに登録します。Agent Runtime にデプロイしたエージェントや、Google Cloud が公式で提供するエージェント、MCP サーバーなどは自動で登録され、外部リソースや A2A プロトコルを実装していないエージェントなど、自動検出がサポートされていないものは手動で登録できます。 サービスの種類 説明 エージェント ユーザーが開発、もしくは Google Cloud が提供する自律的な AI エージェント MCP サーバー ユーザーが開発、もしくは Google Cloud やサードパーティが提供する MCP サーバー エンドポイント エージェントがアクセスする外部ターゲット URL を管理可能なリソースとして抽象化したもの 登録されているエージェントと他のサービス(エージェント、MCP サーバー、エンドポイント)との間で バインディング ( binding )を確立することで、エージェントから他サービスへの呼び出し関係をカタログ上にマッピングできます。サービスの利用に認証が必要な場合は、エージェントと認証プロバイダとのバインディングを作成し、認証情報を委任することができます。なお、呼び出しの実際の可否は後述の Agent Gateway と IAM 許可ポリシーで制御されるため、バインディング自体はアクセス制御の主体ではない点に注意してください。 このように、サービスを1つのカタログで一元管理することで、AI ワークロードでありがちな「ツールアクセスの断片化」「データの分離」「冗長なサービス」といった課題を解決します。A2A や MCP といったオープンプロトコルと密接に連携することで、既存スキルやツールの再利用、統合の簡素化を実現しています。 参考 : Agent Registry の概要 参考 : バインディングを管理する ポリシー(プレビュー) ポリシー (Policies)は、後述の Agent Gateway がエージェントと他のサービス間の通信を安全に管理するために用いる、 IAM 許可ポリシー と セマンティック ガバナンス ポリシー の総称です。2026年5月現在は非公開プレビュー(Private Preview)となっています。 IAM 許可ポリシーは IAM ベースの静的な権限管理で、Identity-Aware Proxy(以下、IAP)を用いた認証と認可を実現します。Agent Registry の各サービスに「読み取り専用」、「破壊的変更の許可」といった条件を指定したポリシーを紐づけることで、エージェントがサービスを介して行える操作を制限します。 セマンティック ガバナンス ポリシーは、エージェントのプロンプトや MCP ツール呼び出しの「内容」を監視・制御するための制約であり、エージェントの振る舞いがユーザーの意図と組織の制約の両方に適合するように制御します。Agent Gateway は実行時に各エージェントのプロンプトとツール呼び出しの内容を分析し、制約に基づいてアクションを決定します。 参考 : ポリシーの概要 参考 : セマンティック ガバナンス ポリシーを構成する 参考 : セマンティック ガバナンス ポリシーを構成する - セマンティック ガバナンスの例 Agent Gateway(プレビュー) Agent Gateway はユーザーとエージェント、エージェントとツール、エージェント同士など、すべてのエージェントインタラクションを保護・管理するネットワークコンポーネントです。2026年5月現在は非公開プレビュー(Private Preview)で、利用にはアクセス申請が必要です。 Agent Gateway は Client-to-Agent (クライアントからエージェントへの内向き)と Agent-to-Anywhere (エージェントから任意の宛先への外向き)という2つのモードで動作します。 動作モード 説明 Client-to-Agent(内向き) Agent Gateway がエージェントのフロントエンドとして機能し、クライアント(Gemini CLI、Claude Code など)と Google Cloud 上で実行されているエージェント(およびツール)間の通信を保護する Agent-to-Anywhere(外向き) Google Cloud 上で実行されているエージェントと、任意の場所で実行されているエージェント、ツール、API などの外部サービスとの間の双方向の通信を保護する この2種類の通信に対して、先述の IAM 許可ポリシー、セマンティック ガバナンス ポリシーを適用することで、一元的なアクセス制御を実現します。また、Agent Gateway を経由するプロンプトとレスポンスは後述の Model Armor で検査・サニタイズでき、プロンプトインジェクションや機密情報の漏洩といったリスクを一元的に低減できます。 Agent Gateway はネットワークレイヤですべてのエージェントインタラクションのテレメトリを生成し、Cloud Logging や Cloud Trace に連携できるため、後述のオブザーバビリティ機能と組み合わせてセキュリティ調査やパフォーマンス分析を行えます。 Agent Gateway の動作モードのイメージ Agent Gateway を利用するには、対象のエージェントを Agent Registry に登録しておく必要があります。Agent Runtime と Gemini Enterprise のトラフィックは自動的に Agent Gateway 経由でルーティングされる一方、それ以外のデプロイ先(Cloud Run や GKE など)からのトラフィックを Agent Gateway 経由とする手順は2026年5月現在の公式ドキュメントには明示されていません。そのため現時点では、Agent Runtime と Gemini Enterprise が主な利用対象となります。 参考 : Agent Gateway の概要 参考 : ゲートウェイで Model Armor を構成する セキュリティ Agent Platform の セキュリティ タブでは、デプロイ済みの AI エージェントを継続的に監視し、セキュリティ検出結果(findings)を確認できます。 Security Command Center(Premium / Enterprise)との連携により、AI Protection、エージェントの脆弱性評価、センシティブデータの検出、AI Discovery、攻撃パスシミュレーションといったセキュリティ監視・分析を行うことができます。 セキュリティタブには、Security Command Center の検出結果を集約した総合リスク指標、コンプライアンスステータス、アクティブな脅威数が表示されます。 また、重大度別の AI リスク(脆弱性、構成ミス、有害な組み合わせ)、AI 脅威(異常な IAM 権限付与、マルウェア、ラテラルムーブメント)、過剰な権限を持つエージェント、業界セキュリティ基準への適合状況、コンテンツ違反などをウィジェット形式で確認できます。 参考 : セキュリティに関する検出結果を表示する Agents - Optimize 概要 このカテゴリでは、デプロイ済みエージェントの品質と動作を継続的に改善するためのコンポーネント群を扱います。実行のパフォーマンスや健全性、トポロジを可視化する オブザーバビリティ 、エージェントのパフォーマンス・安全性・品質を測定する エージェントの評価 、Few-shot サンプルを保存・動的に取得して回答品質を改善する Example Store により、本番運用後のモニタリングと改善サイクルを担います。 オブザーバビリティ(プレビュー) オブザーバビリティ (Observability)では、デプロイされたエージェントと MCP サーバーのパフォーマンス、動作、健全性を包括的に監視・分析できます。2026年5月現在はプレビュー提供となっています。 主要な指標のモニタリング、実行パスのトレース、マルチエージェントシステムのトポロジの可視化によって、問題を診断し、リソース消費を最適化し、エージェントの信頼性を向上させることができます。 これらの分析を行うためには、エージェントから OpenTelemetry 形式でテレメトリーデータを Google Cloud Observability(Cloud Monitoring / Cloud Logging / Cloud Trace)に送信するように構成する必要があります。送信されたテレメトリーデータは、Agent Registry のコンソール上で以下の3種類のシグナルとして確認することができます。 シグナル 主な内容 メトリクス トークン使用量、レイテンシ(p50 / p95 / p99)、エラー率、セッション統計、ハルシネーション率、CPU・メモリ使用量 トレース 実行パス(スパン)、入出力の有向非巡回グラフ、エージェント間呼び出し ログ プロンプト・レスポンス、エラー、フィルタ可能なエージェント生ログ 参考 : オブザーバビリティの概要 エージェントの評価(プレビュー) エージェントの評価 (Agent Evaluation)は、エージェントのパフォーマンス、安全性、品質を測定して改善するための評価機能です。2026年5月現在はプレビュー提供となっています。 エージェントの評価では以下のような機能が利用できます。既存のテストデータがなくても初期評価スイートを構築できる点が特徴です。 機能 説明 シナリオ生成 / ユーザーシミュレーション エージェントのシステム指示とツール定義に基づいて多様なマルチターンの合成テストシナリオを自動生成する 環境シミュレーション ツール呼び出しをインターセプトしてカスタム動作やシミュレートされたエラーを挿入する マルチターン評価 会話履歴全体を自動的に評価する プロンプト最適化 洗練されたシステム指示をプログラムで生成・検証する 評価プロセスは「評価ケース定義 → 評価ケース実行 → トレース生成 → 指標の計算 → 指標の分析 → エージェント最適化」の6つのステップで構成され、ローカル開発でのイテレーションと、デプロイ済みエージェントに対する評価の両シナリオで利用できます。 また、評価指標に対してしきい値を設定し、超過時に自動通知を送る 品質アラート (Quality Alerts)も提供されています。タスクの成功スコアやツール使用品質といった指標を Cloud Monitoring 経由で監視し、しきい値超過時に Slack、メール、Cloud Pub/Sub への通知を発信することで、基盤モデルが変わっていなくても、ユーザーの行動やデータパターンの変化に起因するエージェントの品質低下を早期に検知できます。 参考 : エージェントの評価 参考 : 品質アラートを構成する Example Store(プレビュー) Example Store は、エージェントが LLM に渡すプロンプトに含めるための Few-shot サンプル(少数ショットの例)を保存・動的に取得できるマネージドサービスです。2026年5月現在はプレビュー提供となっています。 LLM に期待する回答パターンを提示することで、類似のクエリに対する応答の品質、精度、整合性を向上させることができます。プロンプトに直接サンプルを書き込む場合と異なり、プロンプトの内容に応じてストアから関連性の高いサンプルだけが動的に取り出されるため、プロンプトサイズや複雑性を抑えながらより多くのユースケースをカバーできます。 ADK で開発したエージェントの場合は、事前に Example Store インスタンスを指定しておくことで、プロンプトの内容に応じてサンプルが自動的に取得され LLM へのリクエストに含められます。それ以外のフレームワークで開発したエージェントの場合は、API を介して手動でサンプルを検索・取得します。 参考 : Example Store の概要 Models 概要 Models は、Agent Platform で生成 AI / ML モデルを取り扱うための基盤コンポーネント群です。これまで Vertex AI として提供されてきた生成 AI / 機械学習関連のサービスが、当カテゴリ配下に集約されています。具体的には、Google・パートナー・OSS のモデルを横断的に発見できる Model Garden 、5種類の課金・提供方式を体系化した 使用オプション 、 Gemini のチューニング 、 Gen AI Evaluation Service による評価 、ML モデルのライフサイクル管理を担う Model Registry 、 オンライン推論用のエンドポイント 、 大規模データ向けのバッチ推論 といった、モデルの選定からサービングまでを担う機能を扱います。 Model Garden Model Garden は、Google、パートナー、OSS が提供するモデルやアセットを探索、テスト、カスタマイズ、デプロイするための AI / ML モデルライブラリです。 2026年5月現在、Model Garden で扱えるモデルのカテゴリごとの詳細と、具体的なモデルの例を以下に示します。 カテゴリ 説明 モデルの例 基盤モデル 事前学習済みのマルチタスク大規模モデル。後述のモデルのチューニング機能や、システム指示・RAG などによるカスタマイズで特定タスクに適応できる Gemini、Anthropic Claude、Mistral、Grok ファインチューニング可能なモデル ノートブックやパイプラインで自前でファインチューニングできるモデル Gemma、Llama、DeepSeek、Qwen タスク固有のソリューション 画像・動画・音楽・音声・翻訳など特定タスク向けの構築済みモデル。多くは独自データでカスタマイズ可能 Imagen、Veo、Lyria、Chirp 後述のモデルのチューニング機能、Gen AI Evaluation Service、エンドポイントといった Agent Platform の他機能と統合されており、モデルの選定から本番サービングまでを一貫したワークフローで扱えます。 また、組織のポリシー( vertexai.allowedModels 制約)を使用すると、組織・フォルダ・プロジェクト単位で特定のモデルへのアクセスを制御でき、組織で承認したモデルだけを使用させる運用ができます。 参考 : Model Garden の概要 参考 : Model Garden モデルへのアクセスを制御する 使用オプション Agent Platform では、Gemini などの生成 AI モデルを利用する際の課金・提供方式として5種類の 使用オプション が体系化されています。デフォルトでは Standard PayGo が適用されます。各オプションは課金方式、スループット保証の有無、リクエスト処理の優先度といった観点で性質が異なり、ワークロードの特性に応じて使い分けます。 使用オプション 特徴 主な用途 プロビジョンドスループット 1週間〜1年のコミットで容量とスループットを予約。固定料金制で超過料金なし SLA 必須の定常ワークロード チャットボット・エージェントなど一貫したユーザー体験が求められる本番用途 Priority PayGo Standard PayGo より優先的に処理される従量課金 Standard 以上の信頼性が求められるケース プロビジョンドスループット容量超過分のスピルオーバー先としても使用可能 Standard PayGo 前払い不要の従量課金(デフォルト) トラフィックが変動する日常的な用途 Flex PayGo(プレビュー) Standard PayGo より処理の優先度が低く、割安な従量課金 コスト優先でレイテンシが許容できるユースケース バッチ推論 非同期・高スループットの大量処理 結果が比較的長期で必要な大規模ジョブ プロビジョンドスループットは Gemini や Veo などの Google 製モデルに加えて、一部のパートナーモデル・OSS モデルにも対応しています(対応モデルの詳細は参考ドキュメント参照)。本番ワークロードでは、プロビジョンドスループットでベースラインの容量を確保し、超過分は Priority PayGo で処理する組み合わせも選択できます。 参考 : 使用オプション 参考 : プロビジョンド スループットの概要 参考 : プロビジョンド スループットでサポートされているモデル モデルのチューニング モデルのチューニング 機能は、Gemini モデルをラベル付きデータセットで特定タスクに適応させる、Agent Platform のマネージドチューニング機能です。プロンプト設計だけでは難しい複雑なタスクや、特定のドメイン知識をモデルに獲得させたい場合に利用します。 モデルのチューニングでは、以下の2種類の手法が提供されます。 手法 説明 教師ありファインチューニング ラベル付きの入出力ペアでモデルに目的の動作を模倣させる、最も標準的な手法 プリファレンスチューニング 人間によるフィードバックデータを使って、教師ありファインチューニングだけでは定義しにくい主観的な好みを学習させる手法 運用上のオプション機能として、チューニング途中の状態を保存して複数の状態を比較・選択できる チューニングチェックポイント と、既存のチューニング済みモデルやチェックポイントを起点に追加データで学習を続けられる 継続的チューニング が提供されます。 2026年5月現在、対象モデルは Gemini 2.5 Pro、Gemini 2.5 Flash、Gemini 2.5 Flash-Lite で、チューニング用データセットはテキスト・画像・動画・音声・ドキュメントなど複数モダリティに対応しています。 参考 : チューニング Gen AI Evaluation Service Gen AI Evaluation Service では、生成 AI モデルを客観的・データドリブンに評価するツールが提供されます。モデルの移行やプロンプト最適化などの開発タスクを支援します。 モデルの評価方法として、以下の4つが提供されています。推奨とされている 適応型ルーブリック はソフトウェア開発の単体テストに似た位置づけで、プロンプトごとに pass/fail を判定することで、さまざまなタスクでモデル品質を客観的に評価できます。 評価方法 説明 適応型ルーブリック(推奨) 評価用データセットの各プロンプトごとに評価項目を動的に生成して採点する方式 静的ルーブリック 評価用データセットの全プロンプトに固定の評価基準を適用する方式 計算ベース指標 ROUGE や BLEU などの指標を用いて、参照テキストとの一致度を数値で算出する方式 カスタム関数 Python で独自の評価ロジックを実装する方式 生成 AI モデルだけでなく、エージェントの評価や予測 AI モデルの評価にも対応しており、Google / サードパーティモデルの直接比較、ファインチューニング品質評価、プロンプト最適化、モデルバージョン間の比較といった用途で使われます。 参考 : Gen AI Evaluation Service の概要 Model Registry Model Registry は、ML モデルの整理・バージョン管理・本番デプロイを一元化する中央リポジトリです。 モデルのバージョン管理、後述の エンドポイント へのデプロイや バッチ推論 の実行、モデルの性能評価・パフォーマンス指標の閲覧といった機能を備えます。 対応するモデルタイプは、後述の トレーニング 機能で作成したカスタム学習モデルや AutoML モデル、BigQuery ML モデルです。これらに加えて、外部で学習したモデルについてもアーティファクトを Cloud Storage に配置することでインポートして登録できます(フレームワーク・形式の要件あり)。 参考 : Model Registry の概要 参考 : Model Registry へのモデルのインポート エンドポイント エンドポイント (Endpoint)は、学習済みモデルを用いてオンライン推論を実行するための物理リソースです。モデルをエンドポイントにデプロイすると、推論を実行するマネージド推論ノードがプロビジョニングされ、推論リクエスト用のサービス URL が提供されます。 1つのエンドポイントには複数のモデルやモデルバージョンをデプロイでき、各モデルへのトラフィック比率を指定する トラフィック分割 によって、新旧モデルを段階的に置き換えるローリングデプロイができます。 推論ノードは同時リクエスト数に応じて 自動スケーリング するため、負荷に応じたコスト効率と応答性能を両立できます。 パブリックエンドポイント(共有・専用)、Private Service Connect エンドポイント、プライベートサービスアクセスエンドポイントの3種類があり、ネットワーク要件に合わせて選択できます。 参考 : エンドポイントにモデルをデプロイする バッチ推論 バッチ推論 は、大規模データ処理向けの非同期・高スループット・低コストの推論サービスです。オンライン推論と異なりエンドポイントへのモデルデプロイが不要で、入力データをまとめて投入するだけで実行できます。 入力ソースは Cloud Storage と BigQuery に対応し、リアルタイム応答ではなく非同期処理として動作します。 バッチ推論では、前述の Model Registry に登録したカスタム学習モデル、AutoML モデル、BigQuery ML モデル、インポートモデルに加えて、各種 Gemini モデルが使用できます(対応モデルの詳細は参考ドキュメント参照)。 コンテンツ生成、データ分類・アノテーション、要約・抽出・翻訳といったオフライン分析など、緊急性の低い大規模タスクに最適な選択肢です。 参考 : Gemini を使用したバッチ推論 参考 : カスタム トレーニング済みモデルからバッチ推論を取得する Models - その他のサービス 概要 Models に含まれるその他のサービスとして、生成 AI 系サービスの登場以前から Vertex AI として提供されてきた機械学習サービスが統合されています。 データセット データセット (Datasets、別名 : マネージドデータセット)は、後述の AutoML やカスタムトレーニングで使うソースデータを Agent Platform 上で一元管理する機能です。AutoML モデルの学習では使用が必須となっています。 データの実体は Cloud Storage に保管されます。データセットのメタデータは Knowledge Catalog に統合されており、プロジェクトやリージョンを横断して検索できます。 また、コンソール上でアノテーションセットを作成し、画像データへのラベル付けを行うこともできます。 参考 : Gemini Enterprise Agent Platform でのマネージド データセットの作成の概要 Feature Store Feature Store は、機械学習で使う特徴量(Feature)を一元管理し、トレーニングと推論の両方に提供するための特徴管理サービスです。 ユーザー行動ログなどから集計する特徴量(例 : ユーザーの過去30日の購入回数)は計算コストが高く、推論リクエストごとに作るとレイテンシが破綻します。Feature Store は事前計算した特徴量を保管し、推論時に即座に取り出せるようにする基盤です。トレーニングと推論で同じ特徴量定義を共有できるため、両者で特徴量の中身が食い違う training-serving skew も防げます。 データソースは BigQuery で、Feature Store 自体は BigQuery テーブルを Feature View として登録するだけで、データを物理コピーせずに参照できます。オンライン推論向けには Bigtable をバックエンドとしたオンラインサービングが用意されています。 Knowledge Catalog と連携して特徴メタデータを追跡できるため、トレーニングや再トレーニングでの再利用が容易です。また 特徴モニタリング 機能では、登録済みの特徴データを定期ジョブで監視し、特徴ドリフト(Feature drift)の検出ができます。 参考 : Gemini Enterprise Agent Platform での特徴管理の概要 参考 : Agent Platform Feature Store について トレーニング Agent Platform は、独自の機械学習モデルを学習させる機能群を提供します。学習結果はモデルアーティファクトとして Cloud Storage に保存され、前述の Model Registry に登録できます。 目的とコード制御の必要度に応じて以下の3つの方式から選択できます。 方式 概要 AutoML トレーニング用のコードを書かずに、データ準備・モデル選択・ハイパーパラメータ調整・デプロイまでを全て自動化する方式。表形式(分類・回帰・予測)と画像(分類・物体検出)データに対応 カスタムトレーニング ユーザー自身が書いたトレーニング用のコードを Agent Platform のマネージドインフラ上で実行する方式。任意の ML フレームワークを使用できる Ray on Agent Platform OSS の分散処理フレームワーク Ray を Agent Platform 上でマネージド提供する方式。分散トレーニングや並列処理が必要な ML ワークフローに向く カスタムトレーニングでは、トレーニング用のコードをコンテナイメージとしてパッケージ化して実行します。TensorFlow / PyTorch / scikit-learn など任意の ML フレームワークを使用でき、標準的なフレームワーク向けには事前構築済みコンテナが提供されているほか、特殊な依存関係がある場合は独自のカスタムコンテナを使用することもできます。実行環境の特性に応じて、以下の2つの方式から選択できます。 実行方式 概要 サーバーレストレーニング コードをカスタムジョブとして投入するサーバーレス実行方式。インフラはオンデマンドで起動・解放される トレーニングクラスタ A100 / H100 などの高性能アクセラレータを専用クラスタとして予約してカスタムジョブを実行する方式 Ray on Agent Platform は既存の OSS Ray コードを最小限の変更でそのまま動かせる点が特徴で、BigQuery や前述のエンドポイントといった Google Cloud サービスとシームレスに連携します。 データ処理・評価・デプロイなど複数ステップの本格的な MLOps ワークフローが必要な場合は、後述の Pipelines を使用するのが推奨されます。 参考 : 独自のモデルをトレーニングして使用する 参考 : トレーニング方法を選択する 参考 : Agent Platform での Ray の概要 Experiments Experiments は、機械学習モデル開発のプロセスを追跡・比較・分析するための実験管理ツールです。モデル選択やトレーニングの最適化に役立ちます。 前処理・トレーニングといった手順、入力パラメータやアルゴリズム、出力されたモデルやチェックポイント、評価指標などをまとめて記録できます。複数のモデルや構成をテスト実行(Run)単位でグループ化して比較でき、ハイパーパラメータやアーキテクチャの違いによる性能差を検証できます。 後述の ML メタデータと統合してアーティファクトのリネージを追跡できるほか、TensorBoard との統合により学習過程の時系列指標を可視化できます。 後述の Pipelines と組み合わせれば、パイプライン実行を Experiments の Run として記録でき、構成の異なるパイプラインを Run 単位で横断比較する用途にも使えます。 参考 : Gemini Enterprise Agent Platform Experiments の概要 ML メタデータ ML メタデータ (ML Metadata)は、機械学習システムが生成するメタデータとアーティファクトを記録・管理するサービスです。 データセットや学習済みモデルといったアーティファクト、トレーニングや評価といった実行、それらを束ねるコンテキストをノードとし、ノード間の入出力関係をエッジとして表現するメタデータグラフを保持します。各ノードには、モデルの精度や再現率などのメトリクスやプロパティを Key-Value で付加できます。 「データセット → モデル → 予測結果」のような依存関係をリネージとして追跡できるため、本番 ML システムの実行分析、ハイパーパラメータの効果比較、ワークフロー再実行時の同一条件での再現、監査・ガバナンス対応といった用途で利用されます。 前述の Experiments や後述の Pipelines と密接に連携する基盤となるコンポーネントです。 参考 : Gemini Enterprise Agent Platform ML メタデータの概要 Pipelines Pipelines は、ML ワークフローをサーバーレス実行基盤でオーケストレーションするサービスです。 ML パイプラインは MLOps ワークフローを移植可能・拡張可能な形で記述したもので、複数のパイプラインタスクを有向非巡回グラフ(DAG)の形式で結び、依存関係に従って実行します。 パイプラインの記述には Kubeflow Pipelines または TensorFlow Extended(TFX)の SDK を利用でき、定義 → コンパイル(YAML 生成) → 実行 → モニタリングというライフサイクルで運用します。 前述の ML メタデータと連携してアーティファクトのリネージを追跡できるため、再現性とガバナンスを保ちながらデータ前処理・モデルトレーニング・デプロイを統合的に自動化できます。 継続的な再トレーニングや本番 MLOps の自動化基盤として中核となるコンポーネントです。 参考 : Gemini Enterprise Agent Platform Pipelines の概要 Pipelines の詳細については、以下の記事もご一読ください。 blog.g-gen.co.jp モデルモニタリング モデルモニタリング (Model Monitoring)は、本番環境にデプロイされた機械学習モデルの品質劣化を検出・追跡するためのモニタリングサービスです。顧客 LTV 予測のように入力データの分布が時間とともに変わるシナリオで特に有効です。 入力特徴量や推論結果の分布のドリフト、特徴アトリビューション(各特徴量のモデルに対する寄与度)の変化といった観点でモデルの状態を継続的に監視し、これらの指標がしきい値を超えるとアラートを発することができます。 ベースラインとターゲットのデータセットの分布を重ね合わせて可視化できるため、差異を視覚的に把握して再評価や再トレーニングの要否判断に役立てられます。 参考 : モデル モニタリングの概要 Notebooks 概要 Notebooks は、生成 AI ワークフローやデータサイエンス・ML プロジェクトの構築・テスト・開発に使うマネージドノートブック環境の総称で、目的に応じて Colab Enterprise と Agent Platform Workbench の2つのソリューションから選択できます。 参考 : ノートブック 参考 : ノートブック ソリューションを選択する Colab Enterprise および Agent Platform Workbench の詳細については、以下の記事もご一読ください。 blog.g-gen.co.jp Colab Enterprise Colab Enterprise は、チーム利用に最適化されたマネージド Jupyter ノートブック環境で、Google グループや Google Workspace ドメイン単位でのノートブック共有と、複数ユーザーでのリアルタイム共同編集に強みがあります。 2026年5月現在、Gemini によるコード補完・生成、エラーの説明と修正、データサイエンスエージェント、ノートブック内容についてのチャットといった AI アシスタンス機能がプレビューで提供されており、SQL セルや可視化セルなどの機能と組み合わせて、協業とデータ分析を重視するシナリオに適しています。 参考 : Colab Enterprise の概要 参考 : Gemini in Colab Enterprise Agent Platform Workbench Agent Platform Workbench は、VM インスタンス上で動作する JupyterLab 環境で、TensorFlow や PyTorch といったディープラーニング用フレームワークのプリインストールと GPU 構成への対応により、機械学習向けのノートブック環境をすぐに整えられます。 conda 環境によるカーネル拡張、ユースケースに合わせた独自のコンテナでのインスタンス作成など、開発環境を細かく作り込みたいケースに向いており、高いカスタマイズ性を備えています。また、Workforce Identity 連携によるサードパーティ ID プロバイダ認証にも対応しています。 参考 : Agent Platform Workbench の概要 佐々木 駿太 (記事一覧) クラウドソリューション部 クラウドエンジニアリング1課 北海道在住 大学院まで社会心理学を専攻し、AI に興味を持ち IT 業界へ。2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。最近は法律の勉強にも目覚め、2級知的財産管理技能士を取得。 Follow @sasashun0805
G-gen の佐々木です。当記事では、Agent Development Kit(ADK)で開発した AI エージェントで Agent Runtime(旧称 : Vertex AI Agent Engine)の Memory Bank 機能を使用することで、セッション間で情報を保持できるエージェントを構築していきます。 構成 当記事で使用するもの Agent Development Kit(ADK) Agent Runtime Memory Bank Cloud Run Memory Bank を使用するエージェントの開発 エージェントの概要 ディレクトリ構成 プロジェクトの準備 エージェントのソースコード(agent.py) Agent Runtime にエージェントをデプロイ Google Cloud の認証と設定 .env ファイルの作成 Agent Runtime へのデプロイ 動作確認(ADK Web) フロントエンドの構築 フロントエンドの概要 チャットボットの開発 ディレクトリ構成 プロジェクトの準備 app.py Dockerfile OAuth 同意画面の構成 Cloud Run へのデプロイ サービスアカウントの作成 デプロイ 動作確認 Memory Bank のカスタマイズ カスタマイズの概要 カスタマイズ用スクリプト(update.py)の作成 カスタマイズの適用 カスタマイズ後の動作確認 構成 当記事では、 Agent Development Kit (ADK)で定義した AI エージェントを Agent Runtime にデプロイし、また、フロントエンドとしてエージェントとやり取りを行うチャットボットを Cloud Run に構築していきます。 エージェントは、Agent Platform の Memory Bank 機能を使用するように構築します。これにより、一度チャットボットとの会話を終了した後でも、前の会話内容の一部を長期記憶として Memory Bank に保存しておくことができます。 また、Cloud Run では Identity-Aware Proxy (IAP)を有効化することで、Google アカウントで認証されたユーザーのみがチャットボットを利用できるようにします。その上で、IAP が付与する認証済みユーザーのメールアドレスを user_id として Memory Bank に送信することで、ユーザーごとの記憶を Memory Bank に蓄積できるようにします。 Memory Bank 機能を使用する Agent Runtime とチャットボットの構成 当記事で使用するもの Agent Development Kit(ADK) Agent Development Kit (ADK)は、Google Cloud が提供する AI エージェント構築のためのオープンソース フレームワークであり、単純なタスクをこなすエージェントから複数のエージェントが協働する複雑なワークフローまで容易に実装できます。 ADK には、Memory Bank と連携するための PreloadMemoryTool や、セッションイベントを Memory Bank に送信するための add_events_to_memory() といったユーティリティが標準で組み込まれており、長期記憶を扱うエージェントを少ないコードで実装できます。 参考 : Agent Development Kit 参考 : Agent Development Kit の概要 Agent Runtime Agent Runtime は Gemini Enterprise Agent Platform (旧称 : Vertex AI、以下 Agent Platform と記載)で提供されるサービスの1つであり、AI エージェントの実行基盤を提供するフルマネージドサービスです。 Agent Runtime では、エージェントとのマルチターン会話を実現するための組み込みの セッション機能 を利用することができるほか、Memory Bank のように、エージェントの機能拡張に必要な様々な機能が提供されています。 Agent Runtime の詳細については、以下の記事をご一読ください。 blog.g-gen.co.jp Memory Bank Memory Bank は Agent Platform が提供する 長期記憶 を実現するための機能です。Agent Runtime のセッション機能が一連の会話の中での短期的な記憶を扱うのに対し、Memory Bank はセッションをまたいで利用できる記憶を蓄積します。 Memory Bank は内部的に LLM を用いて、セッションのイベント(会話履歴)からユーザーの嗜好や事実を抽出・要約し、エージェントが認識しているユーザー ID( user_id )単位で保存します。これにより、エージェントとの会話(セッション)を一度中断しても、後の会話でユーザーごとにパーソナライズされた応答を返すことができるエージェントを構築できます。 エージェント側から以下の2つの操作を行うことで Memory Bank を利用できます。 記憶の生成・保存 : セッション中のイベントを Memory Bank に送信し、長期記憶として抽出・保存させる 記憶の参照 : 新しいセッションの開始時や会話中に、Memory Bank から関連する記憶を取得し、プロンプトに含めて LLM に渡す ADK ではこれらの操作を簡単に行うための add_events_to_memory() や PreloadMemoryTool といったユーティリティが提供されており、エージェントのコールバックやツールとして組み込むだけで Memory Bank を利用できます。 参考 : Agent Platform メモリバンク Cloud Run Cloud Run は Google Cloud のマネージドなコンテナ実行環境でアプリケーションを実行できる、サーバーレス コンテナコンピューティング サービスです。 当記事ではユーザーがエージェントとやり取りするためのフロントエンドとして使用します。 Cloud Run の詳細については、以下の記事をご一読ください。 blog.g-gen.co.jp Memory Bank を使用するエージェントの開発 エージェントの概要 当記事では、コーヒーに関する質問に回答する「コーヒーエージェント」を ADK で構築していきます。エージェントを Memory Bank と連携できるように実装することで、ユーザーごとの嗜好や過去のやり取りを長期記憶として蓄積できるようにします。 Agent Runtime を使用してエージェントを構築する ディレクトリ構成 最終的なディレクトリ構成は以下の通りになります。 coffee_agent ディレクトリで AI エージェントを実装していきます。 . ├── coffee_agent │ ├── agent.py │ ├── .env │ └── __init__.py ├── pyproject.toml # 自動で作成 └── uv.lock # 自動で作成 ADK ではエージェントのパッケージ(ここでは coffee_agent ディレクトリ)内に agent.py を配置し、そこにツール関数とエージェント定義を実装します。 プロジェクトの準備 エージェント開発用のディレクトリでプロジェクトを初期化します。 # uv プロジェクト初期化 $ uv init --no-readme # パッケージの追加 $ uv add " google-adk>=1.29.0 " 次に、エージェント用のパッケージディレクトリ( coffee_agent )を作成し、ADK がパッケージとして認識できるように __init__.py を配置します。 __init__.py では agent モジュールをインポートしておくことで、 adk コマンドからエージェントを参照できるようになります。 # エージェントのパッケージディレクトリを作成 $ mkdir coffee_agent # __init__.py を作成 $ cat <<EOF > coffee_agent/__init__.py from . import agent EOF エージェントのソースコード(agent.py) 当記事では、Google 検索でコーヒーに関する情報を調べるサブエージェントをツールとして内包するエージェントを構築し、Memory Bank との連携機能を組み込みます。 Memory Bank と連携するために、以下の2つの仕組みを利用しています。 PreloadMemoryTool : ADK が標準提供するツールで、エージェントの実行開始時に Memory Bank から user_id に紐付く記憶を取得し、プロンプトに自動で挿入します。エージェントは過去の会話の文脈を踏まえた応答が可能になります。 after_agent_callback : エージェントの応答が完了した直後に呼び出されるコールバックです。 callback_context.add_events_to_memory() を通じて、直近のセッションイベントを Memory Bank に送信し、記憶として抽出・保存させています。 generate_memories_callback では callback_context.session.events[-5:-1] のように直近のイベントをスライスして送信しています。これにより、応答完了時の最終イベントを除外しつつ、ユーザーの発話とエージェントの応答を含む直近のやり取りのみを Memory Bank に送信します。 from google.adk.agents import Agent from google.adk.tools import google_search from google.adk.tools.agent_tool import AgentTool from google.adk.agents.callback_context import CallbackContext from google.adk.tools.preload_memory_tool import PreloadMemoryTool # 記憶を Memory Bank に保存するコールバック関数 async def generate_memories_callback (callback_context: CallbackContext): # イベント単位で Memory Bank に送信する await callback_context.add_events_to_memory( events=callback_context.session.events[- 5 :- 1 ]) return None # Web 検索用エージェント search_agent = Agent( name= "search_agent" , model= "gemini-2.5-flash" , description= "Google検索でコーヒーに関する情報を調べるエージェント" , instruction= "ユーザーの質問に対してGoogle検索を使って情報を収集し、日本語で回答してください。" , tools=[google_search] ) # ルートエージェント root_agent = Agent( name= "coffee_agent" , model= "gemini-2.5-flash" , description= "コーヒーに関する情報を収集するエージェント" , instruction= """あなたはコーヒーの専門家アシスタントです。 ユーザーからの質問に対して、search_agentを活用しながらコーヒーに関する正確で有益な情報を提供してください。 対応できるトピックの例: - コーヒー豆の産地・品種・特徴 - 抽出方法(ドリップ、エスプレッソ、フレンチプレスなど) - 焙煎度合いと味わいの違い - カフェやコーヒーショップの情報 - コーヒーの健康効果や歴史 - ラテアートやバリスタの技術 回答は日本語で、わかりやすく丁寧に行ってください。""" , tools=[ AgentTool(agent=search_agent), PreloadMemoryTool() ], after_agent_callback=generate_memories_callback ) 参考 : Agent Development Kit によるクイックスタート Agent Runtime にエージェントをデプロイ Google Cloud の認証と設定 デプロイの前に、Google Cloud CLI での認証を行っておきます。 # プロジェクト ID を環境変数にセット $ export PROJECT_ID = < プロジェクトID > # 認証 $ gcloud auth login $ gcloud auth application-default login # プロジェクトの設定 $ gcloud config set project $PROJECT_ID .env ファイルの作成 エージェントの実行時に Gemini Enterprise Agent Platform (旧称 : Vertex AI、以下 Agent Platform と記載)を利用するための環境変数を、 coffee_agent ディレクトリ配下の .env ファイルに設定します。ADK は実行時にこのファイルを自動で読み込みます。 # coffee_agent/.env を作成 $ cat <<EOF > coffee_agent/.env GOOGLE_GENAI_USE_VERTEXAI=1 GOOGLE_CLOUD_PROJECT= $PROJECT_ID GOOGLE_CLOUD_LOCATION=asia-northeast1 EOF GOOGLE_GENAI_USE_VERTEXAI : 1 を指定することで、Gemini API ではなく Agent Platform 経由で Gemini モデルを利用します GOOGLE_CLOUD_PROJECT : エージェントをデプロイする Google Cloud プロジェクト ID GOOGLE_CLOUD_LOCATION : Agent Runtime およびモデルを利用するリージョン Agent Runtime へのデプロイ adk deploy コマンドを使用して、Agent Runtime にエージェントをデプロイします。 # Agent Runtime にエージェントをデプロイ $ uv run adk deploy agent_engine \ --project = $PROJECT_ID \ --region = asia-northeast1 \ --display_name =" Coffee Agent " \ coffee_agent デプロイが成功すると、以下のように Agent Runtime のリソース名が出力されます。 ✅ Created agent engine: projects/ < プロジェクト番号 > /locations/asia-northeast1/reasoningEngines/ < エージェント固有の数字 > このリソース名は、後続の動作確認やチャットボットのデプロイ時に使用するため、シェル変数にセットしておきます。 # 環境変数にリソース名をセット $ export RESOURCE_NAME =projects/ < プロジェクト番号 > /locations/asia-northeast1/reasoningEngines/ < エージェント固有の数字 > なお、すでにデプロイ済みの Agent Runtime を更新する場合は、 --agent_engine_id オプションでリソース名を指定して同じ adk deploy コマンドを実行します。 # 既存の Agent Runtime を更新する場合 $ uv run adk deploy agent_engine \ --project = $PROJECT_ID \ --region = asia-northeast1 \ --agent_engine_id = $RESOURCE_NAME \ --display_name =" Coffee Agent " \ coffee_agent 参考 : ADK CLI documentation - deploy 動作確認(ADK Web) ローカルで ADK Web UI を起動し、Memory Bank と連携した状態でエージェントの動作を確認します。 --memory_service_uri オプションに Agent Runtime のリソース名を指定することで、ローカルの Web UI から Agent Runtime の Memory Bank をエージェントの長期記憶ストアとして利用できます(エージェントはローカルで実行し、Memory Bank 用途でのみ Agent Runtime にアクセスしている状態)。 # Memory Bank を指定して ADK Web UI を起動 $ uv run adk web --memory_service_uri = agentengine:// $RESOURCE_NAME ブラウザで http://localhost:8000 を開き、チャットでエージェントと会話します。 adk web から起動した場合、Memory Bank には user という固定のユーザー ID で記憶が保存されていきます。 まず最初のセッションでは、コーヒーの好み(例: 「私は酸味の強いコーヒーが好きです。おすすめのコーヒー豆はありますか」)をエージェントに伝えます。 最初のセッションでエージェントに好みを伝える Agent Runtime のコンソールから Memory Bank の中身を確認することができます。ADK Web のユーザー( user )に関する記憶として、「私は酸味の強いコーヒーが好きです。」という情報が記録されています。 Memory Bank に好みに関する情報が記録されている その後、ADK Web UI 上で新しいセッションを開始し、「私の好みに合う抽出方法を教えて」などと質問することで、Memory Bank に保存されている個人的な好みに関する情報を踏まえた応答が返ってくることを確認できます。 最初のセッションで伝えた好みに関する情報が新しいセッションに引き継がれている 参考 : ADK CLI documentation - web フロントエンドの構築 フロントエンドの概要 機械学習モデルのデモ用 Web UI を容易に作成できる Gradio という Python ライブラリを使用してチャットボットを実装します。 チャットボット Cloud Run にデプロイし、Web サービスとして公開できるようにします。Cloud Run では Identity-Aware Proxy(IAP)を有効化し、Google アカウントで認証されたユーザーのみがアクセスできるようにします。 IAP による認証つきのチャットボットを構築する 参考 : Gradio チャットボットの開発 ディレクトリ構成 フロントエンドはエージェントとは別のディレクトリで構築します。最終的なディレクトリ構成は以下の通りになります。 app.py にチャットボットを実装していきます。 . ├── app.py ├── Dockerfile ├── pyproject.toml # 自動で作成 └── uv.lock # 自動で作成 プロジェクトの準備 エージェントとは別のディレクトリで uv プロジェクトを初期化します。 # uv プロジェクト初期化 $ uv init --no-readme # パッケージの追加 $ uv add " google-cloud-aiplatform[agent-engines]>=1.142.0 " " gradio>=5.29 " app.py app.py では以下の処理を実装しています。 vertexai.init() で Agent Platform に接続し、 agent_engines.get() で Agent Runtime にデプロイしたエージェントを取得 IAP が付与するリクエストヘッダ( x-goog-authenticated-user-email )からユーザーのメールアドレスを取り出し、Agent Runtime のセッションおよび Memory Bank の user_id として使用 Agent Runtime のセッション機能( create_session )を使い、ユーザーごとにマルチターンの会話を管理 agent.stream_query() でエージェントにメッセージを送信し、ストリーミングで応答を受信 gr.Blocks で Gradio のチャット UI を構築 Memory Bank の記憶は user_id ごとに分離して保存されるため、 user_id の決め方がそのままユーザーごとのパーソナライズの単位となります。ここでは IAP が付与する認証済みメールアドレスをそのまま user_id として用いることで、ブラウザやデバイスをまたいでも同一ユーザーであれば一貫した記憶を参照できる構成にしています。 import os import gradio as gr import vertexai from vertexai import agent_engines AGENT_ENGINE_ID = os.environ[ "AGENT_ENGINE_ID" ] # Identity-Aware Proxy (IAP) が認証済みユーザーのメールアドレスを付与するヘッダ IAP_EMAIL_HEADER = "x-goog-authenticated-user-email" def get_agent (): vertexai.init( project=os.environ.get( "GOOGLE_CLOUD_PROJECT" ), location=os.environ.get( "GOOGLE_CLOUD_LOCATION" ), ) return agent_engines.get(AGENT_ENGINE_ID) agent = get_agent() # IAP から渡されるリクエストヘッダを元にユーザーを一意に特定する def get_user_id (request: gr.Request) -> str : # IAP は "accounts.google.com:user@example.com" の形式で付与するため、 # プレフィックスを除去してメールアドレス部分のみを取り出す raw = request.headers.get(IAP_EMAIL_HEADER, "" ) return raw.split( ":" , 1 )[ 1 ] if ":" in raw else raw def chat (message: str , history: list , session_state: dict , request: gr.Request) -> tuple [ str , dict ]: # IAP で認証されたユーザーのメールアドレスをそのまま Agent の user_id として利用する user_id = get_user_id(request) if not user_id: raise gr.Error( "IAPからユーザー情報を取得できませんでした。" ) session_state[ "user_id" ] = user_id session_id = session_state.get( "session_id" ) if not session_id: session = agent.create_session(user_id=user_id) session_id = session[ "id" ] session_state[ "session_id" ] = session_id response_text = "" for event in agent.stream_query( message=message, user_id=user_id, session_id=session_id, ): if event.get( "content" ) and event[ "content" ].get( "parts" ): for part in event[ "content" ][ "parts" ]: if part.get( "text" ): response_text += part[ "text" ] yield response_text, session_state with gr.Blocks( title= "コーヒーエージェント" , fill_height= True , css= """ .title-row { text-align: center; margin-bottom: 0; } .caption-row { text-align: center; margin-top: 0; color: #666; font-size: 0.9em; } .input-row { position: sticky; bottom: 0; background: var(--background-fill-primary); padding: 10px 0; } """ , ) as demo: gr.Markdown( "<h1 class='title-row'>☕ コーヒーエージェント</h1>" "<p class='caption-row'>コーヒーに関するあれこれをお答えします</p>" ) session_state = gr.State(value={}) chatbot = gr.Chatbot( show_label= False , scale= 1 , avatar_images=( None , "https://em-content.zobj.net/source/google/412/hot-beverage_2615.png" ), placeholder= "質問を入力すると、ここに会話が表示されます" , ) with gr.Row(elem_classes= "input-row" ): textbox = gr.Textbox( placeholder= "コーヒーについて質問してください(例: エスプレッソとドリップの違いは?)" , show_label= False , container= False , scale= 7 , ) def respond (message, history, session_state, request: gr.Request): history = history + [ { "role" : "user" , "content" : message}, ] yield history, session_state, gr.update(value= "" , interactive= False ) assistant_text = "" for text, updated_state in chat(message, history, session_state, request): assistant_text = text session_state = updated_state yield ( history + [{ "role" : "assistant" , "content" : assistant_text}], session_state, gr.update(interactive= False ), ) yield ( history + [{ "role" : "assistant" , "content" : assistant_text}], session_state, gr.update(interactive= True ), ) textbox.submit( respond, inputs=[textbox, chatbot, session_state], outputs=[chatbot, session_state, textbox], ) if __name__ == "__main__" : port = int (os.environ.get( "PORT" , 8080 )) demo.launch(server_name= "0.0.0.0" , server_port=port) Dockerfile Cloud Run にデプロイするためのコンテナイメージを定義します。uv の公式イメージからバイナリをコピーし、依存パッケージのインストールとアプリケーションの起動を行います。 FROM python:3.14-slim COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ WORKDIR /app COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY app.py . EXPOSE 8080 CMD [ " uv ", " run ", " python ", " app.py " ] OAuth 同意画面の構成 Cloud Run で IAP を有効化すると、Cloud Run 上のサービスへのアクセス時に Google アカウントでのログインが求められるようになり、許可されたユーザーのみがチャットボットを利用できます。 プロジェクトで OAuth 同意画面の構成をまだ行っていない場合、以下のドキュメントを参照して実施してください。 参考 : OAuth 同意画面を設定し、スコープを選択する Cloud Run へのデプロイ サービスアカウントの作成 Cloud Run 用のカスタムサービスアカウントを作成し、Agent Runtime へのアクセスに必要な Agent Platform ユーザー ( roles/aiplatform.user )ロールを付与します。 # サービスアカウントの作成 $ gcloud iam service-accounts create coffee-agent-frontend \ --display-name =" Coffee Agent Frontend " # Agent Platform User ロールの付与 $ gcloud projects add-iam-policy-binding $PROJECT_ID \ --member =" serviceAccount:coffee-agent-frontend@ ${PROJECT_ID} .iam.gserviceaccount.com " \ --role =" roles/aiplatform.user " デプロイ gcloud run deploy コマンドで Cloud Run にデプロイします。 --source オプションを指定すると、Cloud Build によるコンテナイメージのビルドとデプロイが自動で行われます。 --no-allow-unauthenticated と --iap を指定することで、IAP で認証されたユーザーのみがアクセスできるようにしています。 --service-account で先ほど作成したカスタムサービスアカウントを指定します。また、 --set-env-vars でデプロイ済みの Agent Runtime のリソース名を環境変数として渡します。 $ gcloud run deploy coffee-agent-frontend \ --source . \ --region asia-northeast1 \ --set-env-vars " GOOGLE_CLOUD_PROJECT= $PROJECT_ID ,GOOGLE_CLOUD_LOCATION=asia-northeast1,AGENT_ENGINE_ID= $RESOURCE_NAME " \ --service-account coffee-agent-frontend@ ${PROJECT_ID} .iam.gserviceaccount.com \ --cpu 1 \ --memory 1Gi \ --no-allow-unauthenticated \ --iap 動作確認 デプロイが完了したら、Cloud Run サービスの URL にブラウザでアクセスします。 # デプロイ後に出力されるサービス URL Service URL: https://lawapi-frontend- < プロジェクト番号 > .asia-northeast1.run.app IAP が有効化されているため、Google アカウントでのログインが求められます。 IAP で保護されたウェブアプリ ユーザー ( roles/iap.httpsResourceAccessor )ロールが付与されたユーザーでログインします。 Google アカウントでログインする まず最初のセッションでは、普段飲むコーヒーについての情報(例: 「私は中浅煎りのコスタリカをよく飲みます。おすすめの抽出方法を教えてください」)をエージェントに伝えます。 最初のセッションで普段飲んでいるコーヒー豆についての情報をエージェントに伝える Memory Bank の中身を確認すると、IAP でログインしたユーザーのメールアドレスを user_id として、「私は中浅煎りのコスタリカをよく飲みます。」という情報を保持する記憶が作成されていることがわかります。 IAP でログインしたユーザーのメールアドレスを user_id として記憶が作成される 再度、別ブラウザから同じユーザーを使用してチャットボットにログインして、「私の好みに合うコーヒー豆を探してください」と伝えてみます。前回伝えたコーヒーの好みが Memory Bank に記憶されているため、その情報を元にした回答が返ってきます。 ユーザーごとに保存された好みに関する情報が別のセッションに引き継がれている Memory Bank のカスタマイズ カスタマイズの概要 Memory Bank はデフォルト設定でもユーザーの嗜好などを自動的に抽出して長期記憶として保存してくれますが、実際にエージェントとやり取りを繰り返してみると、思うように抽出されない場合もあります。 Memory Bank では、カスタマイズ設定を適用することで、抽出する情報の種類や挙動をユースケースに合わせて調整することができます。 Memory Bank では主に以下の項目をカスタマイズできます。 項目 説明 トピック Memory Bank が保存すべきと判断する情報の種類を定義します。Google Cloud が提供する managed トピック ( USER_PERSONAL_INFO 、 USER_PREFERENCES 、 KEY_CONVERSATION_DETAILS 、 EXPLICIT_INSTRUCTIONS )と、ラベルと抽出指示を自分で定義できる custom トピック の2種類があります。 生成モデル 記憶の生成に使用する LLM を指定できます(デフォルトは gemini-2.5-flash )。 埋め込みモデル 記憶の検索や統合の判定に使用する埋め込みモデル(embedding model)を指定できます(デフォルトは text-embedding-005 )。日本語など英語以外の会話を扱う場合は、 gemini-embedding-001 や text-multilingual-embedding-002 といった多言語対応モデルを指定することで検索品質を向上できます。 有効期限(TTL) 生成・更新された記憶の有効期限を自動設定するルールを定義できます。 Few-shot Examples 抽出してほしい記憶の例をいくつか与えることで、Memory Bank の抽出挙動を調整できます。 カスタマイズ項目の詳細については、以下のドキュメントを参照してください。 参考 : メモリバンク 用に Agent Platform インスタンスを構成する カスタマイズ用スクリプト(update.py)の作成 adk コマンドからは Memory Bank のカスタマイズを直接適用することはできないため、Agent Platform SDK を使用するスクリプトで、デプロイ済みの Agent Runtime インスタンスを更新します。 ここではコーヒーエージェントのユースケースに合わせて、コーヒーに関する情報を重点的に抽出するための custom トピックを定義します。具体的には、以下の5つのトピックを Memory Bank に登録します。 トピック 種類 抽出対象 USER_PREFERENCES managed ユーザーの一般的な嗜好 coffee_taste_preferences custom 好む / 苦手な味わいの傾向(酸味・苦味・フレーバーノート・焙煎度合いなど) brewing_methods custom 普段使用している抽出方法と器具 favorite_beans_and_origins custom 好みの豆の産地・品種・銘柄・ロースター coffee_habits_and_restrictions custom 飲用習慣やカフェイン制限などの制約 また、日本語での会話における検索の品質を高めるため、 similarity_search_config で多言語対応の埋め込みモデル gemini-embedding-001 を指定します。 スクリプトの内容は以下のようになります。 client.agent_engines.update() に context_spec.memory_bank_config.customization_configs を渡すことで、デプロイ済みの Agent Runtime インスタンスに対してカスタマイズ設定のみを反映できます。 import os import vertexai from vertexai.types import ( MemoryBankCustomizationConfig as CustomizationConfig, MemoryBankCustomizationConfigMemoryTopic as MemoryTopic, MemoryBankCustomizationConfigMemoryTopicCustomMemoryTopic as CustomMemoryTopic, MemoryBankCustomizationConfigMemoryTopicManagedMemoryTopic as ManagedMemoryTopic, ManagedTopicEnum, ) client = vertexai.Client( project=os.getenv( "PROJECT_ID" ), location=os.getenv( "LOCATION" , "asia-northeast1" ), ) # Memory Bank に保存する記憶のトピック定義 memory_topics = [ # ユーザーの好み(managed トピック) MemoryTopic( managed_memory_topic=ManagedMemoryTopic( managed_topic_enum=ManagedTopicEnum.USER_PREFERENCES ) ), # 味わいの好み MemoryTopic( custom_memory_topic=CustomMemoryTopic( label= "coffee_taste_preferences" , description=( "ユーザーが好む / 苦手なコーヒーの味わいの傾向。" "酸味・苦味・甘み・ボディ感、フレーバーノート(フルーティ、" "ナッティ、チョコレートなど)、焙煎度合い(浅煎り / 中煎り / 深煎り)。" ), ) ), # 抽出方法・器具 MemoryTopic( custom_memory_topic=CustomMemoryTopic( label= "brewing_methods" , description=( "ユーザーが普段使っている、または興味のあるコーヒーの抽出方法と器具。" "ハンドドリップ、エスプレッソ、フレンチプレス、エアロプレス、サイフォンなど、" "および使用しているグラインダーやドリッパーなどの器具情報。" ), ) ), # 好みの豆・産地 MemoryTopic( custom_memory_topic=CustomMemoryTopic( label= "favorite_beans_and_origins" , description=( "ユーザーが好む / 過去に飲んだコーヒー豆の産地・品種・銘柄・ロースター。" "例: エチオピア イルガチェフェ、ゲイシャ、ブルーマウンテン、特定のロースター名など。" ), ) ), # 飲用習慣・カフェイン制限 MemoryTopic( custom_memory_topic=CustomMemoryTopic( label= "coffee_habits_and_restrictions" , description=( "ユーザーのコーヒーの飲用習慣(1日の杯数、飲む時間帯)、" "カフェイン制限の有無、デカフェ志向、乳製品アレルギーや代替ミルクの好みなど。" ), ) ), ] customization_config = CustomizationConfig(memory_topics=memory_topics) # 類似性検索に使用する埋め込みモデル(多言語対応の gemini-embedding-001 を指定) project = os.getenv( "PROJECT_ID" ) location = os.getenv( "LOCATION" , "asia-northeast1" ) embedding_model = ( f "projects/{project}/locations/{location}/publishers/google/models/gemini-embedding-001" ) # 既存の Agent Runtime を Memory Bank カスタマイズ付きで更新 resource_name = os.environ[ "RESOURCE_NAME" ] agent_engine = client.agent_engines.update( name=resource_name, config={ "context_spec" : { "memory_bank_config" : { "customization_configs" : [customization_config], "similarity_search_config" : { "embedding_model" : embedding_model, }, }, }, }, ) print ( "Memory Bank customization applied." ) print (f "Resource Name: {agent_engine.api_resource.name}" ) カスタマイズの適用 スクリプトを実行する際は、デプロイ済みの Agent Runtime のリソース名( projects/<プロジェクトID>/locations/<ロケーション>/reasoningEngines/<エージェントID> )を環境変数 RESOURCE_NAME にセットしておきます。 # 環境変数のセット $ export PROJECT_ID = < プロジェクトID > $ export LOCATION =asia-northeast1 $ export RESOURCE_NAME = < エージェントのリソース名 > # カスタマイズの適用 $ uv run python update.py スクリプトの実行が成功すると、Agent Runtime インスタンスに Memory Bank のカスタマイズ設定が反映されます。 コンソールからは、類似性検索に使用する埋め込みモデルが gemini-embedding-001 に更新されていることが確認できます。 類似性検索に使用するモデルが変更されている カスタマイズ後の動作確認 Cloud Run にデプロイしたチャットボットにログインし、「私は酸味が美味しいコーヒーが好きで、コスタリカ、パナマ、ケニア、エチオピアが特に好みです。ハンドドリップで1日に4杯ほど飲みます。好みに近いおすすめの豆を教えてください」のような内容でメッセージを送信してみます。 Memory Bank を確認すると、設定したトピックごとに記憶が作成されていることがわかります。 設定したトピックごとの記憶が Memory Bank に記録される 佐々木 駿太 (記事一覧) G-gen 最北端、北海道在住のクラウドソリューション部エンジニア 2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。 Follow @sasashun0805
G-gen の荒井です。当記事では、Google Cloud Next '26 で発表された Google Workspace に関する新機能について、公式の投稿記事およびセッションの内容をもとに紹介します。 G-gen Tech Blog では、現地でイベントに参加したメンバーや、日本から情報をウォッチするメンバーが、Google Cloud Next '26 に関連する記事を発信します。 blog.g-gen.co.jp はじめに Keynote Features Workspace Intelligence(GA) Rapid Enterprise Migration(GA) Drive & Document Editor New Gemini capabilities in Sheets, Docs, and Slides(Preview) Ask Gemini in Drive(GA) Third-party data in Sheets(Preview) Collaboration Ask Gemini in Chat(Preview) AI Inbox and AI Overviews in Gmail(Preview) Help from Gemini in every meeting(Preview) AI Features Workspace skills(Coming Soon) Custom Avatars in Vids(GA) Auto browse with Gemini in Chrome(GA) Workspace MCP Server(Developer Preview) Gemini Enterprise app Workspace capabilities in the Gemini Enterprise app(Private Preview) Management Simplified agent governance(GA) New sovereign controls and client-side encryption(Coming Soon) はじめに 以下の Google 公式投稿および実際に現地で行われたセッションを参考に、Google Cloud Next '26 で発表された Google Workspace に関する新機能を紹介します。なお、当記事で紹介する機能の提供ステータス(GA / Preview / Coming Soon)は 2026年4月29日現在の情報です。 参考 : 10 more announcements from Google Workspace at Cloud Next ‘26 参考 : 260 things we announced at Google Cloud Next '26 – a recap Keynote Features Workspace Intelligence(GA) 1日目のキーノートで発表された Workspace Intelligence は、Google Workspace における発表の中で最も重要なアップデートです。 新しいアプリケーションや操作ボタンとして表示されるものではなく、Google Workspace 内の抽象化されたセマンティックレイヤーとしてバックグラウンドで稼働する仕組みです。 公式投稿から引用 Workspace Intelligence は、Google Workspace の各種アプリケーションに保存されたファイルや、Gmail および Google Chat のメッセージ、インターネット上の情報からコンテキストを収集し、ユーザーの立場や業務内容を分析します。これにより、ユーザーが求めるアウトプットを的確に理解し、Gemini がパーソナライズされた回答を生成します。主要な機能は以下のとおりです。 情報収集 Google Workspace およびインターネットの情報から様々なコンテキスト情報を収集します。 状況認識 Gemini の推論技術を用いることで、今ユーザーにとって何が最も重要かを理解し、重要なタスクを把握します。 パーソナライゼーション 過去の仕事やコミュニケーションパターンを学習し、独自の仕事スタイル、話し方、書式設定の好みを理解し、パーソナライゼーションしたアウトプットを行います。 参考 : Google Cloud Next '26速報レポート - キーノート(1日目) - G-gen Tech Blog 参考 : Introducing Workspace Intelligence 参考 : Workspace
Intelligence Contextual AI for the enterprise 参考 : Introducing Workspace Intelligence, with admin controls Rapid Enterprise Migration(GA) 同じく1日目のキーノートで発表された Rapid Enterprise Migration については、キーノート内での詳細な発表はありませんでしたが、ブレイクアウトセッション「Fast-track to Google Workspace: Smooth migration, adoption, and interoperability」にて具体的な内容が紹介されました。 「Fast-track to Google Workspace: Smooth migration, adoption, and interoperability」のセッション内容は以下の記事を参照してください。 参考 : Fast-track to Google Workspace: Smooth migration, adoption, and interoperability(Google Cloud Next '26速報) - G-gen Tech Blog 実質的には、従来より提供されていた Data Import 機能に該当します。Data Import は従来「データ移行(新規)」という名称でしたが、管理コンソールやドキュメントも Data Import と名称が変更されています。 参考 : Introducing data import: An easier, faster, and higher-fidelity migration to Google Workspace at no additional tool cost 参考 : データ インポート ツールについて データ移行ツールは Data Import に集約され、Microsoft 365 から容易にデータ移行を行えます。スライド内で言及されている「データ移行速度が5倍」という点については、従来 Google Workspace に実装されていたデータ移行ツールに比べて速度が速くなったことを意味しています。 当機能は「データ移行(新規)」として既にプレビューで実装されていた機能です。当社による検証結果は、以下の記事で公開しています。 参考 : Microsoft OneDriveからGoogle ドライブへのデータ移行を検証してみた - G-gen Tech Blog 参考 : Microsoft TeamsからGoogle Chatへのデータ移行を検証してみた - G-gen Tech Blog 参考 : Microsoft SharePoint OnlineからGoogle ドライブへのデータ移行を検証してみた - G-gen Tech Blog 参考 : DropboxからGoogleドライブへのデータ移行を検証してみた - G-gen Tech Blog Drive & Document Editor New Gemini capabilities in Sheets, Docs, and Slides(Preview) 自然言語を用いてドキュメント(スプレッドシートやスライド)の作成や編集ができます。サイドパネルの Gemini に自然言語で指示をするだけで、複数枚のスライドやデータに基づいたインフォグラフィックの作成、コメントのフィードバックに基づいた編集が実行できます。作成されたスライドは編集可能な状態を維持するため、後日資料の再編集もできます。 さらに、企業ブランドを反映したテンプレートを参照しドキュメント作成をすることもできるため、ブランドテンプレートへ変換する手間がなくなります。 参考 : New ways to create faster with Gemini in Docs, Sheets, Slides and Drive 参考 : New Gemini capabilities in Google Docs help you go from blank page to brilliance 参考 : Build and edit complex spreadsheets with Gemini in Google Sheets 実際の動作イメージについては、Google から公開されている以下の動画を参照してください。 youtu.be Ask Gemini in Drive(GA) Ask Gemini in Drive を使用することで、自然言語で探したい情報を素早く検索し要約を作成できます。またソースとなるデータも列挙されるため確実な情報を瞬時に入手することができます。 情報検索時はユーザーのアクセス権限を越えた検索はできません。またコピーや複製は行われないため、安全に使用できます。 参考 : New ways to create faster with Gemini in Docs, Sheets, Slides and Drive 参考 : Ask Gemini in Drive now generally available 参考 : AI Overviews in Drive now generally available Third-party data in Sheets(Preview) HubSpot や Salesforce などのアプリからサードパーティデータを Google スプレッドシートにインポートできるようになりました。 また、スプレッドシートの表から、ダッシュボードやヒートマップ、かんばんボードといった簡易アプリを作成できます。アプリ内のデータはソースとなる表のデータとリアルタイム接続されており、リアルタイムに情報が更新されます。生成したアプリはチームメンバーと共有できます。 表データからアプリを生成するデモンストレーションは、以下の動画で確認できます。 youtu.be Collaboration Ask Gemini in Chat(Preview) Google Chat 内に Ask Gemini が追加され、Workspace Intelligence によりパーソナライズ化された Gemini と会話を行うことができます。 重要タスクの確認やメールの検索、ドキュメントの作成など網羅的に業務支援を行います。 参考 : Get started with Ask Gemini in Google Chat Ask Gemini in Chat を用いてスライドを作成するイメージについては、以下の動画を確認してください。 youtu.be AI Inbox and AI Overviews in Gmail(Preview) Gmail に AI Inbox というトレイが追加されます。受信したメールに対して、 AI を使用した以下の機能を提供します。 To-Do リストの作成 返信が必要なメールを探す キーワードではなく、自然言語でのメール検索 受信メールやスレッドの要約 参考 : Search faster and smarter with AI Overviews in Gmail search Help from Gemini in every meeting(Preview) Google Meet の Gemini 機能により、対面での会議でも、Gemini が音声を記録し、議事録を作成できます。また他社の Web 会議ツールを使用していてもデバイスのマイク機能から議事録の作成ができます。Gemini が会議内容やアクションアイテムを記録することで、ユーザーはより一層会話に集中することができます。 参考 : 対面会議で「自動メモ生成」を使用する 当機能についてはブレイクアウトセッション「Transform meetings into outcomes using Google Workspace with Gemini」でも一部言及されています。以下のセッションレポートも参照してください。 blog.g-gen.co.jp AI Features Workspace skills(Coming Soon) Workspace Studio 内で繰り返しタスクを自動化し、Skill として登録できます。Skill は組織に共有可能であり、Google Workspace 内のあらゆる Gemini からその Skill を起動できるようになります。 Custom Avatars in Vids(GA) Nano Banana 2 の機能により、Google Vids のアバターにブランディング要素を追加できます。企業ロゴをアップロードすることで、アバターにロゴを反映できます。アバターの T シャツにロゴを挿入するなどの編集が、簡単にできます。 参考 : Create custom branded avatars in Google Vids with Nano Banana 2 Auto browse with Gemini in Chrome(GA) 当機能は米国の Google Workspace ユーザーにおけるアップデートです。日本のユーザーは、まだ対応していません。 Chrome Enterprise ライセンスを保有する場合、Gemini の自動ブラウジング機能を有効化できます。Web サイトやアプリを横断し複数ステップのタスクを実行します。Workspace のエンタープライズグレードのセキュリティ機能が適用されるため、機密情報は保護されます。 参考 : The new era of browsing: Putting Gemini to work in Chrome Workspace MCP Server(Developer Preview) Workspace MCP Server を使用することで、ドキュメント作成や Gmail の返信の作成など、高度な Workspace 機能を AI アプリケーションやエージェントに組み込むことができます。 参考 : Google Workspace MCP サーバーを構成する Gemini Enterprise app Workspace capabilities in the Gemini Enterprise app(Private Preview) Gemini Enterprise app から Google Workspace の各種アプリケーションへアクセスし、シームレスに作業を進めることができます。Google カレンダーから会議をスケジュールしたり、ドキュメントやスライドを作成・編集できます。 Management Simplified agent governance(GA) Google Workspace 管理コンソールに AI 関連の制御を包括的に管理できる AI コントロールセンター が導入されました。Workspace 内のデータへのエージェントアクセスを監視、制御、監査することで、AI 活用に関するセキュリティリスクを軽減できます。 New sovereign controls and client-side encryption(Coming Soon) Google Workspace の一部エディションではデータの保管場所を米国および EU に限定することができます。 参考 : データの地理的な保管場所を選択する 今後はドイツやインドなど、さらに多くの国がサポートされる計画が発表されました。 また機密性の高いデータについては、クライアント暗号化により、Google を含む様々なエンティティからのアクセスを禁止するセキュリティ機能が実装されます。 荒井 雄基 (記事一覧) クラウドソリューション部 クラウドサポート課 オンプレ環境のネットワーク・サーバーシステムを主戦場としていたが、クラウド領域にシフト。現在は Google Workspace を中心に企業の DX 推進をサポート。 ・ Google Cloud Partner Top Engineer 2025 / 2026 ・Google Cloud 認定資格 7冠 ・Jagu'e'r エバンジェリスト Follow @arapote_tweet
G-gen の杉村です。2026年4月に発表された、Google Cloud や Google Workspace のイチオシアップデートをまとめてご紹介します。記載は全て、記事公開当時のものですのでご留意ください。 はじめに Google Cloud Next '26 の開催 プロダクトの名称変更 概要 Looker Studio → Data Studio(和名: データポータル) Dataplex Universal Catalog → Knowledge Catalog Cloud Composer → Managed Service for Apache Airflow BigLake → Google Cloud Lakehouse Dataproc → Managed Service for Apache Spark Vertex AI → Gemini Enterprise Agent Platform Google Cloud のアップデート オープンモデル Gemma 4 がリリース Cloud Armor に match condition builder が登場(Preview) Google の動画生成 AI モデル Veo 3.1 Lite が Preview 公開 Google Cloud の VPC で Hybrid Subnets が使用可能に Google Cloud コンソールでも Load Balancer 作成時に Certificate Manager 証明書アタッチが可能に Pub/Sub で AI Inference Single Method Transform (SMT)機能が一般公開 BigQuery に AI.AGG 関数が登場(Preview) Cloud SQL でストレージの縮小ができるように すべての Google Cloud 認定資格で日本語版が受験可能に BigQuery Graph が Preview 公開 Privileged Access Manager(PAM)で将来の IAM 権限付与を予約できるように Colab Enterprise で visualization cells が使えるように Cloud Run woker pools が Preview 版 → 一般公開(GA) Google Cloud〜AWS間のPartner Cross-Cloud Interconnectが一般公開(GA) Gemini Enterprise 用の専用 IAM ロールが登場 データポータルで BigQuery の Conversational Analytics が使用可能に Cloud Run でエフェメラルディスクが Preview 公開 Gemini Cloud Assist のサイドパネルが強化 Gemini Enterprise app でカスタム MCP サーバーが接続可能に BigQuery の CDC テーブルからマテリアライズドビューを作成可能に Compute Engine、GKE、Cloud Storage で「AI Zone」が公開 Google SecOps が VPC Service Controls に対応 VPC Service Controls の ingress/egress ルールで IAM ロールが使用可能に Google Workspace のアップデート Google Vids から YouTube への直接エクスポートが可能に Chrome 拡張機能 Google Vids Screen Recorder が登場 Gemini アプリの macOS 版ネイティブデスクトップアプリが登場 Gemini アプリで会話結果から Docs や PDF を生成可能に Google Meet の Take notes for me(自動議事録)のカスタマイズが可能に はじめに 当記事では、毎月の Google Cloud(旧称 GCP)や Google Workspace(旧称 GSuite)のアップデートのうち、特に重要なものをまとめます。 また当記事は、Google Cloud に関するある程度の知識を前提に記載されています。前提知識を得るには、ぜひ以下の記事もご参照ください。 blog.g-gen.co.jp リンク先の公式ガイドは、英語版で表示しないと最新情報が反映されていない場合がありますためご注意ください。 Google Cloud Next '26 の開催 Google Cloud の旗艦イベントである Google Cloud Next が、米国ネバダ州ラスベガスにおいて4月22日(水)から24日(金)までの3日間、開催された。 Agentic(エージェンティックな、自律的な)をテーマに、数多くの新機能が発表された。発表された機能の中には、既に一般公開(GA)されているもの、Preview 公開されているもの、まだ使用可能になっていないものなどが混同している。 主要な発表がされたキーノート(基調講演)については、以下の記事を参照されたい。 blog.g-gen.co.jp blog.g-gen.co.jp また G-gen では、現地に派遣したエンジニアや日本からリモートで情報収集するエンジニアが、各種セッションレポートを公開している。以下のカテゴリ一覧から、Google Cloud Next '26 の関連記事にアクセスできる。 blog.g-gen.co.jp プロダクトの名称変更 概要 2026年4月には以下のように、プロダクトの名称変更が相次いだ。 旧名称 新名称 Looker Studio Data Studio(和名: データポータル) Dataplex Universal Catalog Knowledge Catalog Cloud Composer Managed Service for Apache Airflow BigLake Google Cloud Lakehouse Dataproc Managed Service for Apache Spark Vertex AI Gemini Enterprise Agent Platform Gemini Enterprise Gemini Enterprise app Looker Studio → Data Studio(和名: データポータル) Data Studio returns as new home for Data Cloud assets (2026-04-11) Looker Studio は Data Studio(和名: データポータル)に名前が再変更された。昔の名前に戻ったことになる。経緯は以下のとおり。 もともとは「英名: Data Studio / 和名: データポータル」という名称だった 日本では商標の関係で「Data Studio」という名称が使えないため「データポータル」と表記される 2022年10月の Google Cloud Next '22 で「Looker Studio」に名前が変更され、Looker ブランドに統一された。Looker と Looker Studio の2つの製品が存在する状態になり、混乱を呼んだ 2026年4月に「英名: Data Studio / 和名: データポータル」に戻った システム的には以下の変更がされた。 UI 上の表記が「データポータル(Data Studio)」になった 従来の URL( lookerstudio.google.com )にアクセスすると、新しい URL( datastudio.google.com )にリダイレクトされる Dataplex Universal Catalog → Knowledge Catalog Knowledge Catalog release notes - April 10, 2026 Dataplex Universal Catalog は Knowledge Catalog に改名された。 フルマネージドのデータカタログサービス。今回で4回目の名称変更となる。名称の変遷は以下のとおり。 Data Catalog → Dataplex Catalog → BigQuery universal catalog → Dataplex Universal Catalog → Knowledge Catalog Cloud Composer → Managed Service for Apache Airflow Cloud Composer release notes - April 15, 2026 Cloud Composer は Managed Service for Apache Airflow に改名された。 フルマネージドの Apache Airflow であり、データパイプラインの実装等に使われるマネージドサービス。 BigLake → Google Cloud Lakehouse What is Google Cloud Lakehouse? (2026-04-20) BigLake が Google Cloud Lakehouse に改称。 Google Cloud Lakehouse は、Apache Spark、Apache Flink、Trino といったオープンソースのクエリエンジンとの互換性を持つ、レイクハウスフレームワーク。BigQuery を基幹技術とする。 Dataproc → Managed Service for Apache Spark Managed Service for Apache Spark cluster deployment overview (2026-04-22) Dataproc が Managed Service for Apache Spark に改称。 Managed Service for Apache Spark はその名のとおり、フルマネージドの Apache Spark クラスタ。 Vertex AI → Gemini Enterprise Agent Platform Vertex AI to Gemini Enterprise Agent Platform naming changes (2026-04-22) Vertex AI は、Gemini Enterprise Agent Platform と改名された。これに伴い、これまで Gemini Enterprise と呼ばれていた Web サービスは、Gemini Enterprise app と改名された。また Vertex AI プロダクト群は、以下のように名称が変更となる(一部のみ抜粋)。 旧称 新名称 Vertex AI Gemini Enterprise Agent Platform Gemini Enterprise Gemini Enterprise app Generative AI on Vertex AI Generative AI Vertex AI Studio Agent Studio Vertex AI API Agent Platform API Vertex AI Agent Engine Agent Runtime Vertex AI Search Agent Search Vertex AI Search for Commerce Agent Search for Commerce Vertex AI Conversation Agent Conversation Vertex AI Vector Search Vector Search Vertex AI Training Agent Platform Managed Training Vertex AI Pipelines Agent Platform Pipelines Google Cloud のアップデート オープンモデル Gemma 4 がリリース Gemma 4 モデルの概要 (2026-03-31) オープンモデル Gemma 4 がリリース。商用利用可。以下の種類がある。 E2B / E4B : モバイル、エッジ、ブラウザ向け 31B : より高密度 26B A4B : 高スループットで高度な推論向け Cloud Armor に match condition builder が登場(Preview) Use the match condition builder (2026-03-31) フルマネージド WAF である Cloud Armor に match condition builder が登場(Preview)。 CEL 文を書く時の UI 補助ツール。ルールを書く負担が軽減される。 Google の動画生成 AI モデル Veo 3.1 Lite が Preview 公開 Veo 3.1 Lite Generate Preview (2026-04-02) Google の動画生成 AI モデル Veo 3.1 Lite が Preview 公開。 Veo 3.1 < 3.1 Fast < 3.1 Lite の順で生成秒数あたりの料金単価が安く、Lite が最も安価なモデルとなる。 Google Cloud の VPC で Hybrid Subnets が使用可能に About migrating to Google Cloud with Hybrid Subnets (2026-04-03) Google Cloud の VPC で Hybrid Subnets が使用可能になった。 クラウド側サブネットにオンプレと同じ CIDR を持たせ、IP アドレスを変えずにサーバーをクラウドへ移行できる。オンプレ側ルーターに Proxy ARP の設定が必要であり、またクラウド側のルーティングも少しトリッキーになる。 Google Cloud コンソールでも Load Balancer 作成時に Certificate Manager 証明書アタッチが可能に Google Cloud release notes - April 05, 2026 (2026-04-05) Cloud Load Balancer 作成時に Certificate Manager 証明書のアタッチが Google Cloud コンソールでもできるようになった。 従来は DNS 認証した証明書だと gcloud コマンド等を使う必要があった。今後は証明書マップを UI 上で選択できる。 Pub/Sub で AI Inference Single Method Transform (SMT)機能が一般公開 AI Inference SMT (2026-04-06) Pub/Sub で AI Inference Single Method Transform (SMT)機能が一般公開。Pub/Sub トピックまたはサブスクリプション内のメッセージを Gemini 等の AI モデルで加工。以下のような用途がある。 メッセージに対してリアルタイムで AI モデルによる推論結果を追加(エンリッチメント) アプリケーション側の処理のオフロード 以下の記事も参照。 blog.g-gen.co.jp BigQuery に AI.AGG 関数が登場(Preview) The AI.AGG function (2026-04-06) BigQuery に AI.AGG 関数が登場(Preview)。Cloud Storage 上の非構造化データ(画像またはテキスト)に対して Gemini を使い「意味的な集計」のような処理ができる。感情分析、コンテンツ要約、ログ分析など。 Cloud SQL でストレージの縮小ができるように About storage shrink (2026-04-06) Cloud SQL でストレージの縮小ができるようになった。従来は拡大はできたが縮小はできなかった。インスタンスの再起動が必要。 プライマリインスタンスとリードレプリカの両方で可能。 すべての Google Cloud 認定資格で日本語版が受験可能に Google Cloud 認定資格の一覧を解説。全部で何個ある?難易度は? (2026-04-08) これまで日本語版しか提供されていなかった以下の2試験の日本語版が公開された。 Professional Security Operations Engineer Professional Cloud Database Engineer これをもって、14種類すべての Google Cloud 認定資格が、日本語で受験可能になった、 以下の記事も参照。 blog.g-gen.co.jp BigQuery Graph が Preview 公開 Introduction to BigQuery Graph (2026-04-09) BigQuery Graph が Preview 公開。 Graph Query Language(GQL)を使ってデータ間の関係性を可視化できる。CREATE PROPERTY GRAPH 文でノードテーブル・エッジテーブルを事前に定義。 Privileged Access Manager(PAM)で将来の IAM 権限付与を予約できるように Grant scheduling (2026-04-13) Privileged Access Manager(PAM)で将来の IAM 権限付与を予約できるようになった。最大7日後の予約が可能。 Colab Enterprise で visualization cells が使えるように Use visualization cells (2026-04-13) Colab Enterprise で visualization cells が使えるように。データフレームに入れた値を基にチャート(図表)を簡単に UI で作成できる。BigQuery → df → 可視化を UI 上で簡単に行える。 Colab Enterprise の visualization cells Cloud Run woker pools が Preview 版 → 一般公開(GA) Deploy worker pools to Cloud Run (2026-04-14) Cloud Run woker pools が Preview 版 → 一般公開(GA)。 Pub/Sub などに対してタスクを取得する pull 型ワークロードを実行するためのフルマネージドのコンテナ基盤。高いコスト効率でコンテナのジョブを実行できる。 Google Cloud〜AWS間のPartner Cross-Cloud Interconnectが一般公開(GA) Partner Cross-Cloud Interconnect for AWS overview (2026-04-14) Google Cloud と AWS を容易に専用線接続できる Partner Cross-Cloud Interconnect が一般公開(GA)。 VPC ピアリングまたは Network Connectivity Center 経由で接続できるため、かなり手軽に Google Cloud 〜 AWS 間で専用線確立が可能。 最短で当日中に接続を確立できる。帯域は1Gbps〜100Gbps。 Gemini Enterprise 用の専用 IAM ロールが登場 IAM roles and permissions (2026-04-15) Gemini Enterprise 用の専用 IAM ロールが登場。 Gemini Enterprise 管理者( roles/discoveryengine.agentspaceAdmin ) Gemini Enterprise ユーザー( roles/discoveryengine.agentspaceUser ) これまでは事前定義ロールとして「ディスカバリー エンジン管理者( roles/discoveryengine.admin )」および「ディスカバリー エンジン ユーザー( roles/discoveryengine.user )」が存在していた。 なお2026年4月現在、これらのロールはそれぞれ名称が違うだけで、含まれている権限が全く同一である。 Gemini Enterprise 管理者 <=> ディスカバリー エンジン管理者 Gemini Enterprise ユーザー <=> ディスカバリー エンジン ユーザー データポータルで BigQuery の Conversational Analytics が使用可能に Data agents in Data Studio (2026-04-16) データポータル(先日、Looker Studio から改名した)の画面から、BigQuery の Conversational Analytics(会話型分析)を使用できるようになった。 データポータル Proライセンスは不要。BigQuery でデータエージェントを作成して、一般従業員にエージェントを配ることが容易になった。 データポータルから BigQuery のデータエージェントを使用する Cloud Run でエフェメラルディスクが Preview 公開 Configure an ephemeral disk for Cloud Run services (2026-04-20) Cloud Run でエフェメラルディスクが Preview 公開。 ext4 フォーマットの一時ディスク。インスタンス停止で消去される。 service、job、worker pool いずれでも使用可。従来の /tmp はインメモリのためメモリ料金を消費したが、今後は一時ディスクに逃がせる。 Preview 公開されている2026年4月現在、料金の表記はない。 Gemini Cloud Assist のサイドパネルが強化 Gemini Cloud Assist release notes - April 22, 2026 (2026-04-22) 日本語でも使える 表示させているコンソール画面をコンテキストとして読み取る グラウンディング有無を設定 カスタムインストラクション など。その他にも Private Preview で MCP への対応など。 Gemini Cloud Assist のサイドパネルが強化 Gemini Enterprise app でカスタム MCP サーバーが接続可能に Set up your custom MCP server data store (2026-04-22) Gemini Enterprise app でカスタム MCP サーバーをデータストアとして接続できるようになった(Preview)。 認証は OAuth。MCP 準拠の外部システムや社内データに Gemini Enterprise app からアクセスできる。 BigQuery の CDC テーブルからマテリアライズドビューを作成可能に Tables with active change data capture (2026-04-28) BigQuery の CDC(change data capture)適用テーブルをベーステーブルとして、マテリアライズドビューを作成可能になった。 ストリーミングデータを受け取るテーブルをベースに、自動更新のマテビューを作成でき、運用負荷の軽減になる。 Compute Engine、GKE、Cloud Storage で「AI Zone」が公開 AI Zones (2026-04-27) Google Cloud で「AI Zone」が公開。Compute Engine、GKE、Cloud Storage が対応。 us-south1-ai1b のような名称の特殊なゾーン。GPU や TPU が優先的に提供される代わりに一部サービスは提供されない。オランダ、テキサス、アイオワのリージョンで使用可能。地理的に隔離されているため、通常ゾーンとのレイテンシは比較的大きい。 Google SecOps が VPC Service Controls に対応 Configure VPC Service Controls for Google SecOps (2026-04-30) Google SecOps の VPC Service Controls 対応が一般公開(GA)。Google SecOps は Google の SIEM 製品。VPC Service Controls による IP アドレス制御や、コンテキストアウェアなアクセス制御が可能になった。 VPC Service Controls の ingress/egress ルールで IAM ロールが使用可能に Configure IAM roles in ingress and egress rules (2026-04-30) VPC Service Controls の ingress/egress ルールで、IAM ロールを使用した許可設定が可能に(Preview → GA)。 これまでプリンシパルやメソッドの指定ができたが特定の IAM ロールを持っている場合のみアクセス許可するよう設定できるようになった。以下の記事も参照。 blog.g-gen.co.jp Google Workspace のアップデート Google Vids から YouTube への直接エクスポートが可能に Export Google Vids directly to YouTube (2026-04-02) Google Vids から YouTube への直接エクスポートが可能に。 MP4 で一度エクスポートする必要がない。限定公開動画のエクスポートも可能。 Chrome 拡張機能 Google Vids Screen Recorder が登場 Record your screen directly from Chrome with the Google Vids Screen Recorder Chrome Extension (2026-04-02) Chrome 拡張機能「Google Vids Screen Recorder」が登場。ブラウザ画面を録画して直接 Google Vids に記録できるため編集や共有が容易になる。 Google Workspace でも個人アカウントでも利用可能。 Gemini アプリの macOS 版ネイティブデスクトップアプリが登場 Gemini アプリが Mac に登場 (2026-04-15) Gemini アプリの macOS 版ネイティブデスクトップアプリが登場。 Web 版にない機能として、画面共有して Gemini に質問する機能などがある。 Gemini アプリで会話結果から Docs や PDF を生成可能に Move from conversation to creation with file generation in Gemini (2026-04-27) Gemini アプリで会話結果から Google ドキュメント、スプレッドシート、Microsoft Word(.docx)、Microsoft Excel(.xlsx)、PDF などのファイルを直接、生成可能になった。その他の対応フォーマットは以下のとおり。 Google Workspace files (Docs, Sheets, and Slides) PDF file Microsoft Word (.docx) Microsoft Excel (.xlsx) CSV file (.csv) LaTeX (.tex) Plain Text (.txt) Rich Text Format (.rtf) Markdown (.md) Gemini アプリで会話結果から Docs や PDF を生成可能に Google Meet の Take notes for me(自動議事録)のカスタマイズが可能に New ways to customize AI-generated meeting notes (2026-04-30) Google Meet の Take notes for me(自動議事録)のカスタマイズが可能に。メモの長さや決定事項を入れるかどうかなど。 ただし、一部機能は英語にしか対応していない。詳細なカスタムプロンプトを入れられるわけではない。2026年4月30日から15日間かけて段階的ロールアウト。 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it