G-gen のminです。BigQuery の データマスキング 機能を解説します。データマスキングを使うと、機密情報をマスキングして特定できない形でクエリ結果に表示させることができ、分析を阻害せずにデータを保護することができます。 データマスキングとは 概要 列レベルのアクセス制御との違い 仕組み 権限とロール マスキングルールの種類 定義済みルール カスタムマスキングルーチン ルールの優先順位 設定手順 分類とポリシータグの作成 データポリシーの作成 テーブル列へのタグ付け データポリシーの列への直接付与 制約と注意点 互換性のない機能 SQL で利用する際の注意点 コストへの影響 セキュリティの考慮事項 データマスキングとは 概要 BigQuery の データマスキング とは、BigQuery テーブルの特定の列に対して、ユーザーの権限に応じてデータをマスクして表示する機能です。 ポリシータグと呼ばれるタグをテーブルの列に付与することで、誰が機密情報に直接アクセスできるか、あるいはマスクされた状態でアクセスできるか、またマスキングをどのように行うかを定義します。この機能により、分析を阻害せずにデータを保護することができます。 参考 : Introduction to data masking 列レベルのアクセス制御との違い BigQuery で特定の列を保護する他の機能として、 列レベルのアクセス制御 があります。 参考 : BigQueryの列レベルのアクセス制御・行レベルのセキュリティを解説 - G-gen Tech Blog 列レベルのアクセス制御とデータマスキングの主な違いは、「権限がない場合にエラーにするか、マスクして見せるか」という点です。 比較項目 列レベルのアクセス制御 データマスキング 主な目的 特定の列へのアクセス自体を制限する アクセスを許可しつつ、値を加工してマスクする 権限がない場合の挙動 クエリに含めるとエラー(Access Denied)になる 値がマスクされて表示される 分析への影響 クエリ自体が実行できない マスクされた状態で集計や結合が可能 主なユースケース 閲覧を完全に禁止すべき極めて機密性の高い情報 個人の特定は避けつつ、統計分析には利用したい情報 列レベルのアクセス制御では、権限のないユーザーが機密情報の列を含むクエリを実行すると エラー になります。 一方、データマスキングを使用すると、権限のないユーザーでもクエリ自体は成功させつつ、データの値をハッシュ値や NULL、あるいは「XXXX」のように、 別の文字列に置き換えて表示 させることができます。 仕組み データマスキングは、以下のように設定されます。 分類(Taxonomy)とポリシータグの作成 分類はデータの意味的な区分を表すコンテナです。この分類の中に、「個人情報」「機密情報」など複数のポリシータグを定義できます。各ポリシータグには IAM ロールを直接紐づけることが可能です。 データポリシーの作成 ポリシータグに対して、「どのようなマスキングルールを適用するか」と「どのプリンシパルに適用するか」を定義します。 テーブル列への適用 テーブルの列にポリシータグを紐付けます。 ポリシーが適用された列へクエリが実行されると、クエリ実行時に以下のように動的に表示結果に反映されます。 タグに紐づく IAM ポリシーが評価される 対象ユーザーのロールが確認される 必要に応じてマスキングルールが適用される 権限とロール データマスキングの挙動は、ユーザーが持つ IAM ロールによって決定されます。主に以下の2つのロールが関係します。 ロール名 ID 権限の内容 きめ細かい読み取り roles/datacatalog.categoryFineGrainedReader 元のマスクされていない生データを閲覧できる。 マスクされた読み取り roles/bigquerydatapolicy.maskedReader マスクされたデータを閲覧できる。 ユーザーが上記のどちらの権限も持っていない場合、 Access Denied エラーとなり、クエリは失敗します。 マスキングルールの種類 定義済みルール データポリシーには、以下の定義済みのマスキングルールを適用できます。 参考 : Introduction to data masking - Data masking rules ルール名 動作概要 適用可能なデータ型 ハッシュ(SHA-256) 値を SHA-256 でハッシュ化して表示します。同じ値は常に同じハッシュ値になる(決定論的である)ため、JOIN のキーとして利用可能です。 STRING, BYTES メールマスク メールアドレスの @ の前を XXXXX に置き換えます(例: XXXXX@gmail.com )。無効な形式の場合は SHA-256 ハッシュ化されます。 STRING 先頭/末尾 4 文字 先頭または末尾の 4 文字のみを表示し、残りを XXXXX に置き換えます。文字列が短い場合は SHA-256 ハッシュ化されます。 STRING 年月日マスク 日付をその年の1月1日に切り詰めます(例: 2026-02-14 → 2026-01-01 )。 DATE, DATETIME, TIMESTAMP デフォルトのマスキング値 データ型に応じたデフォルト値を返します。 全ての型 NULL 化 NULL を返します。データ型自体もマスクしたい場合に使用します。 全ての型 ランダムハッシュ 読み取りごとに一意のソルトを自動生成して非決定論的にハッシュ化します。同じ値でもクエリごとに結果が変わるため、セキュリティ強度は高いですが、異なるクエリ間での JOIN はできません。ポリシータグでは使用できず、列に直接付与するデータポリシーで使用できます STRING, BYTES カスタムマスキングルーチン 定義済みのマスキングルールの他に、ユーザー定義関数を使用して、独自のマスキングロジックを作成することも可能です。例えば、「電話番号の下4桁だけを表示する」「特定の辞書に基づいて置換する」といった高度な要件に対応できます。 ただし、 STRUCT 型には対応していません( STRUCT の中の各フィールドに対しては適用可能です)。 ルールの優先順位 1つのポリシータグに対して、複数のデータポリシーを設定することが可能です。ユーザーが複数のグループに所属している場合など、複数のルールが同時に適用されるユースケースでは、以下の優先順位に従って、最も具体的で有用性の高いルールが優先されます。 カスタムマスキングルーチン ランダムハッシュ ハッシュ(SHA-256) メールマスク 末尾 4 文字 先頭 4 文字 年月日マスク デフォルトのマスキング値 NULL 化 例えば、あるユーザーに対して「ハッシュ」の権限と「NULL 化」の権限の両方が与えられている場合、優先度の高い「ハッシュ」が適用されます。 参考 : Introduction to data masking - Data masking rule hierarchy 設定手順 参考 : Mask column data 分類とポリシータグの作成 Google Cloud コンソールの BigQuery > ポリシータグ を選択します。 分類(Taxonomy)とポリシータグを作成します。 データポリシーの作成 作成したポリシータグを選択し、データポリシーを管理を選択します。 「マスキングルール」と「対象のプリンシパル(ユーザーやグループ)」を指定します。 指定されたプリンシパルに roles/bigquerydatapolicy.maskedReader ロールが付与されます。 テーブル列へのタグ付け BigQuery のテーブルスキーマ編集画面 > Add policy tag を選択して、対象の列にポリシータグを付与します。 データポリシーの列への直接付与 別の設定手順として、ポリシータグを作成せずに、 データポリシーをテーブルの列に直接紐付ける ことができます。 ただし2026年2月現在、この設定方法は Preview です。また2026年2月現在、コンソール画面からの設定操作はできず、SQL を実行するか、REST API へのリクエストによって設定します。 この設定方法を使う場合は、いくつかの制約事項がありますので、使用の際は必ず公式ドキュメントを確認してください。 参考 : Mask column data - Mask data by applying data policies to a column 以下に、SQL を使った設定操作を紹介します。 CREATE TABLE または ALTER TABLE ステートメントを使用し、 OPTIONS 句でデータポリシーを指定します。 データポリシーの作成 -- 例: データポリシー「ハッシュ(SHA-256)」のマスキングを東京リージョンに作成 CREATE DATA_POLICY `your-project-id.region-asia-northeast1.test_direct_masking_policy` OPTIONS( data_policy_type= " DATA_MASKING_POLICY " , masking_expression= " SHA256 " ); テーブル列へのポリシー適用 -- 例: 既存の列にデータポリシーを適用する ALTER TABLE `your-project-id.your-dataset.your- table ` ALTER COLUMN email SET OPTIONS ( data_policies=[ " {'name':'your-project-id.region-asia-northeast1.test_direct_masking_policy'} " ]); 制約と注意点 互換性のない機能 レガシー SQL サポートされていません。GoogleSQL を使用する必要があります。 ワイルドカードテーブル ワイルドカードを使用したクエリでは、参照されるすべてのテーブルのすべての列に対して、生データの閲覧権限「きめ細かい読み取り」が必要です。 パーティション/クラスタ化列 パーティションまたはクラスタ化キーとして設定されている列に対してデータマスキングを適用した場合、その列を含むクエリはサポートされません。 テーブルのコピー テーブルコピーを行うには、ソーステーブルの全列に対する生データの閲覧権限が必要です。 SQL で利用する際の注意点 マスクされた列を SQL の WHERE 句などで使用する場合、挙動に注意が必要です。 SHA-256 ハッシュなどの決定的なマスキング(同じ入力に対して常に同じ結果が返るもの)では、等価比較( = )や GROUP BY による集計は機能しますが、大小比較( > や < )や LIKE 検索は元の値に基づいた結果にならないため、意味をなしません。 コストへの影響 オンデマンドでの BigQuery の料金はスキャンしたデータ量に基づきます。データマスキングで「NULL 化」や「デフォルトのマスキング値」が適用される場合、その列のデータはスキャンされず、課金対象のバイト数が削減される場合があります。 一方、ハッシュ化などの計算を伴うマスキングの場合、通常通りのスキャン料金が発生します。 セキュリティの考慮事項 SHA-256 ハッシュは決定論的であるため、ブルートフォース攻撃に対して脆弱になる可能性があります。攻撃者が元の値のリストを持っている場合、それらをハッシュ化して比較することで、元の値を推測できる可能性があります。 より高いセキュリティが必要な場合は、NULL 化やデフォルトマスキングルール、あるいは非決定論的なハッシュ化を行うランダムハッシュなど別のマスキング方法を検討してください。ただし、前述のとおり、ランダムハッシュは列に直接データポリシーを付与する場合にのみ使用できます(2026年2月現在、Preview)。 佐々木 愛美 (min) (記事一覧) クラウドソリューション部 データアナリティクス課。2024年7月 G-gen にジョイン。G-gen 最南端、沖縄県在住。最近覚えた島言葉は、「マヤー(猫)」。
G-gen の助田です。当記事では、 Network Connectivity Center を使い、異なるプロジェクトの VPC ネットワーク同士を接続する手順を解説します。 はじめに Network Connectivity Center とは 検証シナリオ ハイブリッドスポーク使用時の注意点 設定手順 事前準備 プロジェクト A: NCC ハブの作成とスポークの接続 プロジェクト B: スポークの作成と接続リクエストの送信 プロジェクト A: 接続リクエストの承認 疎通確認 ルートテーブルの確認 PING による疎通テスト はじめに Network Connectivity Center とは Network Connectivity Center (以下、NCC)は、Google Cloud 上の VPC ネットワークやオンプレミスネットワーク等を、ハブアンドスポークモデルで一元管理するためのネットワーク接続管理サービスです。複数の VPC ネットワークを統合管理し、推移的ルーティングや拠点間接続を実現できます。 NCC の基本的な仕様や詳細な説明については、以下の記事をご参照ください。 blog.g-gen.co.jp 検証シナリオ 当記事では、ハブを管理するプロジェクト A と、そこへ接続するスポークを持つプロジェクト B の構成を検証します。 具体的には、プロジェクト A に作成する NCC ハブ( ncc-hub-central )に対して、自プロジェクトの VPC ネットワーク( vpc-a )と、別プロジェクトであるプロジェクト B の VPC ネットワーク( vpc-b )を、それぞれスポークとして接続します。これにより、異なるプロジェクトに存在する VPC ネットワーク間で経路情報を交換し、 相互通信が可能な状態 を実現します。 構成図は、以下の通りです。 構成図 リソース定義は以下の通りです。 項目 プロジェクト A(ハブ管理) プロジェクト B(スポーク接続) プロジェクト ID project-a-hub project-b-spoke VPC ネットワーク名 vpc-a vpc-b サブネット subnet-a( 10.0.0.0/24 ) subnet-b( 172.16.0.0/24 ) リージョン asia-northeast1 asia-northeast1 NCC ハブ名 ncc-hub-central - スポーク名 spoke-a spoke-b ハイブリッドスポーク使用時の注意点 当記事ではプロジェクトを跨いだ VPC スポーク の接続手順を紹介しますが、プロジェクト間接続において、ハイブリッドスポーク(Cloud VPN、Cloud Interconnect、ルーター アプライアンス)は、 ハブと同じプロジェクト内に存在する必要 があります。 例えば、外部ネットワーク(オンプレミスや他クラウド等)との接続用リソースをスポーク側のプロジェクト(今回の例ではプロジェクト B)に配置し、プロジェクト A のハブへ接続することはできません。ハイブリッド接続を行う場合は、 ハブ側のプロジェクトへリソースを集約しなければならない という設計上の制約に留意が必要です。 参考 : ハイブリッドスポーク 設定手順 事前準備 プロジェクトを跨いだネットワーク構成とする場合、各プロジェクトでの作業内容に応じて適切な IAM 権限の付与が必要です。今回は以下の作業を実施するため、それぞれのプロジェクトで権限を設定します。 当記事の作業では、プロジェクト A において、ハブの作成や別プロジェクトからの接続承認、および自プロジェクトの VPC ネットワークのスポーク化を行います。この作業のためにハブの作成者が必要な権限は以下のとおりです。 リソース ロール プロジェクト A ・ハブ アンド スポーク管理者( roles/networkconnectivity.hubAdmin ) ・スポーク管理者( roles/networkconnectivity.spokeAdmin ) ・Compute ネットワーク管理者( roles/compute.networkAdmin ) 一方のプロジェクト B では、スポークを作成し、プロジェクト A のハブに対して接続リクエストを送信します。この作業のためにスポークの作成者が必要な権限は以下のとおりです。 リソース ロール プロジェクト A ・グループ ユーザー( roles/networkconnectivity.groupUser ) プロジェクト B ・スポーク管理者( roles/networkconnectivity.spokeAdmin ) ・Compute ネットワーク管理者( roles/compute.networkAdmin ) 上記では、プロジェクト A と B にそれぞれ別の管理者がいる前提で必要な権限を分けて記載しましたが、両方のプロジェクトに対して同じ管理者が操作をしても構いません。 参考 : ハブとスポークを操作する 参考 : 別のプロジェクトでスポークを提案する プロジェクト A: NCC ハブの作成とスポークの接続 まずはネットワークの中心となるハブを作成し、プロジェクト A 自身の VPC ネットワークを接続します。 NCC ハブのトポロジを選択します。今回は相互通信を行うため、 メッシュ トポロジ を選択します。 ハブ -トポロジ選択- ハブ名を入力し、作成ボタンを押下します。(スポークの追加は後ほど行います) ハブ -構成- 続いて、スポークを作成します。先ほど作成したハブに、 vpc-a をスポーク spoke-a として接続します。 スポークA -接続先のハブ設定- スポークA -編集- 同一プロジェクト内のスポーク接続では特別な承認ステップは発生せず、作成直後にスポークのステータスが Active となります。 スポークA -作成完了後- プロジェクト B: スポークの作成と接続リクエストの送信 次に、プロジェクト B でスポークを作成し、別プロジェクトにある NCC ハブへ接続します。 接続するハブのロケーションを指定します。別のプロジェクトにあるハブへ接続するため、 「別のプロジェクト内」 を選択し、ハブが存在する プロジェクト ID と ハブ名 を指定して、次のステップを押下します。 スポークB -接続先のハブ設定- vpc-b をスポーク spoke-b として作成します。 スポークB -編集- 作成完了後、スポークのステータスが 「確認待ち(Pending)」 となることを確認します。 スポークB -承認待ち- この時点では経路情報の交換は行われておらず、VPC ネットワーク間での通信はできません。 プロジェクト A: 接続リクエストの承認 プロジェクト間のスポーク接続においては、ハブ管理者が リクエストを承認する ことでハブへの接続が有効化されます。 プロジェクト A のハブ詳細画面から、ステータスが [確認待ち] のスポークを選択します。 リクエスト内容を確認後、 [スポークを承認] を押下し、接続を承認します。 スポークB -承認実行- 承認後、ステータスが Active となります。 スポークB -承認済- 疎通確認 ルートテーブルの確認 接続完了後、NCC ハブおよび各 VPC ネットワークのルートテーブルを参照し、以下の通りルートが追加されていることを確認します。 NCC ハブのルートテーブル スポーク A( 10.0.0.0/24 )およびスポーク B( 172.16.0.0/24 )のサブネットルートが学習されていることを確認します。 NCC ハブのルートテーブル VPC ネットワーク A のルートテーブル ネクストホップを NCC ハブとする 172.16.0.0/24 へのルートが自動追加されていることを確認します。 VPC-A ルートテーブル VPC ネットワーク B のルートテーブル 同様に 10.0.0.0/24 へのルートが追加されていることを確認します。 VPC-B ルートテーブル PING による疎通テスト 検証用に作成した各 VPC ネットワーク内の VM 間で、プライベート IP アドレスによる疎通を確認しました。 # VPC ネットワーク B の VM から、VPC ネットワーク A のVM(10.0.0.2)へ ping 実行 ping 10 . 0 . 0 . 2 -c 4 PING 10 . 0 . 0 . 2 ( 10 . 0 . 0 . 2 ) 56 ( 84 ) bytes of data. 64 bytes from 10 . 0 . 0 .2: icmp_seq = 1 ttl = 64 time = 1 . 23 ms 64 bytes from 10 . 0 . 0 .2: icmp_seq = 2 ttl = 64 time = 0 . 456 ms 64 bytes from 10 . 0 . 0 .2: icmp_seq = 3 ttl = 64 time = 0 . 421 ms 64 bytes from 10 . 0 . 0 .2: icmp_seq = 4 ttl = 64 time = 0 . 443 ms --- 10 . 0 . 0 . 2 ping statistics --- 4 packets transmitted, 4 received, 0 % packet loss, time 3004ms rtt min/avg/max/mdev = 0 . 421 / 0 . 637 / 1 . 230 / 0 . 342 ms NCC ハブを介して、プロジェクトを跨いだ通信が正常に行われていることが確認できました。 助田 真輝 (記事一覧) クラウドソリューション部所属。2024年11月、G-genにジョイン。クラウドインフラ設計、特にネットワークとセキュリティ分野に強い関心を持ち、関連技術の探求に日々取り組む。
G-gen の杉村です。2026年2月に発表された、Google Cloud や Google Workspace のイチオシアップデートをまとめてご紹介します。記載は全て、記事公開当時のものですのでご留意ください。 はじめに Google Cloud のアップデート BigQuery でパラメータ化クエリがコンソールから実行できるように Spanner で SQL からリモート関数を実行できるように(Preview) Google Cloud remote MCP Server が Resource Manager に対応(Preview) Gemini Enterprise と NotebookLM Enterprise でクエリ履歴がログ出力 Looker Studio(Pro)で複数のアップデート 複数サービスのリモート MCP サーバーが提供開始(Preview) Cloud KMS の Autokey がプロジェクトレベルで有効化可能に(Preview) BigQuery に新 AI 機能「dataset insights」が登場(Preview) Gemini Enterprise にモバイルアプリが登場(Private GA) App Engine(Standard 環境)からCloud Runへの移行コマンドが Preview Network Intelligence Center の Flow Anlyzer にレイテンシモードが登場 Looker の Conversational Analytics が iframe で埋め込み可能に(Preview) Vertex AI Search の回答用モデルで Gemini 3 Pro が Preview 公開 BigQuery で複数リージョンのデータを結合できるグローバルクエリが Preview Security Command Center の Standard tier が刷新 Gemini 3.1 Pro が登場 Gemini Enterprise でノーコードエージェントの共有が可能に BigQuery でデータセット復元のための UNDROP SCHEMA が GA Cloud Run functions(2nd gen)の Direct VPC Egress が一般公開(GA) ファイアウォールポリシーで Network contexts が使用可能に BigQuery のレガシー SQL が廃止へ(2026-06-01から) Gemini 等の呼び出しの料金体系の選択肢が追加(Preview) Google Workspace のアップデート Chromebook Plus の Chrome ブラウザに Gemini が統合(米国のみ) Google Meet の音声リアルタイム翻訳が一般公開、日本語は未対応 Gmail に校正(proofread)機能が登場 新アドオン「AI Expanded Access」が登場 Google カレンダーにおける DLP(Data Loss Prevention)が Beta 公開 Google ドキュメントで「音声概要」が使用可能になる Google Workspace 管理コンソールで Gemini の使用状況レポートが強化 Gemini アプリで30秒間の音楽を生成できるようになった Googleスプレッドシートに SHEET() 、SHEETS() 関数が登場 Google グループの「組織外のメンバーを禁止」が厳格化 Google フォームの回答結果を Gemini で定量的に分析できるように Google Vids の AI アバター&ボイスオーバー(音声生成)が日本語に対応 Gemini アプリから Google Chat をデータソースとして参照できるように はじめに 当記事では、毎月の Google Cloud(旧称 GCP)や Google Workspace(旧称 GSuite)のアップデートのうち、特に重要なものをまとめます。 また当記事は、Google Cloud に関するある程度の知識を前提に記載されています。前提知識を得るには、ぜひ以下の記事もご参照ください。 blog.g-gen.co.jp リンク先の公式ガイドは、英語版で表示しないと最新情報が反映されていない場合がありますためご注意ください。 Google Cloud のアップデート BigQuery でパラメータ化クエリがコンソールから実行できるように Run parameterized queries (2026-02-02) BigQuery でパラメータ化クエリが Google Cloud コンソールから実行できるようになった。これまでは bq コマンドやプログラムからしか実行できなかった。 パラメータ化クエリ(Parameterized queries)とは、 @変数名 や ? といったプレイスホルダを置いておき、後から値を渡せるクエリのこと。 Spanner で SQL からリモート関数を実行できるように(Preview) Spanner remote functions (2026-02-02) Spanner で SQL からリモート関数を実行できるようになった(Preview)。 Cloud Run または Cloud Run functions に関数をホストして SQL から呼び出し可能。複雑なロジックを SQL から切り離して任意の言語で記述できる。 Google Cloud remote MCP Server が Resource Manager に対応(Preview) MCP Reference: cloudresourcemanager.googleapis.com (2026-02-03) Google Cloud remote MCP Server が Resource Manager に対応(Preview)。 現在のところ使用可能な tool は search_projects のみ。会話の中でプロジェクト ID が必要になったときなど、他の MCP server 等と組み合わせて使用か。 Google Cloud remote MCP Server については、以下の記事を参照。 blog.g-gen.co.jp Gemini Enterprise と NotebookLM Enterprise でクエリ履歴がログ出力 Gemini Enterprise release notes - February 04, 2026 (2026-02-04) Gemini Enterprise と NotebookLM Enterprise でユーザザークエリとレスポンスが Cloud Logging に記録されるようになった。 REST API 経由で明示的な有効化が必要。NotebookLM Enterprise は、ドキュメント上はクエリ履歴は記録されないように見える。ノートブック作成、共有、削除、取得が記録される。 Looker Studio(Pro)で複数のアップデート Looker Studio release notes (2026-02-05) Looker Studio Pro Looker Studio Pro のサブスクリプションが Google Workspace 管理コンソールから購入できるようになった(従来は Looker Studio コンソールから購入) Conversational Analytics で、思考(reasoning)のステップが閲覧できるようになった Looker Studio チャート(図表)を PNG 画像としてエクスポートできるようになった レポート内の特定コンポーネントへのリンクを生成できるようになった 複数サービスのリモート MCP サーバーが提供開始(Preview) Supported products (2026-02-05) 複数サービスのリモート MCP サーバーが提供開始(Preview) Cloud Monitoring Cloud Logging Developer Knowledge API Vertex AI Search Google Cloud remote MCP Server については、以下の記事を参照。 blog.g-gen.co.jp Cloud KMS の Autokey がプロジェクトレベルで有効化可能に(Preview) Enable Cloud KMS Autokey (2026-02-11) Cloud KMS の Autokey がプロジェクトレベルで有効化可能になった(Preview)。 Autokey とは、Cloud KMS の暗号鍵を自動で生成、ローテなどしてくれる機能。ストレージ暗号化のために都度 KMS 鍵を手動で新規作成しなくてよい。 従来は、「フォルダレベルで有効化」する必要があった。 BigQuery に新 AI 機能「dataset insights」が登場(Preview) Generate dataset insights (2026-02-12) BigQuery に新 AI 機能「dataset insights」が登場(Preview)。 あるデータセット内のインサイト情報を生成する。以下が生成される。 データセットの説明(Description) テーブル間の関係性を可視化する「関係グラフ」 テーブル間の関係性を明らかにするための「サンプルクエリ」 ...等。 BigQuery dataset insights Gemini Enterprise にモバイルアプリが登場(Private GA) Gemini Enterprise release notes - February 12, 2026 (2026-02-12) Gemini Enterprise にモバイルアプリが登場(Private GA)。 使用には Google に申請が必要。モバイル端末から企業データを元にした AI タスクが実現可能。 App Engine(Standard 環境)からCloud Runへの移行コマンドが Preview App Engine standard environment for Java gen2 release notes - February 12, 2026 (2026-02-12) App Engine(Standard 環境)からCloud Runへの移行補助コマンドが Preview 公開。 Java、PHP、Node.js、Python、Ruby、Goの各言語に対応。 Network Intelligence Center の Flow Anlyzer にレイテンシモードが登場 Flow Analyzer overview (2026-02-13) ネットワーク管理ツール Network Intelligence Center の Flow Anlyzer に、パケットの RTT を分析可能な「レイテンシモード」が登場(GA)。 VPC Flow logsをもとにしてレイテンシ傾向を確認できる。 Looker の Conversational Analytics が iframe で埋め込み可能に(Preview) Embedding Conversational Analytics (2026-02-17) Looker の Conversational Analytics が iframe で埋め込み可能に(Preview)。 自社サイトやアプリに会話形分析を埋め込める。現在は Looker(Original)でのみ対応であり Google Cloud core では使用できない。 Vertex AI Search の回答用モデルで Gemini 3 Pro が Preview 公開 Answer generation model versions and lifecycle (2026-02-17) Vertex AI Search の回答用モデルで Gemini 3 Pro( gemini-3-pro-preview/answer_gen/v1 )が Preview 公開。 これまでは Gemini 2.5 Flash、Gemini 2.0 Flash のみ。なお Gemini 3 Flash はまだ使えない。 BigQuery で複数リージョンのデータを結合できるグローバルクエリが Preview Global queries (2026-02-17) BigQuery で複数のリージョンに保存されているデータセットを統合して参照できるグローバルクエリ機能が Preview 公開された。 これまでは異なるロケーションのデータ同士は結合できないため転送が必要だった。別プロジェクト同士でも実行可。 Security Command Center の Standard tier が刷新 Standard tier enhanced and automatically activated for some customers (2026-02-11) Security Command Center の Standard tier(無償)が刷新。 2026年2月11日から数カ月かけて自動的に移行される。DSPM などこれまで使えなかった機能が追加される一方で Web Security Scanner custom scans などは使えなくなる。 Gemini 3.1 Pro が登場 Gemini 3.1 Pro: A smarter model for your most complex tasks (2026-02-19) Gemini 3.1 Pro が登場。複雑なタスクやアニメーション生成などでより強化。 Vertex AI、Google AI Studio、Gemini CLI、Geminiアプリ、NotebookLMなどで提供開始。 Gemini Enterprise でノーコードエージェントの共有が可能に Share an agent (2026-02-23) Gemini Enterprise で個人が作成したノーコードエージェントを他人に共有できるようになった。 データソースへのアクセス権も共有されてしまうので注意。管理者による承認を必須にもできる。 BigQuery でデータセット復元のための UNDROP SCHEMA が GA Share an agent (2026-02-23) BigQuery で誤って削除したデータセットを復元するための UNDROP SCHEMA 構文が Preview → 一般効果(GA)された。タイムトラベル期間内のデータが復旧できる。 以下の記事も参照。 blog.g-gen.co.jp Cloud Run functions(2nd gen)の Direct VPC Egress が一般公開(GA) Configure Direct VPC egress for 2nd gen functions (2026-02-24) Cloud Run functions(2nd gen)の Direct VPC Egress が Preview → 一般公開(GA)。 関数から VPC リソースや VPN で接続されたオンプレミスリソースへ、プロキシインスタンスなしでアクセスできる。 ファイアウォールポリシーで Network contexts が使用可能に Network contexts (2026-02-25) ファイアウォールポリシーで Network contexts が使えるようになった。 IP アドレス帯で指定しなくても、コンテキストで接続元や宛先を指定できるようになりルール構成を簡素にできる。使えるコンテキストは以下のとおり。 Internet : インターネットとの送受信トラフィック Non-internet : 非インターネット。ロードバランサ、IAP、VPC など VPC networks : Non-internet のサブセットで、VPC ネットワーク間などの通信 Intra-VPC : Non-internet のサブセットで、同一の VPC 内での通信 BigQuery のレガシー SQL が廃止へ(2026-06-01から) Legacy SQL feature availability (2026-02-25) 以前から周知のとおり BigQuery のレガシー SQL は使えなくなる。免除申請も可能。 組織で 2025-11-01 から 2026-06-01 の間でレガシー SQL が使われていない場合、レガシー SQL は 2026-06-01 から使えなくなる 組織で 2025-11-01 から 2026-06-01 の間でレガシー SQL が使われた場合、既存ワークロードは稼働し続けるが、新規のものは稼働しなくなる可能性がある Gemini 等の呼び出しの料金体系の選択肢が追加(Preview) Vertex AI consumption options (2026-02-24) リリースノート未掲載(ドキュメント更新は 2026-02-24)。 Vertex AI 経由の Gemini 等の呼び出しの料金体系はこれまで Pay Go / Provisioned Throughput の2種類だったが、Pay Go が3種類(Standard / Priority / Flex) に増え、割り当てと単価が異なる。 Priority は 429 Resource exhausted 対策になる。 Standard : 従来の通常の従量課金 Priority : 単価が高い代わりにより高い割り当て Flex : 単価が安い代わりにレイテンシが大きい Google Workspace のアップデート Chromebook Plus の Chrome ブラウザに Gemini が統合(米国のみ) Gemini in Chrome is coming to Chromebook Plus devices (2026-02-03) Chromebook Plus(Chromebook のハイエンド版)の Chrome ブラウザに Gemini が統合。 ただしまずは米国内ユーザーのみ。ブラウザ上の記事の要約や開いているタブをコンテキストにしたタスク実行など。 Google Meet の音声リアルタイム翻訳が一般公開、日本語は未対応 Speech translation in Google Meet now generally available for businesses (2026-02-04) Google Meet の音声リアルタイム翻訳が一般公開(GA)された。 日本語は未対応で、英語、スペイン語、仏語、独語、ポルトガル語、イタリア語に対応。2026-01-27から順次ロールアウト。 Gmail に校正(proofread)機能が登場 Proofread your email with Gemini in Gmail (2026-02-04) Gmail に校正(proofread)機能が登場。生成 AI モデル Gemini が文章を簡潔・洗練されるよう書き換えを提案してくれる。 2026-02-04から順次展開される。ただし、日本語の対応状況はドキュメントに記載がなく不明。 新アドオン「AI Expanded Access」が登場 Get higher access to advanced AI in Google Workspace (2026-02-05) Google Workspace でより大きいAI機能の割り当て(使用回数上限)が得られる新しいアドオン「AI Expanded Access」が登場。 通常の Workspace プランより、画像や動画生成回数が多かったり、Proモデルの回数上限が大きくなる。 Google カレンダーにおける DLP(Data Loss Prevention)が Beta 公開 Data loss prevention policies for Google Calendar now available in beta (2026-02-11) Google カレンダーにおける DLP(Data Loss Prevention、データ損失防止)が Beta 公開。Enterprise Standard エディション以上が対象。 カレンダー予定への添付ファイルや、説明欄テキストに機密データが添付されることを防ぐ。試用にはフォームから申請が必要。 Google ドキュメントで「音声概要」が使用可能になる Listen to audio summaries in Google Docs (2026-02-12) Google ドキュメントで「音声概要」が使用可能になる。 Gemini が Docs を要約して音声で読み上げる。音声種別や読み上げ速度の調整も可能。 Google Workspace Business Standard 以上または Google AI Pro が必要。2026-02-12から15日間程度かけて順次展開。 Google Workspace 管理コンソールで Gemini の使用状況レポートが強化 View Gemini feature usage and threshold reports in the Admin console (2026-02-17) Google Workspace 管理コンソールで Gemini の使用状況レポートが強化された。 使用量上限(割り当て)へ達しているユーザー数なども見え、エディションのアップグレードの判断に使える。 Gemini アプリで30秒間の音楽を生成できるようになった Create custom soundtracks with Lyria 3 in the Gemini app (2026-02-18) Gemini アプリで30秒間の音楽を生成できるようになった。 Google の Lyria 3 モデルを使用。展開まで3日程度かかる場合あり。Google Workspace ユーザーや個人の Google アカウントでも利用可能。 Googleスプレッドシートに SHEET() 、SHEETS() 関数が登場 Two new functions in Google Sheets (2026-02-23) Googleスプレッドシートに以下の関数が新登場 =SHEET() =SHEETS() 引数で渡したシート名の番号を返したりファイルのシート数を返すため、ファイルの構成が変わっても数式の維持ができる。15日間かけてロールアウト。 Google グループの「組織外のメンバーを禁止」が厳格化 New internal and external membership classifications for Google Groups (2026-02-23) Googleグループの「組織外のメンバーを禁止」が厳格化。 これまで「組織外のメンバーを許可する」をオフにしても、管理者による操作やグループをネストすること等で所属できてしまったが、今後は不可能になる。2026年5月15日以降に適用。 Google フォームの回答結果を Gemini で定量的に分析できるように AI avatars and AI voiceovers in Google Vids now available in seven new languages (2026-02-24) Google フォームの回答結果を Gemini で定量的に分析できるようになる。 回答結果一覧を「テーマ別パーセンテージ」で集計して、回答の傾向をグラフで表示。Business Standard 以上に順次展開される。 Google Vids の AI アバター&ボイスオーバー(音声生成)が日本語に対応 AI avatars and AI voiceovers in Google Vids now available in seven new languages (2026-02-24) 動画編集ツール Google Vids で、AI アバター&ボイスオーバー(音声生成)が日本語に対応。 AI 生成の人物が入力した台本に基づいてナレーションしてくれる。これまで英語のみ対応していた。Google Workspace ユーザー向けに順次展開。 Gemini アプリから Google Chat をデータソースとして参照できるように Google Chat now available as a data source in Gemini app (2026-02-25) Gemini アプリから Google Chat をデータソースとして参照できるようになった。 従来の Google ドライブ、Gmail などに加えての追加。 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
G-gen の堂原です。当記事では、Google Workspace の Google Meet で、誰が会議に参加できるかを定義する 会議へのアクセス 設定について、仕様を解説します。会議へのアクセス設定は「オープン」「信頼済み」「制限付き」から選択できますが、その結果はユーザーの属性や会議にアクセスした時間によって異なります。 はじめに 会議へのアクセスの設定値 タイミングによる挙動の違い 概要 開催 15 分前~開催中 開催 16 分以上前 デフォルト設定について はじめに Google Workspace の Google Meet では、会議の主催者が「誰が会議にリクエスト無しで入室できるか」「誰が参加リクエストを送る必要があるか」等を制御するための 会議へのアクセス という設定項目が存在します。 この設定は、設定値やユーザーの属性(組織内・組織外、Google カレンダーで招待しているか)、開催中か開催前かなどで挙動が変化します。当記事ではその挙動について解説します。 なお当記事では Google Workspace アカウントを利用した場合の仕様について解説しており、個人アカウントでは仕様が異なる可能性があります。 会議へのアクセスの設定値 「会議へのアクセス」の設定値は、 オープン 、 信頼済み 、および 制限付き から選択できます。 設定名 説明 オープン 誰でもリクエスト無しで参加できます。 信頼済み 組織内のユーザーであれば誰でもリクエスト無しで参加でき、組織外のユーザーは招待されている場合はリクエスト無しで参加できます。 制限付き 招待されたユーザーのみがリクエスト無しで参加できます。 「信頼済み」と「制限付き」においては、参加リクエストを送れるように許可するか、それともリクエスト自体をできなくするかを決定するオプションが存在します。 参考 : Google Meet のビデオ会議を開始またはスケジュール設定する - パソコン - Google Meet ヘルプ タイミングによる挙動の違い 概要 Google Meet の会議に、誰がリクエスト無しで参加できるか、あるいはリクエストが必要か、またそもそも参加できないか、については、以下の要素に影響を受けます。 会議へのアクセスの設定値 ユーザーの属性 タイミング(開催の 15 分前~開催中 / 開催の 16 分以上前) 開催 15 分前~開催中 会議が進行中、または開始予定時刻の 15 分前以降の場合、会議へのアクセスの設定値とユーザーの属性によって以下のように挙動が決定します。 ユーザーの属性 オープン 信頼済み (誰でもリクエスト可にチェックあり) 信頼済み (誰でもリクエスト可にチェックなし) 制限付き (誰でもリクエスト可にチェックあり) 制限付き (誰でもリクエスト可にチェックなし) 主催者 入室可 入室可 入室可 入室可 入室可 組織内・招待済 入室可 入室可 入室可 入室可 入室可 組織外・招待済 入室可 入室可 入室可 入室可 入室可 組織内・未招待 入室可 入室可 入室可 要リクエスト 入室不可 組織外・未招待 入室可 要リクエスト 入室不可 要リクエスト 入室不可 非Googleアカウント 入室可 要リクエスト 入室不可 要リクエスト 入室不可 表の凡例 入室可 : リクエスト無しで会議に入室可能 要リクエスト : 入室にリクエストおよび主催者の承認が必要 入室不可 : 会議への入室不可(リクエストも送れない) 開催 16 分以上前 次に開始予定時刻よりも 16 分以上前に、会議に入ろうとしたときの挙動です。入室にあたっての確認がより厳しくなっていることがわかります。 ユーザーの属性 オープン 信頼済み (誰でもリクエスト可にチェックあり) 信頼済み (誰でもリクエスト可にチェックなし) 制限付き (誰でもリクエスト可にチェックあり) 制限付き (誰でもリクエスト可にチェックなし) 主催者 入室可 入室可 入室可 入室可 入室可 組織内・招待済 入室可 入室可 入室可 要リクエスト 入室不可 組織外・招待済 入室可 要リクエスト 入室不可 要リクエスト 入室不可 組織内・未招待 入室可 入室可 入室可 要リクエスト 入室不可 組織外・未招待 入室可 要リクエスト 入室不可 要リクエスト 入室不可 非Googleアカウント 入室可 要リクエスト 入室不可 要リクエスト 入室不可 デフォルト設定について デフォルトでは、「会議へのアクセス」は「信頼済み」が選択されています。 Google Workspace 管理コンソールより、組織全体、または特定の組織部門に対して、会議作成時のアクセス設定のデフォルト値を指定できます。 左のサイドバーにて、「アプリ」をクリック 「Google Workspace」をクリック 「Google Meet」をクリック 設定項目にある「Meet の安全性設定」をクリック 遷移後の画面で「アクセスタイプ」をクリック 堂原 竜希 (記事一覧) クラウドソリューション部クラウドエクスプローラ課。2023年4月より、G-genにジョイン。 Google Cloud Partner Top Engineer 2023, 2024, 2025に選出 (2024年はRookie of the year、2025年はFellowにも選出)。休みの日はだいたいゲームをしているか、時々自転車で遠出をしています。 Follow @ryu_dohara
G-gen の堂原です。当記事では、 Agent Development Kit (ADK)を使用して開発した AI エージェントの開発者用 Web UI を、 Cloud Run へデプロイする方法を紹介します。 はじめに Agent Development Kit 当記事について ディレクトリ構成とソースコード Cloud Run へのデプロイ デプロイコマンド 実行例 留意事項 Gemini モデルとリージョン セッションの整合性 はじめに Agent Development Kit Agent Development Kit (ADK)は、Google によって開発された AI エージェント構築用のフレームワークです。ADK を使用することで、エージェントへの関数処理組み込みや外部ツールの利用、マルチエージェントの実装が行えます。 以下の記事カテゴリも参照してください。 blog.g-gen.co.jp 当記事について ADK には、開発したエージェントをブラウザ上でテストするための、 開発者用の Web UI 機能が備わっています。Web UI は、エージェントを開発しているローカル実行環境で adk web コマンドを実行することで起動できます。この Web UI は本来、開発者がローカル実行環境で使用することを想定しており、他人がアクセスすることは想定されていません。 当記事では、この Web UI をあえて Cloud Run (Cloud Run services)にデプロイして、外部からアクセス可能にします。PoC(概念実証)などの目的で複数人から AI エージェントを試用することが目的であり、 一般ユーザーによる使用を想定したものではない ことに注意して下さい。 ADK の Web UI 参考 : Build and deploy an AI agent to Cloud Run using the Agent Development Kit (ADK) 参考 : Deploy to Cloud Run - Agent Development Kit ディレクトリ構成とソースコード 当記事では、以下の記事で開発したエージェントを用います。 blog.g-gen.co.jp ディレクトリ構成は以下の通りです。 parent/ └ get_current_time/ ├ .env ├ agent.py └ __init__.py agent.py は、前掲の記事のソースコードです。 __init__.py は、以下の1行を記載します。 from . import agent .env には、エージェントが呼び出すエンドポイントの情報を記載します。 GOOGLE_GENAI_USE_VERTEXAI=TRUE とすることで Vertex AI 経由で Gemini API が呼び出されることになります(以下、Gemini API は Vertex AI 経由であることを前提とします)。 GOOGLE_GENAI_USE_VERTEXAI=TRUE GOOGLE_CLOUD_PROJECT={Gemini APIの呼び出し先のGoogle CloudプロジェクトのID} GOOGLE_CLOUD_LOCATION={Gemini APIの呼び出し先のリージョン} Cloud Run へのデプロイ デプロイコマンド ADK には、エージェントを Cloud Run へデプロイする adk deploy cloud_run コマンドが用意されています。このコマンドを使用することで、Dockerfile の作成やイメージのビルド、Cloud Run へのデプロイを一括で実行できます。 基本的な構文は以下の通りです。 adk deploy cloud_run [ OPTIONS ] AGENT AGENT には、エージェントのソースコードが格納されているフォルダへのパスを指定します。今回の場合においては、「parent」ディレクトリでコマンドを実行するのであれば get_current_time と指定します。 実行例 以下のシェルスクリプトを実行してデプロイします。環境変数には Cloud Run サービスをデプロイしたい Google Cloud プロジェクトの ID とリージョン、Cloud Run サービスに紐づけるサービスアカウントを設定してください。 export CLOUD_RUN_PROJECT = { Cloud Runサービスをデプロイする Google CloudプロジェクトのID } export CLOUD_RUN_LOCATION = { Cloud Runサービスをデプロイするリージョン } export CLOUD_RUN_SERVICE_ACCOUNT_EMAIL = { Cloud Runサービスにアタッチするサービスアカウント } adk deploy cloud_run \ --project = $CLOUD_RUN_PROJECT \ --region = $CLOUD_RUN_LOCATION \ --service_name = adk-get-current-time \ --with_ui \ get_current_time \ -- \ --service-account = $CLOUD_RUN_SERVICE_ACCOUNT_EMAIL \ --allow-unauthenticated 主要なオプションの詳細は以下の通りです。 --service_name : Cloud Runサービスのサービス名 --with_ui : Cloud Run サービス上で ADK の Web UI を起動させるために必要なフラグです -- (get_current_time の後ろ) : この記号以降には、サービスアカウントの指定や未認証アクセスの許可( --allow-unauthenticated )など、Cloud Run サービスに関するオプションを記載します。 gcloud run deploy コマンドにつけるオプションと同じとなります。 留意事項 Gemini モデルとリージョン .env ファイルの GOOGLE_CLOUD_LOCATION で指定したリーションにおいて、エージェントが呼び出す Gemini モデルが公開されている必要があります。 2026年2月現在、東京リージョンを例に取ると、公開されているモデルは gemini-2.5-flash や gemini-2.5-pro などです。 gemini-3-flash-preview などの最新モデルを利用したい場合は、 .env ファイルに GOOGLE_CLOUD_LOCATION=global と記述する必要があります。最新モデルは各個別リージョンではなく global ロケーションのみで公開される傾向があります。 どのロケーションでどのモデルが公開されているかについては、以下の公式ドキュメントを参照してください。最新情報を得るためには、ドキュメントを英語版に切り替えて確認してください。 参考 : Deployments and endpoints セッションの整合性 デプロイした Cloud Run サービスの Dockerfile を確認すると、Web UI の立ち上げコマンドは以下のようになっています。 CMD adk web --port = 8000 --host = 0 . 0 . 0 . 0 --session_service_uri = memory:// --artifact_service_uri = memory:// " /app/agents " 上記より、エージェントのセッション情報はコンテナのメモリ上で管理されます。そのため、以下の挙動が発生します。 複数コンテナ時の挙動 : 複数のコンテナが稼働している場合、アクセスの度に見えるセッション情報が異なる、不安定な状態になります。 リビジョンの更新 : Cloud Run のリビジョンが新しくなると、セッションはリセットされます。 堂原 竜希 (記事一覧) クラウドソリューション部クラウドエクスプローラ課。2023年4月より、G-genにジョイン。 Google Cloud Partner Top Engineer 2023, 2024, 2025に選出 (2024年はRookie of the year、2025年はFellowにも選出)。休みの日はだいたいゲームをしているか、時々自転車で遠出をしています。 Follow @ryu_dohara
Google Workspace において Google ドライブなどのストレージ容量上限を規定するための仕組みである、 ストレージプール の仕組みについて解説します。 概要 ストレージプールとは 対象となるデータ エディションごとの上限 ストレージ容量の管理 使用状況の確認 ストレージ制限の設定 容量が不足した場合の挙動 ストレージプールを増やす方法 ライセンスの追加購入 上位エディションへのアップグレード 追加ストレージの購入 概要 ストレージプールとは ストレージプール とは、組織内のすべてのユーザーが共有で使用できる、合算されたストレージ容量の仕組みです。Google Workspace のほとんどのエディションでは、契約しているライセンス数に応じた合計容量が組織全体の「プール」として提供され、その範囲内で全ユーザーがストレージを消費します。 例えば、Business Standard ライセンスには1ユーザーあたり 2 TiB のストレージが含まれています。50ユーザー分契約している場合、組織全体で 100 TiB(2 TiB × 50)のストレージプールが使用可能です。 参考 : 組織全体での保存容量の使用状況を確認する 対象となるデータ ストレージプールでは、以下の Google Workspace サービスのデータが合算してカウントされます。 サービス 説明 Google ドライブ マイドライブ内のファイル、共有ドライブ内のファイル、ゴミ箱内のファイル Gmail メールと添付ファイル(迷惑メールやゴミ箱内のアイテムを含む) Google フォト バックアップされた写真や動画 なお、以前は Google ドキュメント、スプレッドシート、スライドなどの Google 形式のファイルは容量を消費しませんでしたが、2022年5月2日以降に作成または編集されたファイルは、ストレージ消費の対象となります。 参考 : Google Workspace のストレージに関するよくある質問(管理者向け) エディションごとの上限 以下に、代表的なエディションの、ライセンス数あたりのストレージ上限を記載します。 エディション 上限 Business Starter 30 GiB × ユーザー数 Business Standard 2 TiB × ユーザー数 Business Plus 5 TiB × ユーザー数 Enterprise Standard 5 TiB × ユーザー数 Enterprise Plus 5 TiB × ユーザー数 参考 : 組織全体での保存容量の使用状況を確認する - ストレージ管理ツールに関するよくある質問 ストレージ容量の管理 使用状況の確認 組織全体で、上限に対してどのくらいのストレージが消費されているかを確認するには、いくつかの方法があります。 参考 : 組織全体での保存容量の使用状況を確認する 1つ目は、管理者アカウントで管理コンソール( https://admin.google.com/ )にアクセスし、左部メニューから「ストレージ」をクリックします。ここでは、組織全体の総容量、使用済み容量、およびストレージを多く消費しているユーザーや共有ドライブを特定できます。 管理コンソール > ストレージ 2つ目は、管理者アカウントで Google ドライブの画面にアクセスし、左下の「保存容量」をクリックすることです。この画面の上部には、各アカウントがどれくらいストレージを消費しているかが表示されます。管理権限を持つアカウントであれば、同画面の左下に、プール全体の消費状況が表示されます。 Google ドライブの「保存容量」画面 ストレージ制限の設定 特定のユーザーがプールの容量を大きく独占することを防ぐために、上限を設定することができます。上限は、ユーザーごと、グループごと、組織部門ごとなどの単位で設定できます。 例えば一般社員とデザイン部門で組織部門やグループを分け、「一般社員には 50 GiB まで」「デザイン部門には 500 GiB まで」といった制限を設定することで、ストレージプールの枯渇を防止できます。 参考 : ユーザーの保存容量の上限を設定する また、共有ドライブごとに個別の容量制限(上限)を設定することも可能です。部門ごとに共有ドライブを作成して上限を設定することで、ストレージプール消費量のバランスを取ることができます。 参考 : 共有ドライブの保存容量の上限を設定する 容量が不足した場合の挙動 組織全体でストレージプールの空き容量がなくなった場合、以下の制限が発生します。 まず、Google フォトでは直ちに、新規ファイルの追加やバックアップができなくなります。 次に、上限を超えた状態が14日間続いた時点か、保存容量超過が25%まで達した時点のどちらか早い方のタイミングで、以下の影響が生じます。 サービス 制限 Google ドライブ 新しいファイルの追加が不可 Google ドキュメント、スプレッドシート、スライド、フォームなど 新しいファイルの作成、編集、コピー、フォームの送信等が不可 Google Meet 会議の録画が不可 これらに加え、公式の FAQ には「(前略)この上限を超えた場合、Google はお客様によるドライブへのアップロードを無効にする、ご利用のドメインを停止する、ご利用のドメインとそのすべてのデータを削除する権限を有します。」と記載されています。 参考 : Google Workspace のストレージに関するよくある質問(管理者向け) ストレージプールを増やす方法 ライセンスの追加購入 ストレージプールは「1 ユーザーあたりの容量 × ライセンス数」で決まるため、ユーザーライセンスを追加で購入することで、組織全体のプール容量が増加します。 上位エディションへのアップグレード より多くのストレージが含まれるエディション(例 : Business Standard から Business Plus への移行など)にアップグレードすることで、ユーザーあたりの割り当て容量を増やすことができます。 参考 : 組織の空き容量を増やす、または保存容量を追加する 追加ストレージの購入 ライセンスを追加せずに容量だけを増やしたい場合、追加ストレージを購入できます。10 TiB 単位などのサブスクリプション形式で提供されています。 参考 : 組織用に Google Workspace の追加の保存容量を購入する G-gen 編集部 (記事一覧) 株式会社G-genは、サーバーワークスグループとして「クラウドで、世界を、もっと、はたらきやすく」をビジョンに掲げ、クラウドの導入から最適化までを支援している Google Cloud 専業のクラウドインテグレーターです。
G-gen の堂原です。当記事では、 Google Workspace の Gmail で、メールの送受信を特定のメールアドレスやドメインとの間にだけ許可し、それ以外は制限する方法について解説します。 はじめに 当記事について 仕様 手順1 : アドレスリスト作成 手順1-1 : アドレスリストの管理画面への遷移 手順1-2 : アドレスリストの作成 手順2 : 「配信を制限」の設定 手順2-1 : コンプライアンス画面への遷移 手順2-2 : 「配信を制限」の設定 はじめに 当記事について E メールの利用に際して、組織内のユーザーが外部の不特定多数とメールを送受信することを防ぎたいケースがあります。例えば、学校の生徒が持つメールアドレスからは、同じ学校の教師と生徒だけと送受信できるようにするケースが考えられます。 Google Workspace の Gmail には「 配信を制限 」という機能があります。これを利用することで、管理者が許可した特定のメールアドレスやドメインとのみ送受信できるようにし、それ以外は禁止するように構成できます。当記事では、「配信を制限」機能の設定方法を紹介します。 参考 : メールの送受信を承認済みアドレスまたはドメインのみに制限する - Google Workspace 管理者 ヘルプ 仕様 「配信の制限」設定を行うと、対象の 組織部門 に所属するユーザーは、指定されたアドレスリストに含まれない送信元からのメールを受信できなくなり、またアドレスリストに含まれない宛先へメールを送信できなくなります。 制限に抵触した場合、送信元のメールアドレスには バウンスメール が返送されます。 バウンスメール例 手順1 : アドレスリスト作成 手順1-1 : アドレスリストの管理画面への遷移 まずは、送受信を許可したいドメインやメールアドレスを設定した アドレスリスト を作成するために、「アドレスリストの管理画面」へ遷移します。 管理コンソール( https://admin.google.com/ )にログイン 左のサイドバーの「アプリ」をクリック 「Google Workspace」をクリック 「Gmail」をクリック 「Gmail の設定」に遷移するため、設定項目にある「ルーティング」をクリック 「アドレスリストの管理」は最上位の組織部門でしか設定できないため、最上位の組織部門を選択 「アドレスリストの管理」をクリック 手順1-2 : アドレスリストの作成 「アドレスリストの管理」画面にて、アドレスリストを作成します。 「アドレスリストの管理」にて、「アドレスリストを追加」をクリックします。 「アドレス」に送受信を許可したいアドレスとドメインを入力します。注意点として、メールの送信に失敗した際に送信元に送られてくるバウンスメールを受信するためには、 mailer-daemon@googlemail.com を許可する必要があります。 手順2 : 「配信を制限」の設定 手順2-1 : コンプライアンス画面への遷移 「配信を制限」設定は「Gmail の設定」の「コンプライアンス」画面にあるため、まずはそこまで遷移します。 左のサイドバーにて、「アプリ」をクリック 「Google Workspace」をクリック 「Gmail」をクリック 設定項目にある「コンプライアンス」をクリック 手順2-2 : 「配信を制限」の設定 「配信を制限」の設定画面を開きます。 メールの送受信を制限したい組織部門を選択 「配信を制限」欄にある「設定」をクリック 以下が「配信を制限」の設定画面です。 メールの送受信を許可したいアドレスリストを 1. の箇所に追加します。 2. の箇所に入力した文言は、バウンスメール管理者からのメッセージとして記載されます。 再掲 : バウンスメール例 3. にチェックを付けた場合、同じドメインの Google Workspace アカウント(今回だと dev.g-gen.co.jp )に対して送信するメールは、「配信を制限」設定の影響を受けなくなります。すなわち、組織のドメインをアドレスリストに追加していなくても、組織内であればメールの送受信が可能です。 堂原 竜希 (記事一覧) クラウドソリューション部クラウドエクスプローラ課。2023年4月より、G-genにジョイン。 Google Cloud Partner Top Engineer 2023, 2024, 2025に選出 (2024年はRookie of the year、2025年はFellowにも選出)。休みの日はだいたいゲームをしているか、時々自転車で遠出をしています。 Follow @ryu_dohara
G-gen の菊池です。当記事では、Looker で BigQuery のデータを可視化するための一連のフローを、スクリーンショット付きで解説します。BigQuery との接続から、LookML の自動生成と調整、Explore での可視化などを説明します。 はじめに 当記事について Looker、ビュー、Explore、モデル 構成図 BigQuery 側の準備 デモ用データセットの作成 サンプルデータの投入 接続用サービスアカウント(SA) の作成と権限付与 Looker の接続設定 BigQuery への接続(Connection)の作成 接続テストと設定の保存 LookML プロジェクトの作成(新規モデルの作成) プロジェクトページへ移動 データベース接続を選択 テーブルを選択する 主キーの選択 作成する Explore を選択する モデル名を入力 LookML の定義と調整 自動生成されたファイルの確認 ディメンションからメジャーへの修正 日付データの修正 変更のコミットと本番反映 Explore でデータを可視化してみる Explore 画面の操作 フィルターの使い方 ディメンションからメジャーへの修正をしなかった場合 日付データの修正をしなかった場合 はじめに 当記事について 当記事では、Looker でデータを可視化する際の一連のフローである「BigQuery との接続・認証」「LookML の作成」、そしてビジュアリゼーション作成を含む「Explore での可視化」について解説します。 Looker、ビュー、Explore、モデル Looker とは、エンタープライズ向けのデータプラットフォームです。開発者向けのセマンティックレイヤーとユーザー向けの BI ツールの両方の特徴を併せ持っています。 Looker 独自のモデリング言語である LookML を使用することで、分析対象のデータの構造とビジネスルールを定義するデータモデルを作成、管理できます。 Looker は、この LookML で定義されたデータモデルから自動的に SQL を生成します。そのため、SQL を知らないユーザーでも、直感的なインターフェースからデータを探索し、分析できます。 参考 : Looker 参考 : LookMLの紹介 Looker は、データベースのテーブルと1対1で紐づく「 ビュー 」、どのビューをユーザーに見せるか定義する「 Explore 」、どのデータベースに接続するか、どの Explore をユーザーに公開するか定義する「 モデル 」の3つの構造で成り立っています。 参考 : LookMLの用語と概念 これら3つの構成要素についての詳細は、以下の記事も参照してください。 blog.g-gen.co.jp 構成図 今回構成する Looker から BigQuery のテーブルを参照する環境は以下の通りです。 構成 BigQuery 側の準備 デモ用データセットの作成 以下の名前でデモ用のデータセットを作成します。 項目 設定値 データセット名 looker_demo_source サンプルデータの投入 BigQuery では、Google Merchandise Store (Google ブランドの商品を販売するオンラインストア)の Google アナリティクス 4 のデータがサンプルデータとして使用できます。今回はそのサンプルデータから以下の SQL の結果を取得して参照用のテーブルとします。 WITH UserData AS ( SELECT event_date AS date , user_pseudo_id, ( SELECT value.int_value FROM UNNEST(event_params) WHERE key = ' ga_session_id ' ) AS session_id, geo.country AS country, event_name, ( SELECT value.string_value FROM UNNEST(event_params) WHERE key = ' session_engaged ' ) AS session_engaged_flag, ( SELECT value.int_value FROM UNNEST(event_params) WHERE key = ' engagement_time_msec ' ) AS engagement_time_msec FROM `bigquery- public -data.ga4_obfuscated_sample_ecommerce.events_*` WHERE PARSE_DATE( ' %Y%m%d ' , _TABLE_SUFFIX) BETWEEN DATE ' 2021-01-01 ' AND DATE ' 2021-01-31 ' ) SELECT date , --日付 COUNT ( DISTINCT CASE WHEN session_engaged_flag = ' 1 ' THEN user_pseudo_id WHEN event_name = ' first_visit ' THEN user_pseudo_id WHEN engagement_time_msec > 0 THEN user_pseudo_id END ) AS active_users, --アクティブユーザー数 COUNT ( DISTINCT CASE WHEN event_name = ' first_visit ' THEN user_pseudo_id END ) AS new_users, --新規ユーザー数 COUNT ( DISTINCT CONCAT (user_pseudo_id, CAST (session_id AS STRING))) AS sessions, --セッション数 country, --国 FROM UserData GROUP BY date , country ORDER BY date このテーブルには 2021 年 1 月の日付、国ごとのアクティブユーザー数、新規ユーザー数、セッション数が含まれています。 列名 説明 date 日付 active_users アクティブユーザー数 new_users 新規ユーザー数 sessions セッション数 country 国 SELECT 文のクエリ結果は、[結果の保存]をクリックし、[ローカルへのダウンロード] > [ CSV ]を選択して保存します。 クエリ結果の保存 作成していたデータセット「looker_demo_source」の右側の三点リーダーをクリックし、[テーブルを作成]を選択します。 [テーブルを作成]画面では、以下のように設定して、[テーブルを作成]をクリックします。 項目 設定値 ソース > テーブルの作成元 アップロード ソース > ファイルを選択 ダウンロードした CSV ファイル ソース > ファイル形式 CSV 送信先 > プロジェクト 自身のプロジェクト 送信先 > データセット looker_demo_source 送信先 > テーブル ga4_daily_metrics_by_country スキーマ > 自動検出 チェックを入れる 詳細オプション > ヘッダー行のスキップ 1 接続用サービスアカウント(SA) の作成と権限付与 Looker が BigQuery データベースへのアクセスに使用する認証を構成します。 サービスアカウント作成 1.Google Cloud コンソールで[ API とサービス] > [認証情報]へ移動します。 2.[認証情報を作成] を選択し、[サービス アカウント] を選択します。 3.サービス アカウントの作成画面で以下を入力して、[作成して続行] を選択します。 項目 設定値 サービスアカウント名 looker-bq-connection-sa サービスアカウントID サービスアカウント名を入力すると自動で同じ値が入力される。 サービスアカウントの説明 Looker から BigQuery へのアクセス用 サービスアカウント作成画面 4.権限の設定画面で、[ロールを選択] フィールドで以下のロールを選択します。2つ目以降も[別のロールを追加] を選択して、同じようにロールを選択します。 BigQuery > BigQuery データ編集者 BigQuery > BigQuery ジョブユーザー サービスアカウントの権限設定画面 サービスアカウントの権限設定 5.[続行] を選択して [完了] を選択します。 サービス アカウントの認証を構成 1.[認証情報] ページで、新しく作成したサービス アカウントのメールを選択します。 サービスアカウントの選択 2.サービス アカウントの詳細画面で[鍵]タブを選択し、[キーを追加] のプルダウンから [新しいキーを作成] を選択します。 サービスアカウントに新しいキーを作成 3.[キーのタイプ] で [JSON] を選択し、[作成] を選択します。 キーのタイプを選択 4.秘密鍵(JSON ファイル)がコンピュータに保存されるので、ダウンロード先をメモしてから[閉じる]をクリックします。 秘密鍵のダウンロード 鍵を再度ダウンロードすることはできないため、ここで忘れずに保存先をメモしておきます。 Looker の接続設定 BigQuery への接続(Connection)の作成 1.以下の 2 つの方法のいずれかで、[データベースを Looker に接続] ページを開きます。 [管理者] パネルの [データベース] セクションで [接続] を選択します。[接続(Connections)]ページで、[接続を追加(Add Connection)] ボタンをクリックします。 管理者パネルから接続ページへ メイン ナビゲーション パネルの [作成] ボタンをクリックし、[接続] メニュー項目を選択します。 メインパネルの作成から接続ページへ 2.全般設定の画面で以下の通りに設定し、[次へ]をクリックします。 項目 設定値 名前 conn-ga4-daily-demo SQL 言語(SQL Dialect) [Google BigQuery Standard SQL]を選択 プロジェクトの範囲 [すべてのプロジェクト]をチェック 全般設定 3.データベース設定の画面で以下の通りに設定します。 項目 設定値 課金プロジェクト ID データセットを作成したプロジェクトのID ストレージ プロジェクト ID なし プライマリ データセット looker_demo_source データベース設定 4.認証の設定で以下の通りに設定し、[次へ]をクリックします。 項目 設定値 認証方法 [サービスアカウント]を選択 サービスアカウント証明書 ダウンロードしていた秘密鍵(JSONファイル)を指定 認証の設定 5.オプションの設定で以下の通りに設定し、[次へ]をクリックします。 項目 設定値 ノードあたりの最大接続数 30 接続プールのタイムアウト 120 この接続に関する同時実行クエリの最大数 200 この接続に関するユーザーあたりの同時実行クエリの最大数 25 最大課金ギガバイト数 なし その他の JDBC パラメータ なし メンテナンス スケジュール なし コンテキストの無効化 選択 SSL 選択 テーブルと列を事前にキャッシュに保存 選択 スキーマを取得してキャッシュに保存 選択 PDT を有効にする オフ データベースのタイムゾーン Asia - Tokyo クエリのタイムゾーン Asia - Tokyo オプションの設定(1) オプションの設定(2) オプションの設定(3) 接続テストと設定の保存 6.接続の該当するフィールドをすべて入力したら、必要に応じて接続をテストを実施します。 接続テスト 7.[次へ]をクリックして、接続設定の確認をしたら、[保存]をクリックします。 接続の保存 LookML プロジェクトの作成(新規モデルの作成) プロジェクトページへ移動 1.Development Mode(開発モード)になっていることを確認し、ナビゲーション パネルの [開発] セクションから、[プロジェクト] を選択します。 開発パネルからプロジェクトページへ 2.[LookML プロジェクト] ページで、[New Model] をクリックします。 プロジェクトページ データベース接続を選択 3.[データベース接続を選択]画面で以下の通り設定して、[次へ]をクリックします。 項目 設定値 データベース接続 conn-ga4-daily-demo LookML Project Name proj_ga4_analysis データベース接続を選択 テーブルを選択する 4.[テーブルを選択する]画面で、Looker で接続するプロジェクトとデータセットを選択し、右側の[Tables]をクリックします。 項目 設定値 GCPプロジェクト データセットが存在する Google Cloud プロジェクト データセット looker_demo_source GCP プロジェクトとデータセット選択 5.選択したデータセットに存在するテーブルの一覧が表示されるので、以下のテーブルを選択します。その他のオプションはデフォルトのままで[次へ]をクリックします。 項目 設定値 テーブル ga4_daily_metrics_by_country テーブルの選択 主キーの選択 6.[主キーの選択]画面では、テーブルを適切に結合するための主キーを設定します。この手順は省略可能です。今回は主キーは不要なので何も選択せずに[次へ]をクリックします。 主キーの選択 作成する Explore を選択する 7.[作成する Explore を選択する]画面では、Explore のビューとして使用するテーブルを選択します。テーブル「ga4_daily_metrics_by_country」の横にあるチェックボックスを選択して、[次へ]をクリックします。 作成する Explore を選択 モデル名を入力 8.[モデル名を入力]画面で以下のモデル名を入力して、[完了してモデルを表示]ボタンをクリックします。 項目 設定値 モデル名 ga4_daily_demo モデル名を入力 以上の手順で、LookMLプロジェクトとモデルが作成され、Looker IDE(統合開発環境)が開かれます。 Looker IDE 参考 : モデルの生成 LookML の定義と調整 自動生成されたファイルの確認 直前の処理から遷移した Looker IDE 画面へは、メイン ナビゲーション メニューの [開発] パネルからもアクセスできます。ナビゲーション メニューで [開発] を選択して、[開発] パネルを開きます。 [開発] パネルでプロジェクトの一覧が表示されるので、アクセスするプロジェクトの名前を選択します。「プロジェクトを検索」欄にプロジェクト名の一部を入れることで、簡単に探し出すことができます。 プロジェクトへ移動 Looker IDE 画面 遷移した Looker IDE 画面の左側にある「①IDE ナビゲーション バー」から「ファイルブラウザ」を選択します。すると、②機能パネルにファイルブラウザが表示されます。 ファイルブラウザでファイルを選択すると、③IDE エディタパネルに選択したファイルの内容が表示されます。 ファイルブラウザには2種類のファイルが既に作成されています。これらは、モデルを作成する際に選択したテーブルの定義を元に作成されたファイルです。 作成されたファイル views フォルダにある「ga4_daily_metrics_by_country.view」というファイルは、Looker のビュー(View)を定義するファイルです。データベースのテーブル「ga4_daily_metrics_by_country」と1対1で対応しおり、テーブル内の各列を定義します。 ビューファイル models フォルダにある「ga4-daily-demo.model」というファイルは、Looker のモデルを定義するファイルです。 このファイルでは、 explore パラメータを使用して Explore(エクスプロア)が定義されています。ユーザーが UI 上で見る「データ探索(Explore)」画面の元となる定義です。モデルファイルは、どのデータベースに接続するか、どの Explore をユーザーに公開するかを管理します。 モデルファイル 自動で生成されたモデルファイルとビューファイルは、この状態でも BigQuery のテーブルを BI として確認できる状態です。 しかし、自動生成されたファイルをそのまま使うのではなく、いくつか修正する必要があります。なぜ修正が必要かについては、データを可視化する部分で説明します。 ディメンションからメジャーへの修正 ビューファイルはテーブル内の各列をディメンションとメジャーとして定義します。ディメンションとは、日付や顧客名、商品カテゴリといったデータの属性や切り口を表します。メジャーとは、売上合計やユーザー数、平均年齢といった集計値や計算したい値を表します。 自動生成されたビューファイルでは、数値として表示したい列がディメンションとして定義されている場合があります。そのような列はメジャーに修正する必要があります。 以下の3つの数値列をディメンションからメジャーへ修正します。 物理名 論理名 active_users アクティブユーザー数 new_users 新規ユーザー数 sessions セッション数 修正箇所 修正前 修正後 dimension measure type: number type: sum メジャー(measure)への修正 日付データの修正 以下の列は日付のデータを YYYYMMDD 形式(例:2026年1月1日の場合、20260101)の数値で格納した列です。BigQuery でテーブルを作成する際、スキーマ自動検出にしていたため、数値の列として作成されました。 物理名 論理名 date イベント日 date 列を日付型として扱うために、以下のように修正します。 修正箇所 修正前 修正後 dimension dimension_group type: number type: time なし timeframes: [date, week, month, year, raw] なし datatype: yyyymmdd 日付型の定義 変更のコミットと本番反映 ファイルに変更点がある場合、以下のようにファイル名の右側に青い丸が付き、エディタパネルの右上に「Save Changes」ボタンが表示されます。 ファイルに変更点がある場合 Save Changes ボタン 「Save Changes」ボタンをクリックすると変更が保存され、画面右上にある Git ボタンが「Validate LookML」となります。 Git ボタン(Validate LookML) 画面右上にある Git ボタンは、プロジェクトの状態に応じて、プロジェクトを環境に反映するために必要なアクションが表示されます。 アクション 表示 LookML を検証 Validate LookML commit、ブランチをリモートに push Commit Changes & Push 本番環境にデプロイ Deploy to Production ファイルに変更点がある場合、Git ボタンは「Validate LookML」となり、それをクリックすることで変更内容にエラーがないか検証されます。 エラーがない場合、Git ボタンは「Commit Changes & Push」となり、画面右側のサイドパネルには LookML の検証結果が表示されます。 LookML の検証結果 「Commit Changes & Push」となっている Git ボタンをクリックすると、Commit 画面が表示されます。変更を反映するファイルにチェックを入れ、コミットメッセージを入力して [Commit] ボタンをクリックします。 Commit 画面 Commit と Push が行われると、Git ボタンは「Deploy to Production」と表示されます。 本番環境へデプロイ 「Deploy to Production」となっている Git ボタンをクリックすることで、変更内容が本番環境にデプロイされます。本番環境にデプロイされた変更内容は、Looker インスタンスを使用するユーザー全員が確認できます。 変更内容を作業者が確認するだけならば、「Deploy to Production」をクリックする手前までで充分です。 参考 : 開発モードと本稼働モード Explore でデータを可視化してみる Explore 画面の操作 ナビゲーション メニューで [Explore] を選択して、[Explore] パネルを開きます。Explore の一覧が表示されるので、アクセスする Explore の名前を選択します。 「Explore を検索」欄に Explore 名の一部を入れると、すぐに探しだすことができます。 Explore を開く Explore 画面が表示されます。左側の[すべてのフィールド]タブに一覧で表示されているフィールドから、グラフとして表示したいフィールドを選択していきます。 Explore の初期画面 フィールドの一覧から、以下のフィールドを順に選択していきます。Date フィールドについては、[Date Date] の左側にある▼マークをクリックすることで、Date、Month、Week、Yearというフィールドが展開されます。 Date Country Sessions Active Users New Users フィールドの選択 フィールドを選択すると右側にある [データ] パネルに選択したフィールドが追加されます。右上にある [実行] ボタンをクリックします。 データパネル 選択したフィールドのデータが取得されます。「行数上限に達しました。結果の一部が表示されない可能性があります。」というメッセージが表示されることがあります。右上にある「行数上限」が 500 になっていますが、取得したデータが500行以上ある場合にこのメッセージが表示されます。 全てのデータを表示したい場合は、行数上限の値を取得データの行数より大きい値(例 : 5000)のようにして、[実行] ボタンを再度クリックします。 [ビジュアリゼーション] パネルの左側にある▼マークをクリックすると、[ビジュアリゼーション] パネルが表示されます。 ビジュアリゼーションパネルの展開 今回は、Country フィールドに国名のデータがあったため、Google マップのビジュアリゼーションが自動で選ばれました。 ここから、ビジュアリゼーションを表(テーブル)形式へ変更する場合は、ビジュアリゼーションパネルにあるテーブルのマークをクリックします。 ビジュアリゼーションの変更 テーブル形式のビジュアリゼーション テーブルの Country フィールドを見ると、数値の他にデータの値を表す水平棒グラフのビジュアリゼーションが表示されています。 セルのビジュアリゼーション このビジュアリゼーションが不要な場合は、ビジュアリゼーションタブの右側にある [編集] タブをクリックします。 表示されたパネルの [系列] タブを選択し、[カスタマイズ] で Sessions を展開し、「セルのビジュアリゼーション」をオフにします。 セルのビジュアリゼーションをオフにする セルのビジュアリゼーションなし 参考 : Explore の作成と編集 参考 : Looker での Explore の表示と操作 参考 : セルのビジュアリゼーション フィルターの使い方 フィールドの値を絞り込みたい場合は、フィルタを追加します。フィルタの追加方法は以下の2通りです。 左側のフィールド一覧で、フィールド名の右側にある [フィールドでフィルタ] を選択します。 [データ] パネルの [結果] タブで、フィールドの見出しにある歯車を選択し、[フィルタ] を選択します。 フィルタの追加方法 [フィルタ] パネルが開き、選択したフィールドのフィルタが表示されます。フィルタの値を指定するには、「任意の値」の欄をクリックします。 フィルタする値の選択箇所 値の一覧が表示されるので、フィルタに使用する値を選択します。 フィルタの値の選択 [実行] ボタンをクリックすることで、[ビジュアリゼーション] パネルの表が、フィルタで指定した値で絞り込みされます。 フィルタの結果 フィルタ方法を「次を含む」や「次で始まる」などに変更する場合は、「任意の値」欄の左側で選択します。 フィルタ方法の変更 参考 : データのフィルタリングと制限 ディメンションからメジャーへの修正をしなかった場合 LookML の定義と調整の手順で数値の列を、ディメンションからメジャーへ修正していました。 メジャーにした列は以下のような挙動になります。 Country : Albaniaでフィルタした場合の結果は、以下の通りです。 Countryでフィルタした結果 ここで、DateフィールドをMonthフィールドに変えた場合、フィルタした国の1ヶ月の数値として集計された結果になります。 月単位の集計結果 ディメンションとメジャーの挙動の違いを確認するため、active_users を dimension に変えて、反映してみます。 active_usersをディメンションにした場合 1ヶ月の集計結果は以下の図の通り、3行になってしまいます。 active_usersをディメンションにした結果 これは、active_users がディメンションであることにより、集計対象の数値ではなく、数字の1、2、3で分類する項目とみなされるようになったためです。意図した集計結果を出すためには、集計したい列をメジャーとして定義する必要があることがわかります。 日付データの修正をしなかった場合 date 列の元となった Google アナリティクス4のデータの event_date 列は日付を YYYYMMDD 形式で表示した文字列でした。 そして、その列から作成したサンプルデータの date 列は自動でスキーマを読み取った際に数字データとして取り込まれました。 そのため、生成されたままの date 列の定義では、数字のディメンションとして読み取られます。 修正する前の date 列の定義 date列の定義を修正しない場合 ここで、タイプによる挙動の違いを確認するため、date フィールドの type を string(文字列)に変えてみます。この状態では、日付データとしては認識されないことがわかります。 date 列を type:string に修正 type を string に修正した date 列 菊池 健太 (記事一覧) クラウドソリューション部データエンジニアリング課。2024年7月より、G-genに入社。群馬出身のエンジニア。前職でLookerの使用経験はあるが、GCPは未経験なので現在勉強中。
G-gen の min です。Google Apps Script(以下、GAS)で開発したアドオンをユーザーが実行した際、スクリプトプロパティの読み取り時に PERMISSION_DENIED エラーが発生しました。本記事では、この事象の原因と対処法を解説します。 事象 原因 対処法 定数としてコード内に記述する ユーザーにスクリプトファイルへの閲覧権限を付与する 事象 GAS で作成した機能を Google Workspace アドオンとして配布し、利用者がそのアドオンのメニューを実行した際、以下のようなエラーログが Google Cloud の Cloud Logging に記録され、処理が失敗しました。 { " insertId ": " -w58fk8fbk0qfb ", " jsonPayload ": { " message ": " ストレージからの読み取り中にサーバーエラーが発生しました。エラーコード: PERMISSION_DENIED。 ", " serviceContext ": { " service ": " AKfycbw...(省略)... " } } , " resource ": { " type ": " app_script_function ", " labels ": { " project_id ": " 000000000000 ", " invocation_type ": " menu ", " function_name ": " callUpdateMasterData " } } , " severity ": " ERROR ", " labels ": { " script.googleapis.com/deployment_id ": " AKfycbw...(省略)... " } } メインのエラーメッセージは、以下のとおりです。 ストレージからの読み取り中にサーバーエラーが発生しました。エラーコード: PERMISSION_DENIED。 該当のスクリプトでは、 PropertiesService.getScriptProperties().getProperty('KEY_NAME') メソッドを使用し、GAS エディタ上で手動設定した スクリプトプロパティ を読み取ろうとしていました。 該当のソースコード const TARGET_URL = PropertiesService . getScriptProperties () . getProperty ( 'TARGET_URL' ) ; function callUpdateMasterData () { // ...処理... // URLにアクセスしてデータを取得する const response = UrlFetchApp . fetch ( TARGET_URL ) ; // 結果をログに出力する Logger . log ( 'Response Code: ' + response . getResponseCode ()) ; } スクリプトプロパティ 原因 このエラーは、Google Workspace Marketplace で配布されるアドオンのセキュリティ仕様と、スクリプト実行環境の関係に起因しています。 Google Workspace アドオンでは、スクリプト実行ユーザーの環境で処理が実行されます。しかし、スクリプトプロパティは「スクリプトプロジェクト(ファイル)に紐づく共有ストレージ」であり、 そのファイルにアクセス権を持つユーザー間で共有 されるものです。 Marketplace 経由で配布されたアドオンを使用する場合、実行ユーザー(アドオン利用者)はスクリプトプロジェクト自体の所有者や編集者ではありません。 ユーザーには、開発者の Google ドライブ内にある GAS プロジェクトファイル自体へのアクセス権限がないため、結果としてそのファイルに付随するプロパティストアへのアクセスも拒否されます。 PropertiesService.getScriptProperties() を用いた読み取り処理が、実行時に PERMISSION_DENIED エラーとなります。 参考 : プロパティ サービス 対処法 定数としてコード内に記述する 外部サービスの URL や固定の ID など、公開されても問題ない設定値であれば、スクリプト プロパティではなくコード内の定数( const )として記述することでエラーを回避できます。 // 修正前:スクリプトプロパティから読み取る(アドオン配布時にエラーになる) // const TARGET_URL = PropertiesService.getScriptProperties().getProperty('TARGET_URL'); // 修正後:コード内に定数として定義する const TARGET_URL = 'https://blog.g-gen.co.jp/' ; function callUpdateMasterData () { // ...処理... // URLにアクセスしてデータを取得する const response = UrlFetchApp . fetch ( TARGET_URL ) ; // 結果をログに出力する Logger . log ( 'Response Code: ' + response . getResponseCode ()) ; } ただし、 API キーなどの機密情報 はソースコード内に直接記述してはいけないことに十分留意してください。 ユーザーにスクリプトファイルへの閲覧権限を付与する アドオンの実行ユーザーに対して、実体となる GAS プロジェクトファイルの 閲覧者権限 を付与します。 スクリプト プロパティはファイルに紐づくメタデータであるため、ユーザーがファイル自体へのアクセス権を持っていれば、プロパティの読み取りが可能になります。 ただし、この方法は ユーザーがソースコードを閲覧可能になる というセキュリティ上の懸念があります。社内用ツールなど、ソースコードの内容が利用者に公開されても問題ない場合にのみ採用してください。 佐々木 愛美 (min) (記事一覧) クラウドソリューション部 データアナリティクス課。2024年7月 G-gen にジョイン。G-gen 最南端、沖縄県在住。最近覚えた島言葉は、「マヤー(猫)」。
G-gen の三浦です。当記事では、Gemini CLI から Google SecOps MCP server を使用して、ケース確認からログ調査までを自然言語で要約した検証結果を紹介します。 前提知識 Google SecOps とは Gemini CLI とは 概要 Google SecOps MCP server とは 使用可能なツール 注意点 検証手順 事前準備 IAM 権限の付与と MCP サーバーの有効化 Customer ID の確認 Gemini CLI の設定 ケース運用 未対応のケース一覧の取得 高優先度ケースの抽出と要約 関連アラートの確認と影響範囲の確認 検索・調査 特定ユーザーの Google Workspace 操作ログ調査 AWS 特権ユーザーの操作ログ調査 前提知識 Google SecOps とは Google Security Operations (以下 Google SecOps、旧称 Chronicle)は、Google Cloud が提供する 統合セキュリティ運用プラットフォーム です。 SIEM、SOAR、脅威インテリジェンス、Gemini を利用した AI による運用支援を提供します。これらにより、脅威の検知・調査・対応を一元的に行えます。結果として、セキュリティ運用の効率化と高度化を実現できます。 参考: Google SecOps の概要 詳細は、以下の記事をご参照ください。 blog.g-gen.co.jp Gemini CLI とは Gemini CLI とは、ターミナルから直接 Gemini の機能を利用できるオープンソースのコマンドラインインターフェイスです。詳細は以下の記事をご参照ください。 blog.g-gen.co.jp 概要 Google SecOps MCP server とは Google SecOps MCP server は、Google Cloud が提供する Google Cloud MCP Servers の 1 つです。Gemini CLI などの MCP クライアントから、自然言語で Google SecOps を操作することができます。 参考 : Use the Google SecOps MCP server なお Google Cloud MCP Servers では、Google SecOps の他にも、Compute Engine や Google Kubernetes Engine(GKE)、Google Maps などのための MCP サーバーが提供されています。 参考 : Supported products Google Cloud MCP Servers の詳細は、以下の記事や公式ドキュメントを参照してください。 blog.g-gen.co.jp 使用可能なツール Google SecOps MCP server で使用可能な主なツールとユースケースは以下のとおりです。以下は一部抜粋であり、他にも多数のツールがあります。詳細は公式ドキュメントをご確認ください。 カテゴリ ツール ユースケース ケース運用 list_cases , get_case , update_case 未対応ケースの棚卸し、ケース詳細の確認、担当者の更新 検索・調査 translate_udm_query , udm_search , search_entity 検索条件(UDM クエリ)の作成・変換を行い、ログ/イベントを検索して、関連するユーザー/端末/IP などのエンティティを特定 ルール運用 create_rule , list_rules , list_rule_errors 検知ルールの作成と棚卸し、適用・運用上のエラーの把握 取り込み/整備 create_feed , create_parser , list_parsers ログ取り込み設定(フィード)の作成、ログ整形のためのパーサー作成、パーサーの一覧取得 参考 : Google SecOps MCP Reference 注意点 Google SecOps MCP server は、2026年2月現在、 Preview 版 です。当記事で解説する内容は一般提供(GA)の際に変更される可能性があることを予めご了承ください。 Preview 版のサービスや機能を使うに当たっての注意点は、以下の記事も参考にしてください。 blog.g-gen.co.jp 検証手順 検証の流れは以下のとおりです。 項番 項目 内容 1 事前準備 MCP サーバーの有効化、IAM 権限の付与、Customer ID の確認、Gemini CLI の設定 2 ケース運用 未対応ケースの一覧取得、高優先度ケースの確認、関連アラートと 関与したユーザー/IP の確認 3 検索・調査 ケース/アラートで得たユーザーや IP などの手がかりを起点に、Google SecOps に取り込まれたログ(例:Google Workspace / AWS)を検索し、重要な操作を時系列で整理 事前準備 IAM 権限の付与と MCP サーバーの有効化 Google SecOps MCP を実行するプリンシパル(Google アカウント/サービスアカウント)に、SecOps インスタンスが紐付くプロジェクトで以下の IAM ロールを付与します。 MCP ツールのユーザー(ベータ版)( roles/mcp.toolUser ) Chronicle API 管理者( roles/chronicle.admin ) Chronicle SOAR 管理者(ベータ版)( roles/chronicle.soarAdmin ) ※ roles/chronicle.admin と roles/chronicle.soarAdmin は管理者権限相当です。SecOps 運用に必要なメンバーのみに付与することを推奨します。 参考 : Google SecOps MCP Reference SecOps インスタンスが紐付くプロジェクトで、Google SecOps MCP を有効化します。 # SecOps が紐付くプロジェクト ID export PROJECT_ID = " YOUR_PROJECT_ID " gcloud beta services mcp enable chronicle.googleapis.com --project =" $PROJECT_ID " ※ gcloud beta services mcp コマンドが「Invalid choice: 'mcp'」等のエラーで使用できない場合は、gcloud CLI が古い可能性があります。最新バージョンに更新してから再試行してください。 参考 : gcloud CLI のコンポーネントの管理 MCP サーバーを利用できるアカウントでログインし、アプリケーションのデフォルト認証情報(ADC)を設定します。 gcloud auth application-default login Customer ID の確認 本記事で利用する MCP ツールには、Google SecOps の Customer ID が必要なものがあります。Customer ID は Google SecOps コンソールの設定画面から確認できます。 確認手順の詳細は、以下の記事の 「Google SecOps 転送用のパラメータと認証情報の取得」 をご参照ください。 blog.g-gen.co.jp Gemini CLI の設定 Google(Google Cloud)のリモート MCP サーバーは、Gemini CLI では拡張機能として ~/.gemini/extensions/ 配下に設定します。本記事では拡張機能名を secops (任意)とします。 参考 : Configure MCP in an AI application 設定用のディレクトリと設定ファイル( ~/.gemini/extensions/secops/gemini-extension.json )を作成します。 mkdir -p ~/.gemini/extensions/secops touch ~/.gemini/extensions/secops/gemini-extension.json 作成した設定ファイルに以下を記述します。 PROJECT_ID と httpUrl のリージョン(例: asia-northeast1 )は環境に合わせて置き換えてください。 { " name ": " secops ", " version ": " 1.0.0 ", " mcpServers ": { " secops ": { " httpUrl ": " https://chronicle.asia-northeast1.rep.googleapis.com/mcp ", " authProviderType ": " google_credentials ", " oauth ": { " scopes ": [ " https://www.googleapis.com/auth/chronicle " ] } , " headers ": { " x-goog-user-project ": " PROJECT_ID " } } } } Gemini CLI を起動し、 /mcp コマンドで MCP サーバーへの接続を確認します。ツール一覧が表示されれば、接続は成功です。 > /mcp Configured MCP servers: 🟢 secops ( from secops ) - Ready ( 57 tools ) Tools: - list_cases - get_case - list_case_alerts - list_case_comments - update_case ...(省略) ケース運用 未対応のケース一覧の取得 以下のようなプロンプトで未対応(OPENED)のケースを直近 10 件取得し、優先度と作成日時の傾向を確認します。 Project ID PROJECT_ID 、Customer ID CUSTOMER_ID 、Region REGION を使用して 未対応のケースを作成日時の新しい順に 10 件表示してください。 # 出力例 ✦ 最新の未対応ケース 10 件を取得しました。 ┌─────────┬──────────────────────────────────────────┬──────────┬────────┬────────┬────────────────────┐ │ Case ID │ Display Name │ Priority │ Stage │ Status │ Created Time ( UTC ) │ ├─────────┼──────────────────────────────────────────┼──────────┼────────┼────────┼────────────────────┤ │ 399 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-30 09:33 │ │ 398 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-30 01:33 │ │ 397 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-29 19:33 │ │ 396 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-29 13:33 │ │ 395 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-29 07:34 │ │ 394 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-28 23:34 │ │ 393 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-28 15:34 │ │ 392 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-28 11:33 │ │ 391 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-28 05:34 │ │ 390 │ Replacement of Existing Compute Snapshot │ LOW │ Triage │ OPENED │ 2026-01-27 23:34 │ └─────────┴──────────────────────────────────────────┴──────────┴────────┴────────┴────────────────────┘ すべてのケースが Replacement of Existing Compute Snapshot(既存のスナップショットの置換)という名称で、優先度は LOW です。 高優先度ケースの抽出と要約 以下のようなプロンプトで優先度が高いケースを抽出し、内容を要約して「先に見るべきケース」を絞り込みます。 Project ID PROJECT_ID 、Customer ID CUSTOMER_ID 、Region REGION を使用して、優先度が高いケースを検索し、最新の3件の内容を要約してください。 # 出力例 ✦ 優先度が高いケースの最新 3 件を取得し、要約しました。 高優先度ケースの要約(最新 3 件) 検出されたケースはすべて、Workspace 管理者による 2 要素認証(2FA)の強制設定解除に関するもので、内容は以下の通りです。 1 . Two Factor Authentication Enforcement Removal by a Workspace Admin User ( Case ID: 137 ) * 優先度: PRIORITY_HIGH * 作成日時: 2025 / 11 / 27 19:06:23 ( UTC ) * 概要: 管理者ユーザーによって 2 要素認証の強制設定が解除されました。セキュリティポリシー違反の可能性があるため、意図した変更か確認が必要です。 2 . Two Factor Authentication Enforcement Removal by a Workspace Admin User ( Case ID: 135 ) * 優先度: PRIORITY_HIGH * 作成日時: 2025 / 11 / 27 10:18:07 ( UTC ) * 概要: 管理者による 2FA 強制解除が検知されました。アラートが 2 件紐付いており、繰り返しのアクションや関連操作があった可能性があります。 3 . Two Factor Authentication Enforcement Removal by a Workspace Admin User ( Case ID: 131 ) * 優先度: PRIORITY_HIGH * 作成日時: 2025 / 11 / 26 13:33:44 ( UTC ) * 概要: 同様の 2FA 解除検知です。短期間に複数発生しているため、アカウント侵害や誤設定の影響範囲を確認してください。 管理者権限に関わる重要な変更であるため、早急な確認を推奨します。 関連アラートの確認と影響範囲の確認 以下のようなプロンプトで、前項で確認した Case ID 137 に紐づくアラートを取得し、 「誰が/どこから/何に対して」 の観点で影響対象を整理します。 Project ID PROJECT_ID 、Customer ID CUSTOMER_ID 、Region REGION を使用して、Case ID 137 に関連するアラートを取得し、影響対象と影響範囲を整理してください。 # 出力例 ✦ Case ID 137 に関連するアラート情報、および影響対象と影響範囲を整理しました。 1 . ケース概要 * Case ID: 137 * ケース名: Two Factor Authentication Enforcement Removal by a Workspace Admin User * 優先度: HIGH * ステータス: OPENED 2 . 関連アラート * アラート名: TWO FACTOR AUTHENTICATION ENFORCEMENT REMOVAL BY A WORKSPACE ADMIN USER * 発生日時: 2025-11-26 10:03:52 UTC ( 1764151432245 ) * 内容: Workspace管理者権限を持つユーザーによって、二要素認証(2FA)の強制設定が解除されました。 3 . 影響対象と関与エンティティ アラートに関連するエンティティ情報から、以下の事実が確認されました。 * 実行ユーザー ( Principal ) : * EXAMPLE@DEV.G-GEN.CO.JP * 接続元IPアドレス: * 0000:0000:0000:0000:0000:0000:0000:0000 ( IPv6 ) * 変更対象リソース ( Target ) : * ORGANIZATIONS/ 1234567890 /SECURITYSETTINGS * 組織レベルのセキュリティ設定オブジェクトです。 4 . 影響範囲の整理 このアラートは、特定のユーザーに対する操作ではなく、組織レベルのセキュリティ設定に対する変更を示唆しています。 * 直接的な影響: 組織ID 1234567890 (DEV.G-GEN.CO.JP 組織全体、または該当する組織部門)において、二要素認証の強制ポリシーが無効化された可能性があります。 * セキュリティリスク: 2FA強制が解除されると、組織内のユーザーアカウントがパスワード漏洩などの攻撃に対して脆弱になります。全ユーザー、または特定の組織部門(OU)配下の全ユーザーが影響を受ける可能性があります。 推奨される次のステップ: * 実行ユーザー ( EXAMPLE@DEV.G-GEN.CO.JP ) に連絡を取り、この設定変更が意図的かつ承認されたものか確認してください。 * 意図しない変更であれば、直ちに設定を元に戻し、該当ユーザーのアカウントが侵害されていないか調査する必要があります。 検索・調査 特定ユーザーの Google Workspace 操作ログ調査 以下のようなプロンプトで前項で確認した Case ID 137 に関連する特定ユーザーの Google Workspace 操作ログの抽出と整理を実施します。 Project ID PROJECT_ID 、Customer ID CUSTOMER_ID 、Region REGION を使用して、Case ID 137 で特定した関与ユーザー EXAMPLE@DEV.G-GEN.CO.JP(接続元 IP:0000:0000:0000:0000:0000:0000:0000:0000) が 2025-11-27(UTC) に行った操作をログから抽出し、重要な操作を時系列で整理してください。 ※ メールアドレスでヒットしない場合は、ケースで得たユーザーID(@ 前)や接続元 IP で再検索します。 # 出力例 ✦ 指定された条件(Case ID 137 、ユーザー EXAMPLE@DEV.G-GEN.CO.JP、日付 2025-11-27 UTC)に基づき、Chronicle SIEM のログを調査しました。 該当ユーザーによる操作ログが複数確認されました。特に「 2 段階認証プロセス導入ガイド」の作成や「パスキーの登録」など、認証セキュリティに関連する重要な操作が時系列で確認されています。 以下に、 2025 年 11 月 27 日(UTC)の重要な操作を時系列でまとめます。 ユーザー操作タイムライン ( 2025-11-27 UTC ) 1 . OAuth アプリケーションの認可とスクリプト実行 ( 01:31 - 01:45 UTC ) * 01:31:08 - 01:45:34: XXXX というアプリケーションに対し、OAuth トークンを認可・取得しました。 * スコープ: Calendar, Drive, Presentations, Script Deployments 等の権限が含まれています。 * 操作: USER_RESOURCE_ACCESS ( authorize, activity ) * 詳細: Google Apps Script や Calendar API ( calendar.events.list, calendar.events.insert ) の呼び出しが記録されています。 2 . ドライブ コンテンツの作成と共有 ( 05:36 - 05:44 UTC ) * 05:36:14 - 05:38:05: Google ドライブ上で「XXXX プロジェクト」および「 2 段階認証プロセス導入ガイド」というファイルを編集・更新しました。 * 05:38:06: 新規ファイル 「 2 段階認証プロセス導入ガイド」(プレゼンテーション)を作成しました。 * 05:41:03: 上記ファイルの権限(ACL)を変更し、共有設定を行いました(USER_CHANGE_PERMISSIONS)。 * 05:41:11: Gmail にて、件名 【GAS自動送信】スライドURLのお知らせ: 2 段階認証プロセス導入ガイド」 のメールを送信しました。 * 接続元IP: 0000:0000:0000:0000:0000:0000:0000:0000 ※提示されたIPと同じサブネット 3 . セキュリティ設定の変更 ( 07:10 UTC ) * 07:10:03: ユーザー自身の認証設定として、パスキー ( Passkey ) を登録しました。 * 操作: STATUS_UPDATE ( product_event_type: passkey_enrolled ) * 接続元IP: 0000:0000:0000:0000:0000:0000:0000:0000 4 . デバイス管理 ( 07:46 UTC ) * 07:46:49: デバイスの同期/更新イベント ( DEVICE_REGISTER_UNREGISTER_EVENT ) が記録されています。 考察 Case ID 137 のアラート名は「Two Factor Authentication Enforcement Removal( 2 要素認証の強制解除)」ですが、ログからは解除操作そのものではなく、逆に「 2 段階認証プロセス導入ガイド」の作成・配布や、ユーザー自身の「パスキー登録」といった、セキュリティ強化に向けた準備やテストを行っていた動きが顕著に見られます。アラートはこれらの試行錯誤や設定変更の過程でトリガーされた可能性があります。 AWS 特権ユーザーの操作ログ調査 以下のようなプロンプトで、AWS 環境における特権ユーザーの重要な操作(権限変更やリソース削除など)を抽出します。 Project ID PROJECT_ID 、Customer ID CUSTOMER_ID 、Region REGION を使用して、 ユーザー XXX@g-gen.co.jp が 2026年1月26日から1月30日の間に AWS で行った操作の中でセキュリティに影響を与える操作を抽出して要約してください。 # 出力例 ✦ ユーザー XXX@g-gen.co.jp の 2026 年 1 月 26 日から 1 月 30 日の間の AWS 操作ログを分析しました。 主に既存の監視設定の削除と、Google SecOps と連携するための新規 IAM 設定が行われています。 以下にセキュリティに影響を与える主な操作を時系列で要約します。 1 . 監視・ログ収集リソースの削除 ( 1 月 28 日 07:52 - 07:57 ) 以前設定されていたと思われる監視用のリソースが一括して削除されました。これにより、一時的に対象環境のログ収集が停止した可能性があります。 * CloudTrail: トレイル XXXX の削除 * VPC: VPC フローログの削除 * S3: バケット XXXX の削除 * SNS/SQS: 通知用トピックおよびキューの削除 * CloudWatch Logs: ロググループの削除 2 . IAM 権限の操作 ( 1 月 28 日 04:44 - 09:56 ) 特定のユーザーやポリシーに対する権限変更が行われました。 * ポリシー更新: XXXX ポリシーのバージョン更新(S3バケットやSQSへのアクセス許可設定)。 * ユーザー権限変更: ユーザー XXXX に対して AdministratorAccess ( 管理者権限 ) の付与 ( AttachUserPolicy ) と、その直後の剥奪 ( DetachUserPolicy ) が行われました。 3 . Google SecOps 連携設定の構築 ( 1 月 29 日 01:59 - 06:01 ) Google SecOps ( Chronicle ) から AWS 環境を監視・操作するための信頼関係が構築されました。 * IAM ロール作成: XXXX の作成。 * OIDC プロバイダ作成: accounts.google.com を信頼する OpenID Connect プロバイダの作成。 * 信頼ポリシー設定: 作成したロールに対し、Google アカウントからの AssumeRole を許可する設定 ( UpdateAssumeRolePolicy ) 。 結論 このユーザーは、古いサンドボックス環境の監視設定をクリーンアップし、新たに Google SecOps を用いた監視体制を構築するためのセットアップ作業を行っていたと推測されます。 三浦 健斗 (記事一覧) クラウドソリューション部 2023年10月よりG-genにジョイン。元オンプレ中心のネットワークエンジニア。 ネットワーク・セキュリティ・唐揚げ・辛いものが好き。 Google Cloud Partner All Certification Holders 2025 / Google Cloud Partner Top Engineer 2026
G-gen の高宮です。Google 公式の技術ドキュメントを検索するための Developer Knowledge API を、Gemini CLI から MCP サーバー経由で使用した検証結果を紹介します。 はじめに Developer Knowledge API とは MCP サーバーで使用可能なツール 注意事項 事前準備 Google Cloud の設定 Gemini CLI の設定 search_documents での検索 質問の投入 検索と回答の流れ get_document での検索 質問の投入 検索と回答の流れ AI 開発におけるドキュメント参照 はじめに Developer Knowledge API とは Developer Knowledge API は、Google Cloud 製品や Google 製品(Android、Firebase など)の公式ドキュメントを検索するための API です。この API を使用すると、独自のアプリケーションやワークフローに、Google のナレッジベースを統合できます。 また当 API では、Google から リモート MCP サーバー (Developer Knowledge MCP server)も提供されており、ローカル環境の CLI ツールや IDE から、自然言語で Google の公式ドキュメントを検索して取得することができます。また、エージェンティックな開発の中で、AI が正確な API 仕様等をもとに開発を進めるためにも寄与します。 参考 : Developer Knowledge API 参考 : Connect to the Developer Knowledge MCP server Google Cloud MCP Servers では、Compute Engine や BigQuery、Google Maps などのための MCP サーバーが提供されています。詳細は以下の記事を参照してください。 blog.g-gen.co.jp blog.g-gen.co.jp MCP サーバーで使用可能なツール Developer Knowledge MCP server で使用可能なツールは以下のとおりです。 ツール名 説明 batch_get_documents search_documents で取得した結果から、複数のドキュメントの全ての内容を取得します。 get_document search_documents で取得した結果から、単一のドキュメントの全ての内容を取得します。 search_documents 入力したクエリに関連する Google の公式ドキュメントを検索します。検索結果で、 get_document または batch_get_documents を使用することで、ドキュメントの全ての内容を取得します。 参考 : MCP Reference: developerknowledge.googleapis.com 注意事項 Developer Knowledge API は、2026年2月現在、Public Preview です。当記事で解説する内容は一般提供(GA)の際に変更される可能性があることを予めご了承ください。 Preview 版のサービスや機能を使うに当たっての注意点は、以下の記事も参考にしてください。 blog.g-gen.co.jp 事前準備 Google Cloud の設定 使用する Google Cloud プロジェクトで以下の API を有効化します。 Developer Knowledge API gcloud services enable developerknowledge.googleapis.com 同じプロジェクトで、API キーを作成し、Developer Knowledge API 呼び出し時のみに使用できるように API キーを制限し保護します。 gcloud services api-keys create --display-name =" Developer Knowledge API Key " ※ Developer Knowledge API を有効化してすぐの場合は、「Select APIs」リストに表示されないことがあります。 以下のコマンドで Developer Knowledge MCP server を有効化します。 gcloud beta services mcp enable developerknowledge.googleapis.com 以下のメッセージが返却されたら、Developer Knowledge MCP server が有効化されます。 The MCP endpoint for service developerknowledge.googleapis.com has been enabled for the resource projects/プロジェクト名. ※ gcloud コマンドの実行中にエラーが発生した場合は、 gcloud components update beta コマンドでコンポーネントのアップデート後に再試行してください。 Gemini CLI の設定 作成した API キーを表示します。 Gemini CLI の構成ファイル( .gemini/settings.json )に MCP サーバーの設定を追加します。 { " mcpServers ": { " google-developer-knowledge ": { " httpUrl ": " https://developerknowledge.googleapis.com/mcp ", " headers ": { " X-Goog-Api-Key ": " 作成した API キー " } } } } MCP サーバーに接続できていれば、構成ファイルに記述した MCP サーバーと、使用できるツールの一覧が表示されます。 # Gemini CLI を起動 $ gemini # > /mcp Configured MCP servers: 🟢 google-developer-knowledge - Ready ( 3 tools ) Tools: - batch_get_documents - get_document - search_documents search_documents での検索 質問の投入 Gemini CLI に対して、以下のようなクエリを自然言語で投入します。 Google Cloud の API を有効化する Terraform のソースコードを Google の公式ドキュメントから検索してください。 入力したクエリに対して、Developer Knowledge MCP server の search_documents ツールを使用するか確認されます。 3. Allow all server tools for this session を選択すると、現在のセッション内では、Developer Knowledge MCP server の全てのツールの使用が許可されます。 検索と回答の流れ 入力した自然言語のクエリが、MCP サーバーへリクエストを送信するために JSON 形式に変換されます。 {"query":"Terraform enable Google Cloud API"} MCP サーバーから返却されたレスポンスに複数のドキュメントが格納されています。 レスポンスの JSON の構造は以下のとおりです。 { " results ": [ { " parent ":" 参照しているドキュメントのリソース名 ", " id ":" ドキュメント内のチャンク ID ", " content ":" チャンクしたドキュメントの内容 " } , ... } 取得した内容を元に、回答が生成されます。 get_document での検索 質問の投入 さらに詳細な情報が必要な場合は、以下のようなクエリを自然言語で投入します。 関連度の一番高いドキュメントを使用して、より詳細な情報を検索してください。 検索と回答の流れ 入力した自然言語のクエリに従って、 search_documents の検索結果から、関連度の高いドキュメントを判断し、MCP サーバーへリクエストを送信するために JSON 形式に変換します。 {"name":"documents/docs.cloud.google.com/docs/terraform/understanding-apis-and-terraform"} MCP サーバーから返却されたレスポンスに単一のドキュメントの詳細情報が格納されています。 レスポンスの JSON の構造は以下のとおりです。 { " name ":" 参照しているドキュメントのリソース名 ", " uri ":" 参照しているドキュメントの URI ", " content ":" Markdown 形式のドキュメントの内容 ", " description ":" ドキュメントの説明 " } 取得した内容を元に、より詳細な回答が生成されます。 AI 開発におけるドキュメント参照 例えば、以下のようなプロンプトを Gemini CLI に与えます。 組織 g-gen.co.jp の組織直下にある Google Cloud プロジェクトの一覧を取得する Python プログラムを記述して。 Google Cloud の Resource Manager API の情報を、公式ドキュメントから調べて確認してからプログラムの開発を始めて。 Gemini CLI は、必要なドキュメントを検索・取得して、コンテキストとして使いつつ、プログラムを記述します。 エージェンティックな開発の中で、適宜 Developer Knowledge MCP server を参照することで、開発の精度が向上することが期待できます。 また、必要なときには Developer Knowledge MCP server を参照するよう、 GEMINI.md などのコンテキストファイルに予めルールを記述することで、プロンプトで毎回記述する必要がなくなります。 参考 : Provide context with GEMINI.md files - Gemini CLI 参考 : Use the Gemini Code Assist agent mode - Gemini for Google Cloud 高宮 怜 (記事一覧) クラウドソリューション部クラウドエクスプローラ課 2025年6月より、G-genにジョイン。前職は四国のSIerで電力、製造業系のお客様に対して、PM/APエンジニアとして、要件定義から運用保守まで全工程を担当。現在はGoogle Cloudを学びながら、フルスタックエンジニアを目指してクラウドエンジニアとしてのスキルを習得中。 Follow @Ggen_RTakamiya
G-gen の三浦です。当記事では Google Antigravity を使用し、バイブコーディングで目標管理アプリを開発する手順と、Browser Agent によるデバッグの流れを紹介します。 概要 Google Antigravity とは リリースステージ 使用可能なモデル データの保護 検証手順 検証 インストール 初期設定 日本語化とルール設定 自然言語による開発 Browser Agent によるデバッグ 概要 Google Antigravity とは Google Antigravity は、AI を使用して開発作業ができる IDE(統合開発環境)です。Google Antigravity を使うことで、自然言語でやりたいことを伝えて AI がコードの生成や修正を進める開発スタイルである バイブコーディング (vibe coding)を実現できます。 自然言語を使ってチャットで Google Antigravity に作業を依頼すると、AI エージェントがエディタ、ターミナル、ブラウザを使って、実装や修正を段階的に実行します。 参考 : Google Antigravity 参考 : vibe コーディングとは Google Antigravity の主な特徴は以下のとおりです。 特徴 説明 AI-powered IDE エディタ内で AI と対話しながら、作成・修正・調査を一連の流れで実行 Asynchronous Agents 複数の作業を同時に依頼でき、複数タスクを並行して実行可 Agent Manager エージェントとの会話、進捗、成果物を1つの画面でまとめて管理 Multi-window 編集、管理、ブラウザ確認を分けて表示して効率的に並行作業 Browser Agent エージェントがブラウザを操作し、画面確認や情報収集を行う リリースステージ Google Antigravity は、2026年2月現在、 パブリックプレビュー です。当記事で解説する内容は一般提供(GA)の際に変更される可能性があることをあらかじめご了承ください。プレビュー版のサービスや機能を使うに当たっての注意点は、以下の記事も参考にしてください。 blog.g-gen.co.jp 使用可能なモデル Google Antigravity で使用するバックエンドの AI モデルとしては、Google が提供する Gemini シリーズに加えて、Anthropic の Claude など他社モデルも使用可能です。 2026年2月現在、Google Antigravity では以下の生成 AI モデルを選択できます。 提供元 モデル Google Gemini 3 Pro(high) Google Gemini 3 Pro(low) Google Gemini 3 Flash Anthropic Claude Sonnet 4.5 Anthropic Claude Sonnet 4.5(thinking) Anthropic Claude Opus 4.5(thinking) OpenAI GPT-OSS 参考 : Models データの保護 Google Antigravity は Google 製品であり、以下のような規約が適用されます。 Google Terms of Service Google Cloud - Service Specific Terms Google Workspace AI Ultra for Business で認証する場合に適用 Google Antigravity Additional Terms of Service Google Privacy Policy Generative AI Additional Terms of Service Google Antigravity 自体は無償で利用できますが、その場合、Google Antigravity Additional Terms of Service に記載のとおり、ユーザーデータやメタデータ、AI とのやりとりなどが記録され、保存されます。また、それらの情報はサービス改善に使用される可能性があります。ただし、Google Workspace AI Ultra for Business サブスクリプションを使用して認証する場合は、「当社はお客様のプロンプト、コンテンツ、またはモデル応答を収集しません。」とされています。 上記のような記載があるものの、Google Antigravity の企業による利用に際して、データがモデルのトレーニングに使用されないためにはどうすればよいか、という公式のガイダンスは、2026年2月現在、Google から発表されていません。 2026年2月現在、Google Antigravity のリリースステージがパブリックプレビュー段階であることからも、企業が当サービスを使うにあたりどのようにすべきかは明確になっていません。なお公式料金ページには、 Organization plan が近日中に発表されることが示唆されており、このプランは Google Cloud と連携することでデータの保護を提供するような内容となることが想定されます。 参考 : Choose the perfect plan for your journey 検証手順 検証手順は以下のとおりです。インストールとアプリ開発に加え、意図的にエラーが発生する状況を作り、Browser Agent で原因特定から修正までできるか確認します。 項番 内容 説明 1 インストールと初期設定 インストール後、初回起動〜サインインまでを実施し、エージェントの実行ポリシー(コマンド実行や変更適用のレビュー要否など)を設定します。 2 日本語化とルール設定 画面表示を日本語化し、「回答・計画は日本語で実施する」などのルールを設定します。 3 自然言語によるアプリ作成 チャットに要望を入力し、計画の提示 → レビュー → 実装 → 起動確認までを行います。 4 Browser Agent によるデバッグ検証 わざと不具合を入れ、Browser Agent(ブラウザ操作)でエラー画面を確認し、原因特定〜修正までできるかを確認します。 本検証時の端末と Antigravity のバージョンは以下のとおりです。 OS : Windows 11 Pro 実行環境 : WSL2(Ubuntu) Antigravity : 1.13.3 検証 インストール 公式サイトから、利用する OS に合わせたインストーラーをダウンロードして実行します。対応 OS と要件の詳細は公式ドキュメントをご確認ください。 対応 OS macOS Windows Linux 参考 : Download Google Antigravity 使用許諾契約書を確認して問題がない場合は「同意する」を選択し、「次へ」を選択します。 使用許諾契約書の同意 インストール先を指定し、「次へ」を選択します。 インストール先の指定 ショートカットの作成場所を指定し、「次へ」を選択します。 ショートカットの指定 その他で必要な項目があれば選択し、「次へ」を選択します。 追加タスクの選択 内容を確認し、「インストール」を選択します。 インストールの選択 インストールが完了したので、「完了」を選択します。 完了を選択 初期設定 Antigravity を起動し、「Next」を選択します。 起動と Next の選択 Visual Studio Code (以下、 VS Code )を使用している場合、設定をインポートできます。不要な場合は「Start fresh」を選択します。 VS Code 設定をインポートするかの選択 次に IDE のテーマ(配色などの見た目)を選択し、「Next」を選択します。 テーマの選択 Antigravity のエージェントをどのように動かすかを選択します。選択したモードに応じて、エージェントの動きが変わります。本検証では Review-driven development を選択します。 エージェントの設定 利用モード(左側)の違い モード 特徴 Secure Mode すべての操作を 都度確認 してから実行します。加えて、より厳格な保護設定が適用されます(詳細は公式ドキュメント参照)。 Review-driven development(推奨) 要所で 人間の確認を挟みながら 作業を実行します。 Agent-driven development エージェントが 自律的に反復 して作業を実行します(確認なしで進む場合があります)。 Custom configuration 実行ポリシー(例 : コマンド実行やレビュー要否)を 細かく設定 できます。 実行ポリシー(右側)の項目 項目 制御項目 選択肢 影響 Terminal execution policy ターミナル(コマンド)実行の扱い Always Proceed / Request Review コマンド 自動実行するか 、 都度確認するか を制御します。 Review policy 変更の適用・進行時の人間の確認の要否 Always Proceed / Agent Decides / Request Review 変更を 即適用するか 、 都度確認するか 、 状況に応じて自動判断するか を制御します。 JavaScript execution policy ブラウザ等での JS 実行 Always Proceed / Request Review / Disabled JavaScript を 自動実行するか 、 都度確認するか 、 無効化するか(Disabled) を制御します。 参考 : Secure Mode 参考 : Agent Modes / Settings エディタの初期設定を行い、「Next」を選択します。 Keybindings(キー割り当て) :通常は Normal を選択します。 Vim 操作に慣れている場合は Vim を選択します。 Extensions(拡張機能) :Python や Go などの言語拡張機能をインストールするかを選択します。 エディタの設定 「Sign in with Google」を選択し、Google アカウントで認証を実施します。 Google 認証の実施 認証が完了すると、以下画面に切り替わります。注意事項の確認と必要に応じてチェックボックスを有効化します。チェックボックスを有効化した場合、利用状況データの送信を許可することを指します。 利用規約の確認 初期設定は以上です。これらの設定は後から変更できます。 エディタの表示 日本語化とルール設定 左サイドバーの「Extensions」を選択し、 日本語 と入力して表示された Japanese Language Pack for Visual Studio Code の「Install」を選択します。 画面の日本語化 左下にポップアップが表示されるので、「Change Language and Restart」を選択します。 Antigravity の再起動 日本語表記になっていることを確認し、右上の三点リーダーから「Customizations」を選択します。 Customizations を選択 Rules タブで「Global」を選択し、以下を入力して保存します。Global ルールは全体の共通仕様です。 回答及び計画などの各種ドキュメントはすべて日本語にすること Rules の設定 参考 : Rules 自然言語による開発 右上の「Open Agent Manager」を選択します。 Open Agent Manager を選択 「Open Workspace」 > 「Open New Workspace」 を選択し、作業用フォルダ( Workspace )を開きます。 Open Workspace を選択 参考 : Workspaces 作業用のフォルダを選択します。 フォルダの選択 「Next」を選択します。 Next を選択 会話画面が表示されます。モデル( Gemini 3 など)の選択に加え、会話モードとして以下 2 つを選択できます。 モード 説明 Planning 実行前に計画(手順)を提示してから進めるモードです。調査や設計、複雑な作業を慎重に進めたいケースに適しています。 Fast 計画より実行を優先して、直接タスクを進めるモードです。軽い修正や試行をすぐに動かして確認したいケースに適しています。 モードの選択 モデルの選択 本検証時は以下の設定で、以下プロンプトを入力し、Enter キーを押下します。 モード : Planning モデル : Gemini 3 Pro(high) 社員の目標を管理するシステムを作りたい プロンプトの入力 エージェントから実装計画の確認依頼が来たので、内容を確認します。 実装計画の確認1 実装計画の確認2 実装計画の確認3 計画が問題ない場合、「Review」を選択してコメントを入力し、「Submit」を選択します。 計画の承認 エージェントから、 Next.js のプロジェクト作成コマンドの実行確認依頼が届きます。内容を確認して「Accept」を選択します。 エージェントによるコマンド実行の承認 エージェントから実装(ダッシュボードと社員一覧画面)の完了連絡が届いたら、コマンドを実行して確認します。 エージェントからの動作確認依頼 コマンドの実行 表示された URL にアクセスし、画面が表示されることを確認します。 アプリの表示確認1 アプリの表示確認2 Browser Agent によるデバッグ コードを意図的に改修し、アクセス時にエラーが出るようにします。 エラーが出るように改修 エージェントに対し、エラー内容をブラウザで確認するよう指示します。エージェントから Browser Agent を使用したデバッグの実行許可を求められるため、「Setup」を選択します。 エージェントによる Browser Agent のセットアップ確認 参考 : Browser Agent ブラウザが起動し、Antigravity 用の拡張機能のインストールが求められるため、確認してインストールを実施します。 拡張機能のインストール1 拡張機能のインストール2 拡張機能のインストール3 インストールすると、Antigravity によりエラーページへのアクセスとデバッグ情報の収集が開始されます。 エージェントによるデバッグ情報の収集 エージェントから修正完了連絡が来たので、再度アクセスしてエラーが表示されずに画面が表示されていることを確認します。 エージェントからの修正完了連絡 アクセスの確認 三浦 健斗 (記事一覧) クラウドソリューション部 2023年10月よりG-genにジョイン。元オンプレ中心のネットワークエンジニア。 ネットワーク・セキュリティ・唐揚げ・辛いものが好き。 Google Cloud Partner All Certification Holders 2025 / Google Cloud Partner Top Engineer 2026
G-gen の武井です。当記事では、Google が提供する SIEM/SOAR 製品である Google SecOps と AWS のログ連携をキーレス認証で実現する方法について解説します。 前提知識 Google SecOps データフィード キーレス認証 過去記事との相違 AWS の設定 カスタム IAM ロール カスタム IAM ロール(信頼ポリシー) ID プロバイダー データフィードの設定 動作確認 関連記事 前提知識 Google SecOps Google Security Operations (以下 Google SecOps、旧称 Chronicle)は、Google Cloud が提供する 統合セキュリティ運用プラットフォーム です。 SIEM、SOAR、脅威インテリジェンス、Gemini を利用した AI による運用支援を提供します。これらにより、脅威の検知・調査・対応を一元的に行えます。結果として、セキュリティ運用の効率化と高度化を実現できます。 参考: Google SecOps の概要 詳細は、以下の記事をご参照ください。 blog.g-gen.co.jp データフィード Google SecOps では、AWS、Azure、その他 SaaS など、Google Cloud 以外の環境のログデータを取り込む仕組みとして データフィード機能 があります。 SecOps UI もしくは Feed Management API を用いて、ログソース(Amazon S3、Cloud Storage、Pub/Sub、Webhook など)を指定し、各種ログを SecOps に取り込む設定を行います。 ソースタイプ 概要 ストレージ Google Cloud、AWS、Azure のクラウドストレージバケットに保存されたログデータを定期的に取得 Amazon SQS S3 バケットの通知をキュー経由で受信し、ログデータを取得(リアルタイムかつ安定的に取り込み) ストリーミング Amazon Data Firehose、Cloud Pub/Sub、Webhook などを経由し、SIEM の HTTPS エンドポイントにログデータをストリーミングでプッシュ サードパーティ API CrowdStrike、SentinelOne、Palo Alto など、外部 SaaS から API 経由でログデータを取得 参考: フィード管理の概要 キーレス認証 データフィードで AWS のログを取り込む際のデータソースに Amazon S3 や SQS を選択した場合、従来は アクセスキー と シークレットアクセスキー が必要でした。 しかし2025年5月26日のアップデートにより、 AWS IAM Role for Identity Federation を選択することで キーレス認証 (キーを使用しない認証)が可能となりました。 従来のキー認証方式(データフィードの設定画面より) キーレス認証方式(データフィードの設定画面より) これは、Google SecOps と AWS の間に 信頼関係 (ID フェデレーション)を結ぶことで、固定のアクセスキーを使わずに認証を行う仕組みです。 Google SecOps が発行する OIDC トークンを AWS に提示し、AWS Security Token Service(STS)の AssumeRoleWithWebIdentity という API を介して一時的なアクセス権限を取得しています。 キーの流出リスクを根本的に排除でき、管理の手間も削減できるため、一般的にはよりセキュアな認証方式といえます。 参考: Google Security Operations release notes(May 26, 2025) 参考: AssumeRoleWithWebIdentity 参考: STSの一時的な認証情報取得APIコールについてまとめてみる 過去記事との相違 当記事では以下の構成のもと、S3 バケットに格納した CloudTrail ログを、データフィード機能を使って Google SecOps に取り込みます。 以下の記事でも同様の構成でログ取り込み検証を行っていますので、当記事ではキーレス認証への変更点のみ詳しく解説します。 # 設定項目 設定箇所 過去記事との手順差異 1 S3 バケットの設定 AWS なし 2 SQS の設定 AWS なし 3 SQS アクセスポリシーの設定 AWS なし 4 S3 イベント通知の設定 AWS なし 5 CloudTrail の設定 AWS なし 6 IAM の設定 AWS あり 7 データフィードの設定 Google SecOps あり blog.g-gen.co.jp AWS の設定 カスタム IAM ロール キー認証方式ではキーを発行したマシンアカウントに紐づけていた許可ポリシーを カスタム IAM ロール に紐づけます。 そのため、今回の例では SecOpsFederationRole という名前で新規作成します。 # 設定項目 設定値 1 信頼されたエンティティタイプ ウェブアイデンティティ 2 アイデンティティプロバイダー Google 3 Audience サブジェクト ID なお サブジェクト ID はデータフィードの設定画面から取得可能で、後述する信頼ポリシーや ID プロバイダーの設定でも使用します。 データフィードの設定画面からサブジェクトIDを取得 次に、S3 と SQS に関する最小権限をもつ許可ポリシー(今回の例では secops-s3-access )をロールに紐づけます。 # secops - s3 - access { " Version ": " 2012-10-17 ", " Statement ": [ { " Sid ": " ListAllowedBuckets ", " Effect ": " Allow ", " Action ": " s3:ListBucket ", " Resource ": [ " arn:aws:s3:::yutakei-secops-cloudtrail-test " ] } , { " Sid ": " ReadObjectsFromAllowedBuckets ", " Effect ": " Allow ", " Action ": " s3:GetObject ", " Resource ": [ " arn:aws:s3:::yutakei-secops-cloudtrail-test/* " ] } , { " Sid ": " ReadFromSQSForCloudTrailFeed ", " Effect ": " Allow ", " Action ": [ " sqs:ReceiveMessage ", " sqs:DeleteMessage ", " sqs:GetQueueAttributes ", " sqs:GetQueueUrl " ] , " Resource ": [ " arn:aws:sqs:ap-northeast-1:945008193730:yutakei-secops-cloudtrail-queue " ] } ] } カスタム IAM ロール(信頼ポリシー) ロールを作成後、Google SecOps が OIDC トークンを用いてこのロールを一時的に引き受けられるようにするため(Assume Role するため)、 信頼ポリシー を以下のように定義します。 Principal には OIDC プロバイダ ( Google )を、Condition 句には サブジェクト ID ( accounts.google.com:sub )を明示することで、指定した SecOps インスタンスのアクセスのみを許可します。 { " Version ": " 2012-10-17 ", " Statement ": [ { " Effect ": " Allow ", " Principal ": { " Federated ": " arn:aws:iam::945008193730:oidc-provider/accounts.google.com " } , " Action ": " sts:AssumeRoleWithWebIdentity ", " Condition ": { " StringEquals ": { " accounts.google.com:sub ": " 1234567890987654321 " } } } ] } ID プロバイダー IAM ロールの設定に加え、AWS アカウント全体の設定として ID プロバイダー (OIDC プロバイダー)の設定が必要です。 Google の認証基盤( https://accounts.google.com )を信頼済みプロバイダーとして登録し、Google SecOps の サブジェクト ID を追加します。 これにより、Google SecOps が発行するトークンを、AWS 側が正当なリクエストとして受け入れられるようになります。 # 設定項目 設定値 1 プロバイダのタイプ OpenID Connect 2 プロバイダの URL https://accounts.google.com 3 対象者 サブジェクト ID データフィードの設定 認証方式を キーレス認証 (AWS IAM Role for Identity Federation)に変更し、先ほど作成したロール ARN を入力し変更を反映させます。(サブジェクト ID は自動入力されます) これによりキー認証によるログ取り込みからキーレス認証のログ取り込みに切り替わります。 なお、前述の ID プロバイダーの設定が未完了の場合、以下のようにエラーが発生します。 ID プロバイダー未設定による設定エラー 動作確認 キーレス認証に切り替えた後も問題なくログが取り込めていることを確認できました。 関連記事 blog.g-gen.co.jp 武井 祐介 (記事一覧) クラウドソリューション部クラウドエンジニアリング課。 Google Cloud Partner Top Engineer 2026 選出。 趣味はロードレースやサッカー観戦、ゴルフ、筋トレ。 Follow @ggenyutakei
G-gen の武井です。当記事では、Google が提供する SIEM/SOAR 製品である Google SecOps に、AWS CloudTrail ログを取り込む方法について解説します。 はじめに Google SecOps とは データフィードとは 設定の流れ AWS の設定 S3 バケット SQS(Simple Queue Service) SQS アクセスポリシー S3 イベント通知 CloudTrail IAM データフィードの設定 動作確認 関連記事 はじめに Google SecOps とは Google Security Operations (以下 Google SecOps、旧称 Chronicle)は、Google Cloud が提供する 統合セキュリティ運用プラットフォーム です。 SIEM、SOAR、脅威インテリジェンス、Gemini を利用した AI による運用支援を提供します。これらにより、脅威の検知・調査・対応を一元的に行えます。結果として、セキュリティ運用の効率化と高度化を実現できます。 参考: Google SecOps の概要 詳細は、以下の記事をご参照ください。 blog.g-gen.co.jp データフィードとは Google SecOps では、AWS、Azure、その他 SaaS など、Google Cloud 以外の環境のログデータを取り込む仕組みとして データフィード機能 があります。 SecOps UI もしくは Feed Management API を用いて、ログソース(Amazon S3、Cloud Storage、Pub/Sub、Webhook など)を指定し、各種ログを SecOps に取り込む設定を行います。 ソースタイプ 概要 ストレージ Google Cloud、AWS、Azure のクラウドストレージバケットに保存されたログデータを定期的に取得 Amazon SQS S3 バケットの通知をキュー経由で受信し、ログデータを取得(リアルタイムかつ安定的に取り込み) ストリーミング Amazon Data Firehose、Cloud Pub/Sub、Webhook などを経由し、SIEM の HTTPS エンドポイントにログデータをストリーミングでプッシュ サードパーティ API CrowdStrike、SentinelOne、Palo Alto など、外部 SaaS から API 経由でログデータを取得 参考: フィード管理の概要 設定の流れ 当記事では以下の構成のもと、S3 バケットに格納した CloudTrail ログを、データフィード機能を使って Google SecOps に取り込みます。 その際、 Amazon SQS を用いることで、S3 バケットへのログ格納通知をキュー経由で受信し、ログデータを リアルタイムかつ安定的 に取り込みます。 大まかな設定手順は、以下のとおりです。 順序 設定項目 設定箇所 1 S3 バケットの設定 AWS 2 SQS の設定 AWS 3 SQS アクセスポリシーの設定 AWS 4 S3 イベント通知の設定 AWS 5 CloudTrail の設定 AWS 6 IAM の設定 AWS 7 データフィードの設定 Google SecOps 8 動作確認 Google SecOps 参考: AWS CloudTrail ログを収集する AWS の設定 S3 バケット S3 バケットは以下の手順に従い作成します。 参考: 汎用バケットの作成 SQS(Simple Queue Service) 今回の構成では、バケット全体を定期スキャンするのではなく、 ログ生成をトリガーにリアルタイムで取り込み を行います。 そのため、以下の手順に従い 標準タイプ でキューを作成します。 参考: Amazon SQS コンソールを使用した標準キューの作成 SQS アクセスポリシー S3 バケットから SQS キューにメッセージを送信するため、キューのアクセスポリシーを編集し、 S3 サービスプリンシパル ( s3.amazonaws.com )に対して、キューへのメッセージ送信( SQS:SendMessage )を許可します。 また、意図しないバケットからの書き込みを防ぐため、ポリシー内の Condition 句で「特定の AWS アカウント」かつ「特定の S3 バケット」からのリクエストのみを許可するように制限を行います。 今回の例では、以下のアクセスポリシーを定義しました。 { " Version ": " 2012-10-17 ", " Id ": " S3ToSQS ", " Statement ": [ { " Sid ": " AllowS3ToSendMessage ", " Effect ": " Allow ", " Principal ": { " Service ": " s3.amazonaws.com " } , " Action ": " SQS:SendMessage ", " Resource ": " arn:aws:sqs:ap-northeast-1:945008193730:yutakei-secops-cloudtrail-queue ", " Condition ": { " StringEquals ": { " aws:SourceAccount ": " 945008193730 " } , " ArnLike ": { " aws:SourceArn ": " arn:aws:s3:::yutakei-secops-cloudtrail-test " } } } ] } 参考: Amazon SQS でのポリシーの使用 S3 イベント通知 続けて、S3 バケットから SQS キューにメッセージを送信するため、S3 バケットのプロパティからイベント通知を設定します。 すべてのオブジェクト作成イベントを先ほどのキューに送信 できるよう、以下の手順に従い作成します。 参考: Amazon S3 イベント通知 CloudTrail 以下の手順に従い、先ほど作成した S3 バケットを CloudTrail ログの格納先とする 証跡 を作成します。 今回の構成では AWS KMS や SNS を使用しないため、 ログファイルの SSE-KMS 暗号化 ならびに SNS 通信の配信 については有効化しません。 なお、ログとして取り込むイベントタイプや管理イベントの API アクティビティは任意です。 参考: AWS CloudTrail と S3 を構成する 参考: CloudTrail コンソールで証跡を作成する IAM Google SecOps のデータフィードで CloudTrail ログを取り込むには、 アクセスキー と シークレットアクセスキー が必要です。 そのため、以下の公式ドキュメントに従い Google SecOps 用のマシンユーザー(AWS マネジメントコンソールへのユーザーアクセス不可)を作成してキーを発行します。 公式ドキュメントには、作成したマシンユーザーに AmazonS3FullAccess を付与する旨の記述がありますが、今回の例では S3 と SQS に関する 最小権限のカスタム IAM ポリシー を以下のとおり作成して付与しました。 { " Version ": " 2012-10-17 ", " Statement ": [ { " Sid ": " ListAllowedBuckets ", " Effect ": " Allow ", " Action ": " s3:ListBucket ", " Resource ": [ " arn:aws:s3:::yutakei-secops-cloudtrail-test " ] } , { " Sid ": " ReadObjectsFromAllowedBuckets ", " Effect ": " Allow ", " Action ": " s3:GetObject ", " Resource ": [ " arn:aws:s3:::yutakei-secops-cloudtrail-test/* " ] } , { " Sid ": " ReadFromSQSForCloudTrailFeed ", " Effect ": " Allow ", " Action ": [ " sqs:ReceiveMessage ", " sqs:DeleteMessage ", " sqs:GetQueueAttributes ", " sqs:GetQueueUrl " ] , " Resource ": [ " arn:aws:sqs:ap-northeast-1:945008193730:yutakei-secops-cloudtrail-queue " ] } ] } 参考: AWS IAM ユーザーを構成する データフィードの設定 CloudTrail ログが格納された S3 バケットの URI、SQS キューの ARN、そしてキー情報を用いて Google SecOps との連携を行い、ログの取り込みを行います。 その他にも、ログの種別や取り込み先環境を識別するために Ingestion Labels と Namespace も設定します。 設定が適切に行われると STATUS 列の値が Active と表示されます。なお、ログが取り込めている場合でも、LAST SUCCEDED ON 列に ログの最終取り込み日時 (UTC)が表示されないこともあります。 参考: AWS CloudTrail フィードを設定する方法 参考: Supported log types with a default parser 参考: アセットの名前空間を使用する 動作確認 AWS はデフォルトパーサーが用意されているため、Google SecOps にログが取り込まれると自動的に UDM イベントにパースされます。 SIEM Search (UDM 検索)メニューから以下のクエリを入力して実行すると、ログが取り込まれていることを確認できました。 metadata.log_type = "AWS_CLOUDTRAIL" 選択した UDM イベントを展開すると、筆者が S3 API をコールした際の記録が残されていました。 Event Viewer を Event Fields(UDM)から Raw Log に切り替えると、パースされる前の生ログを確認することも可能です。 Data Ingestion and Health (ネイティブダッシュボードの1つ)からも、CloudTrail のログ( AWS_CLOUDTRAIL )がエラーなく取り込めていることも確認できました。 関連記事 blog.g-gen.co.jp 武井 祐介 (記事一覧) クラウドソリューション部クラウドエンジニアリング課。 Google Cloud Partner Top Engineer 2026 選出。 趣味はロードレースやサッカー観戦、ゴルフ、筋トレ。 Follow @ggenyutakei
G-gen の杉村です。2026年1月に発表された、Google Cloud や Google Workspace のイチオシアップデートをまとめてご紹介します。記載は全て、記事公開当時のものですのでご留意ください。 はじめに Google Cloud のアップデート LOAD DATA/CREATE EXTERNAL TABLE のフォーマット指定オプションが GA Cloud Run functions で Direct VPC egress が使用可能に(Preview) Gemini CLI 利用状況を Cloud Monitoring にエクスポート Gemini Enterprise の Agent Designer が一般公開(GA) Cloud Run(functions)で pyproject.toml を使ったデプロイに対応 Cloud Load Balancing に Managed Workload Identity が登場(Preview) Cloud DNS で「DNS Armor」が一般公開(GA) Looker Studio で異なるデータソースの図表に同じフィルタを適用できるように Google Cloud にバンコクリージョン(asia-southeast3)が登場 Gemini Cloud Assist を使って BigQuery のジョブ履歴を解析できるように Compute Engine で N4A インスタンスが Preview → 一般公開(GA) Spanner でカラムナエンジンが Preview 公開 AlloyDB for PostgreSQL が PostgreSQL 18 に対応(Preview) BigQuery で Conversational Analytics 機能が Preview 公開 割り当て(Quota)の自動調整機能が組織やフォルダレベルにも対応 Google Workspace のアップデート Dropbox から Google ドライブへの移行ツールが一般公開(GA) Google Meet 音声翻訳がベータ版で利用可能になる予定(2026-01-27) Google フォームで締切日や集まった回答数に応じた自動的な受付停止が可能に Microsoft Office のパスワード保護付きファイルが編集できるように Google Workspace ユーザー向けに動画生成ツール Flow が使えるように Google チャットでメッセージの転送が可能に Google Meet の Ask Gemini 機能が2月上旬から日本語に対応 Google カレンダーで予定作成時に Gemini が会議参加者の空き時間を提案 Gemini アプリで NotebookLM をデータソースとして追加可能に Google フォームで回答者を細かく制御できるようになった はじめに 当記事では、毎月の Google Cloud(旧称 GCP)や Google Workspace(旧称 GSuite)のアップデートのうち、特に重要なものをまとめます。 また当記事は、Google Cloud に関するある程度の知識を前提に記載されています。前提知識を得るには、ぜひ以下の記事もご参照ください。 blog.g-gen.co.jp リンク先の公式ガイドは、英語版で表示しないと最新情報が反映されていない場合がありますためご注意ください。 Google Cloud のアップデート LOAD DATA/CREATE EXTERNAL TABLE のフォーマット指定オプションが GA BigQuery release notes - January 06, 2026 (2026-01-06) BigQueryの「LOAD DATA」「CREATE EXTERNAL TABLE」の際の以下オプションが Preview → 一般公開(GA)。これまで必要だったデータ取り込み前のいくつかの前処理が不要になり運用が簡素化される。 time_zone date_format、datetime_format、time_format、timestamp_format null_markers source_column_match BigQuery のロード時や外部テーブル作成時のオプション Cloud Run functions で Direct VPC egress が使用可能に(Preview) Configure Direct VPC egress for 2nd gen functions (2026-01-06) Cloud Run functions(2nd gen)で Direct VPC egress が使用可能に(Preview)。 サーバーレス関数から VPC にアクセスする手段の1つ。従来手法である Serverless VPC Access connector よりも安価で低レイテンシのため、GA 後はこちらが推奨。 Cloud Run functions で Direct Vpc Egress が使用可能に Gemini CLI 利用状況を Cloud Monitoring にエクスポート Instant insights: Gemini CLI's New Pre-Configured Monitoring Dashboards (2026-01-08) Gemini CLI 利用状況を Cloud Monitoring にエクスポートできるように。 OpenTelemetry によりメトリクスとログを送信。 Gemini Enterprise の Agent Designer が一般公開(GA) Agent Designer overview (2026-01-13) Gemini Enterprise の Agent Designer が一般公開(GA)。ノーコードエージェントを開発するための Web UI。 Gemini Enterprise の Agent Designer でノーコードエージェントを開発 以下の記事も参照。 blog.g-gen.co.jp Cloud Run(functions)で pyproject.toml を使ったデプロイに対応 Deploy Python applications with a pyproject.toml file (2026-01-13) Cloud Run(ソースコードからのデプロイ)と Cloud Run functions の Python ランタイムで、pyproject.toml を使ったデプロイに対応。 これまで主流だった requirements.txt に加え、PEP 518 や PEP 621 で標準化された pyproject.toml を直接利用できる。これにより、Poetry や Hatch といったモダンなツールを用いたプロジェクト構成をそのままデプロイに活用可能。 Google Cloud の Buildpacks がこのファイルを自動検出し、必要なライブラリをインストールしてコンテナをビルドする。ビルド設定や依存関係、メタデータを一つのファイルに集約できるため、プロジェクトの管理効率が向上する。 Cloud Load Balancing に Managed Workload Identity が登場(Preview) Backend mTLS with managed workload identity overview (2026-01-16) Cloud Load Balancing に Managed Workload Identity が登場(Preview)。 LB とバックエンド間の mTLS の構築がシンプルに。証明書の自動管理で運用負荷を下げつつ通信中のデータのセキュリティを強化。 Cloud DNS で「DNS Armor」が一般公開(GA) Advanced threat detection with DNS Armor (2026-01-16) Google Cloud の Cloud DNS で「DNS Armor」が一般公開(GA)。 VM 等からの DNS クエリを検査して悪意あるアクティビティを検知してログ記録する。Infoblox 社が提供する脅威情報に基づく。 Looker Studio で異なるデータソースの図表に同じフィルタを適用できるように Use controls across data sources (2026-01-18) Looker Studio で、異なるデータソースを参照しているチャート(図表)を単一のフィルタ(コントロール)で制御できるようになった。 フィールド ID を上書きして共通にすることでフィルタリングを共通化できる。 Google Cloud にバンコクリージョン(asia-southeast3)が登場 Cloud locations (2026-01-20) Google Cloud にバンコクリージョン(asia-southeast3)が登場。 タイ国内や周辺地域からのレイテンシなどが最適。東アジアではシンガポール、ジャカルタ、香港、台湾、東京、大阪、ソウルに次いで8個目。 これにより、2026年1月現在の Google Cloud リージョンの総数は43、ゾーンは130になった。 Google Cloud のリージョン・ゾーンの総数 Gemini Cloud Assist を使って BigQuery のジョブ履歴を解析できるように Analyze jobs (2026-01-21) Gemini Cloud Assist を使って BigQuery のジョブ履歴を解析できるようになった。 長時間クエリの原因を調べたりジョブ失敗の原因などを Gemini に質問できる。Gemini Cloud Assist を使うには現在、Google Cloud コンソールの言語設定を英語に変更する必要あり。 Compute Engine で N4A インスタンスが Preview → 一般公開(GA) N4A machine series (2026-01-26) Google Cloud の Compute Engine で N4A インスタンスが Preview → 一般公開(GA)。 Google が開発した Arm ベースプロセッサである Axion を搭載。費用対効果に優れる。ただし2026年1月末現在では、東京・大阪リージョンは未対応。 Spanner でカラムナエンジンが Preview 公開 Spanner columnar engine overview (2026-01-26) Spanner でカラムナエンジンが Preview 公開。 database でポリシーを有効にするとバックグラウンドで列指向形式でもデータを保持するようになり、適切なときに自動でそちらを使うようになる。分析系クエリの性能が最大200倍向上とされている。 AlloyDB for PostgreSQL が PostgreSQL 18 に対応(Preview) Create a new cluster and primary instance (2026-01-27) AlloyDB for PostgreSQL が PostgreSQL 18 に対応(Preview)。 PostgreSQL 18 は 2025-09-25 にリリースされた最新メジャーバージョン。 BigQuery で Conversational Analytics 機能が Preview 公開 Conversational analytics overview (2026-01-29) BigQuery で Conversational Analytics 機能が Preview 公開。 生成 AI に自然言語で質問すると AI が自動でクエリを作成して質問に回答してくれる。データソースとなるテーブルを指定してエージェントを作成。 詳細は、以下の記事も参照。 blog.g-gen.co.jp 割り当て(Quota)の自動調整機能が組織やフォルダレベルにも対応 Use the quota adjuster (2026-01-30) 割り当て(Quota)の自動調整機能が、組織やフォルダレベルにも対応。 これまではプロジェクトレベルのみ。ピーク使用量が割り当てに近づいたとき、自動で引き上げリクエストが試みられる。以下の記事も参照。 blog.g-gen.co.jp Google Workspace のアップデート Dropbox から Google ドライブへの移行ツールが一般公開(GA) Now generally available: Migrate files from Dropbox to Google Drive (2026-01-05) Dropbox から Google ドライブへの移行ツールが一般公開(GA)。昨年11月にオープンベータ公開されていた。 Google 管理コンソールから利用。Google Workspace 各種エディションで利用可能。 Google Meet 音声翻訳がベータ版で利用可能になる予定(2026-01-27) Control Speech Translation in Google Meet for your users (2026-01-07) Google Meet 音声翻訳は現在、アルファ版で利用可能。同機能が、2026-01-27 にベータ版としてより多くの人が利用可能になる予定。 Business Plus、Enterprise Plus など一部の Google Workspace エディションのみのためドキュメントを要確認。 Google フォームで締切日や集まった回答数に応じた自動的な受付停止が可能に Set Google Forms to automatically stop accepting responses based on date and time or response count (2026-01-12) Google フォームで、締め切り日や集まった回答数に応じて、自動的に受付停止できるように。 イベント登録フォームなどで、手動で受付停止しなくても済むようになる。Google Workspace、個人アカウント等などで 2026-01-12 から順次ロールアウト。 Microsoft Office のパスワード保護付きファイルが編集できるように Editing password-protected Microsoft Office files directly in Google Drive (2026-01-14) Google Workspaceで、Microsoft Office のパスワード保護付きファイルが編集できるように。 Word、Excel、PowerPoint に対応。全エディションで、順次ロールアウトされて使用可能になる。 Google Workspace ユーザー向けに動画生成ツール Flow が使えるように Flow now available as an additional Google service for Workspace customers (2026-01-16) Google Workspace ユーザー向けに動画生成ツール Flow が使えるように。 「AI-powered filmmaking tool」とされており、文章から動画や画像を生成できる。プロンプトの調整機能など、動画編集に関する機能が充実。 Google Workspace においては「additional Google service(その他の Google サービス)」の扱いであり、以下のような条件が適用される。 サービスは予告なく変更される場合があります。 地域によってはご利用いただけないサービスがあります。 現在のところ、これらのサービスは、サポートおよびサービスレベル契約の対象外です。サービスに関してご不明な点がある場合は、Google ヘルプセンターとヘルプ フォーラムをご確認ください。その他のサービスに対するサポートの拡充は、今後の検討事項となっています。 Google チャットでメッセージの転送が可能に Forward messages in Google Chat (2026-01-20) Google チャットで、メッセージの転送ができるようになった。 全ユーザーに順次ロールアウト。 Google Meet の Ask Gemini 機能が2月上旬から日本語に対応 Ask Gemini in Google Meet is expanding to Workspace Business Standard customers, additional languages, and mobile usage (2026-01-21) Google Meet の Ask Gemini 機能が2月上旬から日本語に対応。 会議に遅れて参加しても会議内のチャットで Gemini に質問してキャッチアップしたり、要点やアクションアイテムをまとめたりできる。 また、対応エディションが拡充し、Business Standard エディションでも利用可能になった。 Google カレンダーで予定作成時に Gemini が会議参加者の空き時間を提案 Better time suggestions for meeting with your colleagues using Gemini in Google Calendar (2026-01-26) Google カレンダーで予定作成時に Gemini が会議参加者の空き時間を提案してくれるようになった。 全員の空きスロットを探して自動でスロットを提案する。即時リリースドメインではすでに使用可能になっている。 Gemini アプリで NotebookLM をデータソースとして追加可能に Take your notebooks further by adding NotebookLM as a source in the Gemini app (2026-01-27) Google Workspace ユーザーの Gemini アプリで、NotebookLM をデータソースとして追加可能になった。個人アカウントでは以前から使えた機能が、Google Workspace にも展開された。 2026-01-20から順次ロールアウトが始まっている。 データソースとして NotebookLM を追加 Google フォームで回答者を細かく制御できるようになった All Google Forms will now have granular controls over who can respond (2026-01-29) Google フォームで回答者を細かく制御できるようになった。 ユーザー、グループなどに限定して回答者を制限できる。以前は回答者は「組織内」「リンクを知っている全員」しか選べなかった。 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
G-gen の杉村です。BigQuery には Conversational Analytics (対話型分析)機能が備わっており、データに関する質問を生成 AI に対してチャット形式で投げかけることができます。この機能を使うことで、SQL の知識がなくても、自然言語でデータをクエリすることができます。 概要 Conversational Analytics とは 使用イメージ 料金 他の手法 データポータルとの統合 データエージェント データエージェントとは 設定項目 公開とアクセス制御 データインサイトの自動生成 BigQuery ML 対応 精度向上のために ビジネスロジックの組み込み メタデータの整備 割り当て(Quota) 概要 Conversational Analytics とは BigQuery の Conversational Analytics (対話型分析)、あるいは データエージェント (data agents)とは、日本語や英語などの 自然言語で BigQuery のデータを抽出 できる、生成 AI 機能です。 チャット形式で生成 AI に自然言語で質問をすることで、SQL が自動生成され、テキストや図表による回答が得られます。 参考 : Conversational analytics overview BigQuery の Conversational Analytics Conversational Analytics は、以下のような質問に答えることができます。 「〇年〇月の〇〇カテゴリの商品の売上金額を集計して」 「〇年〇月から〇年〇月までの間の、〇〇の在庫量の変動をチャートにして」 当機能は Google Cloud の Web コンソール画面に組み込まれており、追加ライセンス等は不要です。 当機能は、管理者側で データエージェント と呼ばれる設定を事前に作成し、利用者向けに権限を付与して公開することで使用できます。このように、エージェントの機能や特性を管理する側と、それを利用する側で役割の分担ができることも特徴です。 データエージェントの動作 なお当機能は2026年2月初旬現在、Preview 段階です。一般公開(GA)されるまでは、技術サポートの対象外であるほか、仕様変更の可能性等があります。 参考 : Preview版のサービスを使うとはどういうことなのか - G-gen Tech Blog 使用イメージ 架空の文房具販売店の「注文履歴」「商品マスタ」「顧客マスタ」テーブルを登録したデータエージェントを使って、当機能の使用例を紹介します。 データエージェントとのチャット画面で、 2026年2月の、売れ行きトップ10の商品をリストしてください。 と質問します。 質問を入力 データエージェントは、テキストや図表を交えて質問に回答します。バックエンドでは、生成 AI が日本語による質問を SQL に変換して BigQuery に実行していますが、利用者はそれを意識する必要はありません。 データエージェントによる回答 チャットでは、前の回答を踏まえて、続けて質問ができます。 追加の質問にも回答できる この例では事前にデータエージェントに複数のテーブルを登録してあるため、バックエンドではそれらのテーブルが結合(join)されています。この例では、1つのトランザクションテーブル( orders )と2つのマスタテーブル( customers 、 items )が結合されています。 エージェントに登録されているテーブル 組織における使用イメージは、例えば以下のようなものとなります。 管理者側(クラウド管理者やデータエンジニア、データスチュアードなど)がデータエージェントを作成し、ソースデータやアクセス制御を定義する 使用者はデータエージェント選択画面の URL( https://console.cloud.google.com/bigquery/agents_hub )へアクセス。エージェントを選択して対話型分析を使用開始する エージェント選択画面 なお、データエージェントとのチャット画面は Google Cloud コンソールの一部ですので、Google Cloud コンソールにログインして「BigQuery > エージェント」と遷移することでもアクセスできます。 料金 BigQuery の Conversational Analytics 機能は、2026年2月現在、無料で使用できます。ただし、ドキュメントには「プレビュー期間中は追加の料金が発生しません。」と記載されており、一般公開(GA)後は、追加料金が発生する可能性が示唆されています。 なお Conversational Analytics 機能自体の課金の有無に関わらず、 BigQuery へのクエリ料金 は通常どおり発生します。後述のとおり、意図しない大規模スキャンによる突発課金を防ぐために、事前にエージェントに最大バイト数を指定することができます。 参考 : Conversational analytics overview - Pricing 他の手法 BigQuery に対して、自然言語によってクエリを行う手法は、当記事で紹介する Conversational Analytics 以外にも複数あります。以下の記事も参照してください。 blog.g-gen.co.jp データポータルとの統合 Google が無償で提供する BI ダッシュボードツールである データポータル (英名 Data Studio、旧称 Looker Studio)からは、BigQuery の Conversational Analytics を呼び出すことができます。 データ管理者が BigQuery でデータエージェント(後述)を定義し、それを全社の従業員がデータポータルの会話型分析画面から参照する、といった利用方法が可能です。全従業員が自然言語で BigQuery のデータをクエリできる状態を容易に作り上げることができます。 なおこの利用にあたり、データポータル Pro ライセンスは不要です。 参考 : データポータルの会話型分析の概要 データポータルから呼び出した Conversational Analytics データエージェント データエージェントとは BigQuery の Conversational Analytics 機能を使用するには、まず管理者が データエージェント を作成します。データエージェントは AI チャットの管理単位です。 データソースとなるテーブルの登録やカスタムメタデータの定義、利用者への権限付与などを、データエージェントの単位で行います。 参考 : Create data agents 使用者が Google Cloud コンソールのデータエージェント一覧画面にアクセスし、一覧からエージェントを選択することで、チャットが開始されます。 設定項目 データエージェントには、以下のような設定項目があります。 名称 説明 ナレッジソース データソースとなるテーブル、ビュー、UDF(ユーザー定義関数)。複数選択できる 手順 (Instructions) エージェントに組み込むプロンプト(システムインストラクション)。守らせる手順やルールなどを自然言語で記述する 検証済みクエリ AI が参考にするための、ビジネスロジックを反映したゴールデンクエリ。想定質問とそれに対する SQL を記述する 用語集 ユーザープロンプト理解のため AI が参考にする Dataplex 用語集 課金される最大バイト数 BigQuery の費用スパイクを防止するため、最大バイト数を設定できる エージェント編集画面 公開とアクセス制御 エージェントを作成したり編集したあと、エージェントを 公開 することで、設定が使用者に反映されます。公開せずに 保存 のみを行い、管理者のみに反映された状態にしておくこともできます。 参考 : Create data agents - Preview and publish the agent エージェントには IAM によるアクセス制御が適用されるため、特定の従業員にだけ公開できます。エージェントに質問するユーザーは、エージェントに対する権限に加え、データソースとなるテーブルやビュー等に対する閲覧権限も必要です。 参考 : Analyze data with conversations - Required roles データインサイトの自動生成 データエージェントのナレッジソースとしてテーブルを追加すると、自動的に データインサイト (data insight)が生成されます。このメタデータは、AI によってデータの理解に利用されます。 参考 : Create data agents - Generate insights なおデータインサイトは Dataplex Universal Catalog の機能であり、Conversational Analytics 機能を使わない場合でも、単独で使用できます。 参考 : Dataplex Universal Catalog でデータ分析情報にアクセスする BigQuery ML 対応 BigQuery の Conversational Analytics 機能は、 BigQuery ML にも対応しています。データエージェントの回答に BigQuery ML 関数の結果を含ませられるほか、検証済みクエリに含ませることもできます。 以下の BigQuery ML 関数が使用可能です。 AI_FORECAST AI.DETECT_ANOMALIES AI.GENERATE_BOOL / AI.GENERATE_INT / AI.GENERATE_DOUBLE 特に、データエージェントの検証済みクエリに BigQuery ML 関数を使ったクエリを記述しておくことで、AI が関数を使った回答を生成しやすくなります。 参考 : Conversational analytics overview - BigQuery ML support 精度向上のために ビジネスロジックの組み込み データエージェントの精度を向上するには、管理者がエージェントを作成する際に、適切な 手順 (Instructions)や 検証済みクエリ 、 Dataplex 用語集 などをエージェントに登録します。 これにより、組織のビジネスロジックが AI エージェントに組み込まれ、利用者のプロンプト(質問文)が正確に SQL に反映されるようになるほか、質問があいまいでもある程度カバーすることができます。 ただし公式ドキュメントには「カスタムテーブルメタデータやフィールドのメタデータ、検証済みクエリなど、他のコンテキスト機能でサポートされていない方法でコンテキストを改善したりする必要がある場合にのみ、エージェント向けのカスタム指示を作成してください。」と記載されており、 まずはメタデータ付与や検証済みクエリの登録を試すべき である、と示唆されています。 参考 : Create data agents - Create agent instructions メタデータの整備 BigQuery の標準機能として、テーブルやそのフィールドには、テキスト形式の 説明 (description)を付与できます。テーブルや列のビジネスメタデータを自然言語で付与しておくことで、AI がテーブルやデータを理解することの助けになります。これらのメタデータが正確に付与されていれば、生成される SQL の精度が向上します。 参考 : テーブルを管理する - テーブルの説明を更新する 参考 : テーブル スキーマの変更 - 列の説明を変更する また、データエージェントの設定で、 カスタムテーブルメタデータ や カスタムフィールドメタデータ を付与できます。これらはエージェントが使うためにのみ定義されます。ここにメタデータを設定しても、元のテーブルやビュー等のメタデータ設定には影響しません。カスタムメタデータを設定する画面では、どのようなテキストを付与したらよいか、生成 AI(Gemini)による提案も表示されます。 カスタムメタデータの編集画面 割り当て(Quota) 当機能はバックエンドで生成 AI モデルの Gemini を使用しています。通常の API 経由の Gemini 呼び出しと同じく、当機能による Gemini 呼び出しも、 動的共有割り当て (Dynamic Shared Quota、 DSQ )を採用しています。 多くの Google Cloud プロダクトは、Google Cloud プロジェクトごと、あるいはリージョンごとに割り当て(クォータ)が設定されていますが、Gemini API が採用する DSQ では、他のユーザーと共有するプールからリソースが割り当てられ、需要と共有の変動に応じて割り当てが変動します。 これにより、Google 側でリソースが不足すると 429 Resource Exhausted エラーが発生し、一時的に機能が利用できなくなる可能性があります。このエラーメッセージが表示された場合は、需要と共有のバランスが変動するまで待つ必要があります。 杉村 勇馬 (記事一覧) 執行役員 CTO 元警察官という経歴を持つ IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。 Follow @y_sugi_it
Google Cloud のオブジェクトストレージサービスである Cloud Storage において、見落とされがちなのが レプリケーション料金 です。当記事では、ロケーションタイプの選択による料金スパイクの事象と、リージョン間レプリケーション料金の仕組み、ロケーションタイプを決めるポイントについて解説します。 事象 原因 ロケーションタイプ ロケーションタイプと可用性 リージョン間レプリケーション料金とは 料金の算出方法 ターボレプリケーション ロケーションタイプ決定の判断基準 可用性と堅牢性 コストとレイテンシの最適化 事象 Cloud Storage バケットを新規に作成し、大容量(全体で約12.4TiB)のオブジェクトをアップロードしました。すると、想定よりも大きな Cloud Storage 料金が発生しました。 オブジェクト数は1,000個以内であり、オペレーション料金は大きく発生しない想定でした。 料金がスパイクした SKU を確認すると、 Network Data Transfer GCP Replication within Asia ( CA61-E18A-B2D6 )でした。 なお、当記事で扱うこの事象は、以下の SKU でも発生する可能性があります。 Network Data Transfer GCP Replication within Europe( CB83-3C2D-160D ) Network Data Transfer GCP Replication within Latin America( AFC0-C8B7-9708 ) Network Data Transfer GCP Replication within Northern America( AED0-3315-7B11 ) Network Data Transfer GCP Replication within Oceania( 1193-6316-413E ) 原因 当該のバケットを作成する際、ロケーションタイプの設定において、コンソールのバケット作成画面におけるデフォルト設定である マルチリージョン を選択していました。 マルチリージョンまたはデュアルリージョンでは、オブジェクトの作成や更新を行うと、データが地理的に離れた場所にレプリケーション(コピー)されるため、 リージョン間レプリケーション料金 が発生していました。この仕様を認識していなかったため、レプリケーション料金は想定外のものとなりました。 ロケーションタイプ ロケーションタイプと可用性 Cloud Storage では、バケット作成時に ロケーションタイプ 、すなわちデータの保存場所を、以下の3つのうちいずれかから選択します。 ロケーションタイプ 説明 リージョン(Region) 東京( asia-northeast1 )などの特定の1地点に保存 デュアルリージョン(Dual-region) 東京と大阪( asia1 )などの特定の2リージョンに保存 マルチリージョン(Multi-region) アジア( asia )などの広大な地理的エリア内の複数リージョンに保存 上記のうち、デュアルリージョンとマルチリージョンは、リージョン障害に対する耐性を持ちますが、内部的にリージョンをまたいでデータをコピーするため、リージョン間レプリケーション料金が発生します。 参考 : バケットのロケーション リージョン間レプリケーション料金とは リージョン間レプリケーション料金 とは、デュアルリージョンまたはマルチリージョンバケットにオブジェクトを作成したり、更新したりする際に発生する、データ転送費用のことです。 Cloud Storage の下り(Egress)料金は外部に読み出すときにだけ発生すると誤解しがちです。しかし実際には上記のように、デュアルリージョンまたはマルチリージョンバケットのように冗長化構成をとっているバケットで、書き込み時にもネットワーク費用が発生するという点に注意が必要です。 料金の算出方法 リージョン間レプリケーション料金は、書き込んだデータのサイズに応じて発生します。2026年1月現在の主要なロケーションでの料金例は以下の通りです。 ロケーション 料金 (1 GiB あたり) 北アメリカ(US など) $0.02 ヨーロッパ(EU など) $0.02 アジア(ASIA など) $0.08 最新の正確な料金単価は、以下の公式料金ページをご確認ください。 参考 : Cloud Storage の料金 - リージョン間レプリケーション ターボレプリケーション デュアルリージョンのバケットでは、オプション機能として ターボレプリケーション (Turbo Replication)を有効にできます。この機能が有効になっていると、通常より料金が多く発生します。 まず、ターボレプリケーションがオフの場合、リージョン間のコピーは以下の仕様で行われます。 新しく書き込まれたオブジェクトの 99.9% に対しては1時間以内を目標にリージョン間でコピーを完了させる 残りのオブジェクトに対しては12時間以内を目標にコピーを完了させる 一方でターボレプリケーションを有効にすると、オブジェクトの100% が、15分以内にコピー完了するように SLA が設定されます。 参考 : データの可用性と耐久性 - 複数のリージョンにわたる冗長性 参考 : データの可用性と耐久性 - ターボ レプリケーション 参考 : Cloud Storage Service Level Agreement (SLA) その代わり、ターボレプリケーションを有効にすると、リージョン間レプリケーション料金の単価が割増になります。高頻度で大容量の書き込みが発生するワークロードでターボレプリケーションを有効化すると、コストが大幅に上昇する可能性があるため、RPO 要件に基づいた適切な判断が必要です。 参考 : Cloud Storage の料金 - リージョン間レプリケーション ロケーションタイプ決定の判断基準 可用性と堅牢性 単一リージョンのバケットを使用することで、レプリケーション料金を排除できます。分析用の一時ファイルや頻繁に更新されるログなどは、単一リージョンのバケットを選ぶことで、コストを最適化できます。 単一リージョンのバケットであっても、データは複数のゾーンに冗長化されており、十分に高い冗長性と堅牢性(年間99.999999999%)を持っています。 一方で、リージョンレベルの障害が許容できないほどの高い可用性が必要なデータは、その性質によっては、データ転送のコストをかけてでもデュアルリージョンやマルチリージョンを検討します。 コストとレイテンシの最適化 マルチリージョンバケットに保存されるオブジェクトを読み取る際は、読み取り元のコンピューティングリソース(Compute Engine など)が存在するリージョンにかかわらず、常にネットワーク下り料金が発生します。 そのため、特定のリージョンのコンピューティングリソースから頻繁にオブジェクトを読み取る場合は、デュアルリージョンまたは単一リージョンを選択することで、コストを最適化できます。 また、デュアルリージョンまたは単一リージョンは、読み取り側のコンピューティングリソースと同一リージョンであれば、レイテンシも最適化されます。 G-gen 編集部 (記事一覧) 株式会社G-genは、サーバーワークスグループとして「クラウドで、世界を、もっと、はたらきやすく」をビジョンに掲げ、クラウドの導入から最適化までを支援している Google Cloud 専業のクラウドインテグレーターです。
G-gen の min です。BigQuery に統合された AI アシスタント機能である BigQuery データキャンバス について、より実践的な活用方法と、技術的な制約事項について解説します。 はじめに BigQuery データキャンバスとは Conversational Analytics API とは 効果的な質問のテクニック コンテキストを具体的に提示する 複雑な分析は複数のステップに分割する データ条件と集計方法を明示する フォローアップ質問で深掘りする 出力形式を指定するキーワード サンプルデータによる検証 データの準備 実行例 制限事項 概要 可視化の制限 データ処理の制限 サポートされる質問の種類 はじめに BigQuery データキャンバスとは BigQuery データキャンバス (BigQuery data canvas)は自然言語による指示と、グラフィカルなユーザーインターフェイスによってデータの検索、変換、クエリ、可視化を行う機能です。 参考 : BigQuery data canvas でデータを分析する Gemini in BigQuery の全体像や、データキャンバスの基本的な使い方については、以下の記事をご参照ください。 blog.g-gen.co.jp Conversational Analytics API とは BigQuery データキャンバスの裏側では、 Conversational Analytics API という API が動作しています。この API は、ユーザーからの自然言語による質問を受け取り、Gemini モデルを使用して SQL クエリを生成し、データを取得して可視化を行う役割を担っています。 当記事では、Conversational Analytics API の仕様に基づいて、データキャンバスを効果的に利用するための質問テクニックと、考慮すべき制限事項について解説します。 参考 : Conversational Analytics API を使ってみる 効果的な質問のテクニック コンテキストを具体的に提示する 漠然とした質問は、AI の解釈の幅を広げすぎてしまい、期待しない回答につながります。日付、カテゴリ、数値フィルタ、計算ロジックなどの詳細なコンテキストを含めることで、回答の精度が向上します。 改善前 「手動とシステムの請求書はいくつですか?」 改善後 「 毎月 手動で作成される請求書とシステムで作成される請求書の数を教えてください。手動の請求書を1通作成するのに 15分かかると仮定して 、すべての手動の請求書を処理するのにかかる合計時間を 時間単位で計算して 、概要を提示してください。」 このように、具体的な計算要件(「15分かかると仮定」)や出力形式(「概要を提示」)を含めることが重要です。 複雑な分析は複数のステップに分割する 人間と同様に、AI も一度に複数のタスクを依頼されると混乱することがあります。複雑な分析を行いたい場合は、質問を複数のステップに分割し、データキャンバス上でノードをつなげていくアプローチが有効です。 例えば、「各売掛金タイプの平均決済日数と、手動決済の割合と、それにかかった年間時間は?」と一度に聞くのではなく、以下のように分割します。 「2025年5月5日から2025年6月1日までの各売掛金タイプの平均所要日数は何日ですか?」 その結果に対して、「手動決済の割合はどれくらいですか?」 さらにその結果に対して、「手動決済に1つあたり15分かかると仮定した場合、年間でどれくらいの時間を費やしていますか?」 このように段階を追うことで、各ステップで適切なフィルタや集計が適用され、正確な結果が得やすくなります。 データ条件と集計方法を明示する SQL の WHERE 句や GROUP BY 句に相当する条件を、自然言語で明確に指示します。 フィルタ条件 「2025年5月2日から2025年6月3日までの請求書」「未払い残高で結果を最大5件に制限」など 集計条件 「顧客名ごとの未払い残高の合計」「平均経過日数」など フォローアップ質問で深掘りする 一度の質問で完結させる必要はありません。前の質問の結果(コンテキスト)を踏まえて、条件を変更したり追加したりする「フォローアップ質問」が可能です。 元の質問 「46 日を超えて経過したレコードについて、顧客名と未払い残高を教えてください」 フォローアップ 「90 日を超えたレコードに条件を変更し、上位10件に制限してください」 出力形式を指定するキーワード プロンプトに含めるキーワードによって、データキャンバスが提案する可視化形式(グラフの種類)をコントロールできます。 期待する形式 プロンプトに含めるキーワードの例 テーブル (表) 列名を具体的に列挙する(例 : 「顧客名、未払い残高、平均経過日数、売掛金タイプを教えてください」) テキスト (文章) 「概要」「要約」「簡単な回答」 折れ線グラフ 「傾向」「推移」「変化」「変化率」 棒グラフ / 比較表 「比較」「分散」「違い」「上位の業種」 参考 : Conversational Analytics API: 効果的な質問をする サンプルデータによる検証 データの準備 以下の SQL を BigQuery クエリエディタで実行すると、約 1,000 件のダミーデータ(請求書データ)を含むテーブル invoices_sample が作成されます。 このデータセットは、手動(Manual)とシステム(System)作成の偏りや、ランダムな滞留日数を含むデータセットです。 ※ project_id.dataset_id の部分は、ご自身の検証環境に合わせて変更してください。 CREATE OR REPLACE TABLE `project_id.dataset_id.invoices_sample` AS WITH generator AS ( -- 1から1000までの数字を生成(1000行のデータを作成) SELECT x FROM UNNEST(GENERATE_ARRAY( 1 , 1000 )) AS x ) SELECT -- 請求書ID: INV-00001 の形式 CONCAT ( ' INV- ' , LPAD ( CAST (x AS STRING), 5 , ' 0 ' )) AS invoice_id, -- 顧客名: Client_1 〜 Client_50 をランダムに割り当て CONCAT ( ' Client_ ' , CAST ( FLOOR ( 1 + RAND() * 50 ) AS INT64)) AS customer_name, -- 請求日: 2024年1月1日から約1年半の範囲でランダムに生成(記事内の2025年5月も含む) DATE_ADD( DATE ( ' 2024-01-01 ' ), INTERVAL CAST ( FLOOR (RAND() * 550 ) AS INT64) DAY) AS invoice_date, -- 作成タイプ: 70%を System、30%を Manual に偏らせる CASE WHEN RAND() < 0.3 THEN ' Manual ' ELSE ' System ' END AS creation_type, -- 売掛金タイプ: 3種類をランダムに分布 CASE WHEN RAND() < 0.5 THEN ' Product ' WHEN RAND() < 0.8 THEN ' Service ' ELSE ' Consulting ' END AS ar_type, -- 金額: 1,000 〜 100,000 の間でランダム CAST ( FLOOR ( 1000 + RAND() * 99000 ) AS INT64) AS amount, -- 経過日数: 0日のもの(正常)と、長期滞留(異常値)を混ぜる CAST ( FLOOR ( CASE WHEN RAND() < 0.5 THEN 0 -- 50%は未経過(0日) WHEN RAND() < 0.8 THEN RAND() * 30 -- 30%は30日以内 ELSE 30 + RAND() * 100 -- 20%は長期滞留(30〜130日) END ) AS INT64) AS days_overdue FROM generator; 実行例 作成したテーブルをデータキャンバスで開き、先ほど紹介した「コンテキストの提示」を意識したプロンプトを入力してみます。単純な集計だけでなく、 仮定に基づいた計算 を依頼します。 プロンプト creation_type が Manual の請求書と System の請求書の数を教えてください。Manual の請求書 1 通作成するのに 15 分かかると仮定して 、すべての Manual 請求書を処理するのにかかる合計時間を 時間単位で計算して 、概要を提示してください。 実行結果 「Manual の請求書は 306 件、System の請求書は 694 件です。 Manual の請求書をすべて処理するのにかかる合計時間は、306 件 * 15 分/件 = 4590 分、つまり 76.5 時間です。 以下に、作成タイプ別の請求書数を示すグラフを添付します。 ご不明な点がございましたら、お気軽にお尋ねください。」 このデータセットでは、約 30% が Manual (手動)作成として生成されます。AI は単純にレコード数を数えるだけでなく、指示通り「件数 × 15分 ÷ 60分」の計算を行い、 「手動処理に合計で約 76.5 時間かかっています」 といった洞察を返します。 制限事項 概要 Conversational Analytics API の制限事項についてのドキュメントを確認することで、BigQuery データキャンバスの制約事項を理解することができます。当記事では2026年1月現在のドキュメントの記載に基づき、重要なものをピックアップして紹介します。最新情報は、以下のドキュメントを参照してください。 参考 : Conversational Analytics API known limitations 可視化の制限 チャート(図表)の種類によってサポート状況が異なります。 サポート対象 : 折れ線グラフ、面グラフ、棒グラフ(横、縦、積み上げ)、散布図、円グラフ 部分的にサポート対象 (予期しない動作の可能性あり) : マップ、ヒートマップ、ツールチップ付きのグラフ データ処理の制限 大量データを扱う場合、以下の制限に注意が必要です。 BigQuery スキャン制限 : 処理バイト数は 500 GB まで。パーティション分割などを利用し、スキャン量を抑える工夫が必要 結果サイズ : システムが返すデータ結果( DataResult )は、最大 3,000,000バイト (約3MB)。超過分は切り捨て サポートされる質問の種類 現時点では、主にデータの「集計」「可視化」を得意としています。 サポート対象 : 指標の推移、ディメンション別の内訳・分布、ランキング、一意の値の抽出など サポート対象外 : 将来の予測、相関分析・異常検出などの高度な統計分析 佐々木 愛美 (min) (記事一覧) クラウドソリューション部 データアナリティクス課。2024年7月 G-gen にジョイン。G-gen 最南端、沖縄県在住。最近覚えた島言葉は、「マヤー(猫)」。
G-gen の川村です。この記事では、Google の画像生成 AI モデルである Gemini 3 Pro Image、通称 Nano Banana Pro について紹介します。 はじめに 当記事について Nano Banana Pro とは Nano Banana と Nano Banana Pro Nano Banana Pro の利用 概要 Google Workspace での利用 API 経由での利用 特徴 解像度と画質 日本語テキスト描写 思考モード Google 検索との連携 利用手順 Gemini アプリ NotebookLM その他 プロンプトのコツ 概要 被写体のシーン変更 対話による段階的編集 複数画像の統合 文字の挿入 高解像度出力 活用事例 広告・マーケティング分野の高速化 コンテンツ制作 留意点 法的・倫理的リスク(著作権と利用規約) 技術的制約・品質管理 はじめに 当記事について 2025年8月26日、Google は画像生成 AI モデル Gemini 2.5 Flash Image、通称 Nano Banana (ナノバナナ)を発表しました。その後、2025年11月20日に後継モデルである Gemini 3 Pro Image、通称 Nano Banana Pro (ナノバナナプロ)がリリースされました。 当記事では、Nano Banana Pro の基本機能、開始方法、プロンプトのコツ、および実務でのユースケースについて解説します。なお、モデルの正式名称は Gemini 2.5 Flash Image や Gemini 3 Pro Image ですが、当記事ではより広く知られている通称である Nano Banana や Nano Banana Pro を呼称として使用します。 参考 : Nano Banana: Image editing in Google Gemini gets a major upgrade 参考 : Nano Banana Pro: Gemini 3 Pro Image model from Google DeepMind Nano Banana Pro とは Nano Banana Pro とは、Google が提供する画像生成・編集 AI モデルです。 前身の Nano Banana は、LM Arena(AI モデルを評価する公開ウェブサイト)の提出時に仮の名前としてつけられたものが、その精度の高さから話題となり、現在では Google 公式の通称として定着しています。 参考 : Why It Accidentally Got Called Nano Banana 🍌 | Made by Google Podcast S8E8 - YouTube (12:34〜) Nano Banana Pro は以下のような特徴により、従来の画像生成 AI の弱点を克服しています。 特徴 説明 被写体の一貫性 生成した人物やオブジェクトの特徴を保持したまま、異なるシーンやポーズで展開 対話型編集 自然言語(プロンプト)での指示により、画像の特定部分を段階的に修正・変更可能 高速処理 通常の画像生成 AI が30秒〜1秒程度かかるのに対し、数秒〜30秒程で生成を完了できる高速性 Nano Banana と Nano Banana Pro Nano Banana Pro が高性能を発揮する一方で、Nano Banana は 速度と効率性 を重視して設計されており、大容量かつ低レイテンシ(低遅延)のタスクに最適化されています。また API 経由での利用時は、利用料金も Nano Banana のほうが安価に設定されています。 なお Gemini アプリ内では、Nano Banana が「高速モード」に割り当てられており、手軽に画像生成したい時や、試行錯誤を繰り返したい場合に適しています。一方で Nano Banana Pro は「思考モード」「Pro」に割り当てられています。 参考 : Gemini アプリで画像を生成、編集する - パソコン - Gemini アプリ ヘルプ Nano Banana と Nano Banana Pro のスペックの違いについては、以下の表を参照してください。 機能 Nano Banana Nano Banana Pro 解像度 最大 1024×1024px(1K) 2K/4K対応(最大4096×4096px) テキスト描写 一部歪みが発生する場合あり 高精度、多言語対応(日本語含む) 参照画像合成 最大3枚を推奨 最大14枚(人物 5 名、オブジェクト6個を含む) 推奨タスク 高速な試行錯誤、低レイテンシの環境 プロ仕様の制作、複雑な対話型編集 参考 : Nano Banana による画像生成 | Gemini API | Google AI for Developers 参考 : Gemini 3 Pro Image | Generative AI on Vertex AI | Google Cloud Documentation 参考 : Gemini 2.5 Flash Image | Generative AI on Vertex AI | Google Cloud Documentation Nano Banana Pro の利用 概要 Nano Banana Pro は、Gemini アプリ、NotebookLM、Google スライド、Google Vids など、 Google Workspace に付属のアプリ で使用できます。また、個人向けの Gemini アプリでも利用可能です。 また、Google Cloud や Google AI Studio を使うことで、API 経由での呼び出しも可能なことから、 独自開発のアプリ に組み込むことも可能です。 Google Workspace での利用 Nano Banana Pro は多くの Google Workspace エディションで利用可能ですが、一部機能は Business Standard 以上のプランに限定されています。 Google Workspace エディション Gemini アプリ / NotebookLM Google スライド Google Vids 1日の画像生成上限 Business Starter / Enterprise Starter ○ ✕ △ (注1) 3枚 Business Standard / Plus ○ ○ ○ 100枚 Enterprise Standard / Plus ○ ○ ○ 100枚 Google AI Ultra for Business ○ ○ ○ 1,000枚 (注1) Google Vids では、Business Starter 等の下位プランでも 2026 年 5 月末まで期間限定で利用可能です。ただし、それ以降はAI機能の使用に制限が設けられる可能性があります。 その他のエディションや詳細については、以下公式ドキュメントを参照してください。 参考 : Use Gemini Apps with a work or school Google Account - Business / Enterprise - Gemini Apps Help 参考 : Google Vids での Gemini 機能の提供状況について - Google ドキュメント エディタ ヘルプ API 経由での利用 Google Cloud の AI プラットフォームサービス Vertex AI や、個人向けの生成 AI プラットフォームサービス Google AI Studio を使うことで、Nano Banana Pro を API 経由で呼び出すことができます。 これにより、自組織で独自開発したアプリケーションに、Nano Banana Pro による画像生成機能を組み込むことが可能です。 参考 : Vertex AI で Gemini API を使用してコンテンツを生成する Vertex AI と Google AI Studio の違いについては、以下の記事を参照してください。 blog.g-gen.co.jp 特徴 解像度と画質 従来の Nano Banana の解像度上限は 1024 × 1024 ピクセル(1K)でしたが、Nano Banana Pro は 最大 4K(4096 × 4096ピクセル)でのネイティブ生成 に対応しています。 このネイティブ生成とは、単に小さな画像を引き伸ばすではなく、最初から高解像度で画像を生成することを意味しています。高解像度のため、印刷物や大型ディスプレイでの利用時に優位性があります。ただし、現時点では 4K での生成は API 経由での呼び出し時のみとなっている点には注意が必要です。 日本語テキスト描写 AI 画像生成における「文字崩れ」や「日本語に弱い」といった課題が、Nano Banana Pro で劇的に改善されました。 ロゴや看板、ポスターなどの画像内に、ひらがな、カタカナ、漢字を正しく、かつデザインに馴染んだ形で挿入できます。 思考モード Nano Banana Pro では、画像生成する前に、「思考モード」という推論プロセスを踏みます。 この思考モードにより、ユーザーの指示の背景にある「意図」や「文脈」まで整理してから画像を生成します。よって、複雑な指示でも乖離が少ない結果が得られます。 Google 検索との連携 Nano Banana Pro は Google 検索ツールと連携し、リアルタイムの情報を画像に反映できます。 これにより、最新のニュースや天気、株価などのデータに基づいた視覚資料の作成が可能です。 利用手順 Gemini アプリ Gemini アプリ( https://gemini.google.com/app )にアクセス 「画像を作成」(画像①)を選択 モデルメニューから「思考モード」(画像②)を選択(「高速モード」は Nano Banana ( gemini-2.5-flash-image ) を使用) プロンプトを送信 NotebookLM NotebookLM( https://notebooklm.google.com )にアクセス ノートブックを開いて「ソースを追加」を選択し、ソースをアップロード 「インフォグラフィック」をクリック その他 以下のサービスからも、Nano Banana Pro を使用できます。詳細な手順は省略します。 Google スライド Google Vids Vertex AI Google AI Studio プロンプトのコツ 概要 Nano Banana Pro の性能を引き出すには、以下のような要素を組み合わせることが有効です。 要素 説明 例 被写体 誰、何が 小さな柴犬、キャップを被った男性 場所 / 背景 どんな場面、環境か 雪が舞っている森林、夕暮れのビーチ アクション 何をしているか、状態 勢いよく走っている、座っている スタイル 表現手法 アニメ風、80年代風 被写体のシーン変更 最大 5 人までの人物やキャラクターを一貫して維持しつつ、異なるポーズやシーン、表情の画像を複数生成できます。 プロンプト例 この人物が、おしゃれなカフェでノートPCを開いて作業している様子 対話による段階的編集 被写体を維持したまま自然言語で画像を編集できます。また、会話形式で段階的にリッチな画像を作り上げていくことができます。 プロンプト例(初回) 背景を夜景にして プロンプト例(2回目) 空に大きな花火を打ち上げて 複数画像の統合 最大 14 枚の異なる参照画像(人物、商品、背景など)の要素を組み合わせて、新しい画像を生成します。例えば、自社商品画像と背景画像を組み合わせて広告写真を作成できます。 プロンプト例 このスニーカーが、森の岩の上に自然に置かれている広告写真を作って 文字の挿入 ロゴやポスター、インフォグラフィックなどに、日本語(漢字・ひらがな・カタカナ)を含む正確なテキストを組み込むことができます。 プロンプト例 レトロな喫茶店の木製看板に、『純喫茶 ジージェン』と手書き風の日本語フォントで描いて 高解像度出力 Nano Banana Pro は最大 4K 解像度での画像生成をサポートし、印刷物や大型ディスプレイ向けのプロフェッショナルで高画質な画像も作成できます。 プロンプト例 (古い白黒写真)この写真を、自然な色彩でカラー化し、現代の高画質写真のように修復して 活用事例 広告・マーケティング分野の高速化 広告やマーケティン部分野では、以下のような用途が考えられます。 用途名 概要 商品広告画像の生成 自社商品とモデル画像を合成し、着用イメージを即座に作成 シミュレーション 家具レイアウトや試着イメージなど、様々なシミュレーションのイメージ作成 サムネイル量産 広告バナー、 YouTube やブログのサムネイルを短時間で生成 グローバル展開 日本語ポスターを、レイアウトを維持したまま多言語化 商品広告画像の生成の例を紹介します。 例えば、コスメなどの自社商品画像と、モデルの画像を 2 つ準備します。今回はサンプルとして、Nano Banana Pro を使って 架空の商品と人物 を作成しています。 参考画像① : 架空の化粧水 参考画像② : 架空のモデル この2つの画像をアップロードしたうえで、以下のようなプロンプトを送信します。 この女性がこの化粧水を片手に持ちながら、床に座り込んでいる。 グレー背景のクールなイメージで、ブランド「G-gen」宣伝用のポスターを作って。 このままでも広告として利用できますが、少し雰囲気を変えていきます。続けて、以下のようなプロンプトを送信して修正していきます。 この女性が立った状態で壁にもたれかかっている。 また、化粧水が魅力的に見えるポーズを取っている。 この女性が自然の中で太陽を浴びながら、化粧水を額に寄せている このように自社商品の広告を作成したり、背景や被写体のポーズ、文字の配置も修正できます。光の入り方や影、顔の表情までリアルな写真のように再現できます。 コンテンツ制作 コンテンツ制作の背景では、以下のような用途が考えられます。 用途名 概要 図解の高速化 複雑な情報を視覚的に分かりやすい図解化し、外部公開資料やプレゼン資料の作成を効率化 ストーリーボード制作 被写体の一貫性を保ちつつ、SNS 投稿用の4コマ漫画を内製 キャラクター運用 企業キャラクターを季節イベントや商品紹介などの複数シーンで利用し、企業ブランディングを強化 以下は、インフォグラフィックとしての利用例です。 政府が発表している総合経済対策の PDF 資料は、以下のように複雑な情報がテキストでまとめられており、理解するには隅々まで読む必要があります。 参考 : https://www5.cao.go.jp/keizai1/keizaitaisaku/1121_taisaku_gaiyo.pdf この公開 URL を NotebookLM のソースに追加した後、「インフォグラフィック」をクリックします。 数分後、作成された画像がこちらです。 複雑な情報を AI で要約し、わかりやすくインフォグラフィックで図解してくれます。Nano Banana Pro が使われているため、Nano Banana で発生していた文字化けも少なくなり、日本語対応が進化しています。 注意点としては、現時点(2026年1月現在)の NotebookLM では、インフォグラフィック画像の修正は実装されていません。NotebookLM で生成した画像を編集したい場合は、画像ファイルをダウンロードして Gemini アプリにアップロードしなおし、以下のようなプロンプトを送信します。 この画像を縦型 9:16 にして 続けて、以下のようなプロンプトも送信してみます。 女性がこの画像の内容を、カラーの 4 コマ漫画で説明している 上記のように、一度生成した画像は、Gemini アプリを使うことで会話形式で段階的な修正が可能です。 留意点 法的・倫理的リスク(著作権と利用規約) 著作権・肖像権の侵害 既存のアニメキャラクターや有名人、実在の人物の写真をモデルにして画像を生成・公開する行為は、 著作権や肖像権の侵害 にあたる可能性があります。 名誉毀損 実在の人物の姿を使って不適切な合成画像を公開した場合、名誉毀損にあたる可能性があり、注意が必要です。 技術的制約・品質管理 商用利用時の推奨モデル 広告利用を含む商業利用を行う場合、Google Workspace with Gemini または Vertex AI の利用が推奨されています。 利用上限 Business Standard 以上の場合、1日あたり最大100〜1,000枚の画像生成が可能です。 Business Standard 以下の場合、1日3枚の画像生成が可能です。詳細は以下のドキュメントを参照してください。 参考 : 仕事用または学校用の Google アカウントで Gemini アプリを利用する SynthID(電子透かし)の埋め込み Gemini で生成されたすべての画像には、AI による生成物であることを識別するための目に見えるロゴと、編集を行っても保持される見えない SynthID デジタル透かしが自動的に埋め込まれます。 参考 : SynthID で Google AI によって生成された画像や動画を検証する - パソコン - Gemini アプリ ヘルプ 川村真理 (記事一覧) クラウドソリューション部 クラウドサポート課 美容業界からITへ転身。Google Workspace 専任サポートから Google Cloud にも興味が湧き日々奮闘中。海外旅行が大好きで11カ国突破、これからも更新予定
G-gen の佐々木です。当記事では、Google Cloud が提供する データサイエンスエージェント (Data Science Agent)について解説します。データサイエンスエージェントは、Colab Enterprise ノートブック上で、AI エージェントがデータクレンジングや分析などのタスクを自動的に行う機能です。 概要 データサイエンスエージェントとは 注意点 Google Colab のデータサイエンスエージェント 制限事項 料金 開始方法 IAM ロールの設定 Gemini in Colab Enterprise の起動 読み取り可能なデータソース CSV ファイル BigQuery テーブル 使用例 概要 データサイエンスエージェントとは Google Cloud の データサイエンスエージェント (Data Science Agent)とは、データエンジニア、データサイエンティスト、データアナリストのタスクを支援するマネージド AI エージェントです。このエージェントにより、Colab Enterprise ノートブック上で 自然言語によるデータ分析 が実現できます。 データサイエンスエージェントは、 Colab Enterprise ノートブック (IPYNB ファイル)を使用して、ユーザーの入力したプロンプトに従って以下のようなタスクを自律的に行います。 実行計画の生成 データクレンジングの実行 探索的データ分析の実行、データ可視化 機械学習モデルのトレーニング、評価 データサイエンスエージェントは、Google Cloud コンソールの Colab Enterprise もしくは BigQuery Studio から使用することができます。 エージェントが自動的にコードを実行する場合は、コンピュートリソースとして Colab Enterprise の ランタイム が使用されます。 参考 : データ サイエンス エージェントを使用する 参考 : BigQuery で Colab Enterprise データ サイエンス エージェントを使用する 参考 : ランタイムとランタイム テンプレート 注意点 データサイエンスエージェントは、2026年1月現在、 Public Preview 版 です。当記事で解説する内容は一般提供(GA)の際に変更される可能性があることを予めご了承ください。 Preview 版のサービスや機能を使うに当たっての注意点は、以下の記事も参考にしてください。 blog.g-gen.co.jp Google Colab のデータサイエンスエージェント データサイエンスエージェントは、無料のクラウドホスト型ノートブック環境である Google Colab でも使用することができます。Google Cloud のサービスである Colab Enterprise や BigQuery と異なり、Google Cloud の契約が不要であるため、手軽にエージェントを使用することができます。 個人での使用など、Google Cloud が提供する企業・組織向けの高度なアクセス管理やサポート等が不要な場合は、まずはこちらでエージェントを試してみるのもよいでしょう。 Google Colab と Colab Enterprise の比較については、以下の記事をご一読ください。 blog.g-gen.co.jp 参考 : Colab のデータ サイエンス エージェント: Gemini によるデータ分析の未来 制限事項 データサイエンスエージェントには、データソースの制限のほか、以下のような制限事項があります。 初回実行時に5~10分程度のレイテンシーが発生することがある(プロジェクト単位)。 VPC Service Controls が有効化されているプロジェクトでは使用できない。 PySpark を使用する場合、2026年1月現在は Serverless for Apache Spark 4.0 のみ生成できる。古いバージョンの Apache Spark コードは生成できない。 制限事項に関する最新の情報については以下のドキュメントを参照してください。 参考 : データ サイエンス エージェントを使用する - 制限事項 参考 : BigQuery で Colab Enterprise データ サイエンス エージェントを使用する - 制限事項 料金 データサイエンスエージェントは無料で利用することができます。 ただし、エージェントがノートブック上でコードを実行する場合、Colab Enterprise のランタイムが使用されるため、ランタイムの構成(マシンタイプ + ディスク容量)に応じた料金が発生します。 Colab Enterprise の料金に関しては以下の記事をご一読ください。 blog.g-gen.co.jp また、データソースとなる BigQuery にクエリを実行する場合など、他の Google Cloud のサービスを操作する場合、そのサービスの料金が別途発生する可能性がある点には注意が必要です。 開始方法 IAM ロールの設定 データサイエンスエージェントを使用するには、操作するユーザーに対して、プロジェクト単位で以下のロールを付与します。 Colab Enterprise ユーザー (roles/aiplatform.colabEnterpriseUser) Gemini in Colab Enterprise の起動 Colab Enterprise もしくは BigQuery Studio で Colab Enterprise ノートブックを開きます。画面下部にある青いボタンを押下することで、Gemini(Gemini in Colab Enterprise)のプロンプト入力を行い、データサイエンスエージェントに対して指示を与えることができます。 Gemini in Colab Enterprise からプロンプトを入力する 読み取り可能なデータソース CSV ファイル CSV ファイルをデータソースとする場合、プロンプト入力ウィンドウにある + マークからファイルをアップロードし、エージェントが参照するファイルとして指定することができます。 エージェントが参照する CSV ファイルをアップロードする アップロードしたファイルのパスは /content/<ファイル名> となります。 BigQuery テーブル BigQuery テーブルをデータソースとする場合、以下の方法でエージェントからテーブル内のデータを参照できます。 テーブルセレクタを使用する。 プロンプトに <プロジェクトID>:<データセット名>.<テーブル名> の形式で記述する。 プロンプトに @ を記述して BigQuery テーブルを検索する。 テーブルセレクタは、プロンプト入力ウィンドウにある + マークから使用することができます。検索フィルタを設定することで、他のプロジェクトや一般公開データセットのテーブルも参照できます。 エージェントが参照する BigQuery テーブルを選択する 検索フィルタを設定して他のプロジェクトのテーブルを参照する プロンプト内でテーブルを指定する場合は、以下の例のように、プロンプトに <プロジェクトID>.<データセット名>.<テーブル名> の形式で記述することで、対象のテーブルのデータを参照することができます。こちらの方法でも、他のプロジェクトや一般公開データセットのテーブルが参照できます。 `bigquery-public-data.ml_datasets.iris` を使い、アヤメの種類を分類するロジスティック回帰モデルを構築してください また、プロンプトに @<プロジェクトID>.<データセット名>.<テーブル名> のように記述することで BigQuery テーブルを検索することもできます。検索結果として他のプロジェクトのテーブルも表示されますが、実際に参照できるのは同じプロジェクトに存在するテーブルのみです。なお、他のプロジェクトのテーブルを指定すると無視されます。 "@"を使用してテーブルを検索する 使用例 BigQuery Studio でデータサイエンスエージェントを使用し、機械学習モデルの構築を試してみます。 まず、BigQuery Studio で新しいノートブックを開きます。 BigQuery Studio から Colab Enterprise ノートブックを開く 以下のプロンプトを送信して、BigQuery の一般公開データセットにある iris テーブルを使用した機械学習モデルの構築を指示します。 `bigquery-public-data.ml_datasets.iris` を使い、アヤメの種類を分類するロジスティック回帰モデルを構築してください プロンプトを送信すると、タスクの実行計画が表示されます。内容を確認し、[承認して実行] を押下します。 タスクの実行計画 実行計画に従い、エージェントによる自律的なコード生成、実行が行われます。 自律的なコード生成、実行が行われる 2026年1月時点では、タスクの各段階の実行前にユーザーによる承認が必要となっています。都度、前のタスクの実行結果と生成されたコードをレビューし、[承認して実行] を押下します。 タスクの各段階でユーザーによる承認を行う すべてのタスクが完了すると、エージェントが実行したタスクのサマリーが出力されます。 実行結果のサマリーが出力される なお、今回は出力が英語になってしまったので、プロンプトで指示を与えて日本語に翻訳します。 タスクのサマリーを日本語に翻訳したもの 構築したモデルの評価のため、混同行列を用いた可視化を指示してみます。以下のプロンプトを送信します。 構築したモデルに対して、混同行列を作成して モデル評価のための可視化をプロンプトで指示する 別の分類アルゴリズムでモデルを作成し、最初のモデルと比較してみます。以下のプロンプトを送信します。 ランダムフォレストを使用したモデルを構築し、最初のモデルと性能を比較してください。 エージェントによって新たなタスクの計画、実行がされ、サマリーとして以下の出力が得られました。今回の検証では、ランダムフォレストを使用するモデルよりも、最初に構築したロジスティック回帰モデルのほうが良い成績を出しているようです。 新旧モデルの性能比較を含むサマリー出力 このように、データサイエンスエージェントを使用することで、コード生成における Vibe Coding のように、自然言語によるデータ分析を行うことができます。 佐々木 駿太 (記事一覧) G-gen 最北端、北海道在住のクラウドソリューション部エンジニア 2022年6月に G-gen にジョイン。Google Cloud Partner Top Engineer に選出(2024 / 2025 Fellow / 2026)。好きな Google Cloud プロダクトは Cloud Run。 趣味はコーヒー、小説(SF、ミステリ)、カラオケなど。 Follow @sasashun0805