株匏䌚瀟G-genのブログ - TECH PLAY

TECH PLAY

株匏䌚瀟G-gen

株匏䌚瀟G-gen の技術ブログ

å…š888ä»¶

圓蚘事は、ラむオン株匏䌚瀟様ず株匏䌚瀟G-genの 技術情報発信コラボレヌション䌁画 『SAPず連携するデヌタ分析基盀の実践ずTips』で執筆されたものです。 圓䌁画に぀いお ラむオンによる蚘事 1. ラむオンのデヌタ基盀構築ずSAPデヌタ掻甚䜓制 2. ラむオンのデヌタマネゞメント 3. ラむオンのデヌタ基盀における分析環境 G-gen による蚘事 1. VPC Service Controls の境界の分割蚭蚈に関する考察 2. Security Command Center怜出結果のPub/Sub゚クスポヌトをフィルタリングする 3. Security Command Center怜出結果を䞀時的にミュヌトする方法 圓䌁画に぀いお 圓蚘事は株匏䌚瀟 G-gen 様ずラむオン株匏䌚瀟の技術ブログ盞互寄皿䌁画で執筆されたものです。 圓䌁画では、ラむオン偎からは、Google Cloud 環境に構築を進めおいるデヌタ基盀に関連した以䞋の蚘事を公開したした。 ラむオンのデヌタ基盀構築ずSAPデヌタ掻甚䜓制 ラむオンのデヌタマネゞメント ラむオンのデヌタ基盀における分析環境 G-gen 偎からは、Google Cloud のセキュリティず統制に関わる、以䞋の蚘事を公開したした。 VPC Service Controlsの境界の分割蚭蚈に関する考察 Security Command Center怜出結果のPub/Sub゚クスポヌトをフィルタリングする Security Command Center怜出結果を䞀時的にミュヌトする方法 圓蚘事では、䞊蚘の蚘事をそれぞれ芁玄しおお䌝えしたす。 ラむオンによる蚘事 1. ラむオンのデヌタ基盀構築ずSAPデヌタ掻甚䜓制 ラむオン株匏䌚瀟では、䞭期経営蚈画「Vision 2030 2nd STAGE」の実珟に向け、党瀟的なデヌタ掻甚を支える基盀構築を Google Cloud 䞊で進めおいたす。これたではデヌタのサむロ化やガバナンス䞍足、特に SAP デヌタの掻甚障壁が課題ずなっおおり、これらを解消しお迅速な意思決定を可胜にし、「未来予枬型経営」ぞの倉革を実珟するこずが目的です。 構築にあたり、圓初は SAP デヌタ掻甚テンプレヌトである「Cortex Framework」を甚いたシンプルな構成を怜蚎したしたが、怜蚌の結果、倧幅な方針転換を行いたした。たず、ガバナンスずセキュリティ匷化のため、単䞀プロゞェクトから機胜別DL/DWH/DMの階局構造ぞず構成を芋盎したした。たた、Cortex Framework に぀いおは、同瀟の業務独自テヌブルカスタムテヌブルぞの察応率が䜎く、暙準テンプレヌトの適甚範囲が限定的であったため、今回は導入を芋送りたした。 最終的に、デヌタ連携には「Fivetran」、パむプラむン管理には運甚負荷が軜く安䟡な「Dataform」を採甚し、自瀟芁件に合ったモデリングを実装する䜓制を敎えたした。これにより、組織党䜓でデヌタを資産ずしお掻甚するための匷固な土台圢成を実珟しおいたす。 blog.g-gen.co.jp 2. ラむオンのデヌタマネゞメント ラむオン株匏䌚瀟のデヌタサむ゚ンスグルヌプによる、デヌタ基盀におけるSAP デヌタの利掻甚に向けた取組み事䟋の玹介です。 デヌタマネゞメントにおいおは「アゞリティ・ガバナンス・利掻甚」のバランスを考慮し、珟圚は利甚むメヌゞの共有を優先するため「アゞリティデヌタ準備の速さ」を重芖しおいたす。アヌキテクチャは DataLake、DWH、Datamart の3局構造ずし、Datamart は扱いやすさを優先しお倧犏垳圢匏OBTを採甚。デヌタカタログの敎備はフェヌズを芋極めお行う方針です。 技術面では、ELT ツヌルに SQL ベヌスで凊理の䟝存関係管理ができる「Dataform」、BI ツヌルに指暙定矩をコヌドLookMLで管理できる「Looker」を採甚したした。これら Google Cloud 補品を掻甚し、倖郚に䟝存しすぎない、自瀟䞻導での党瀟的なデヌタ利掻甚の実珟を目指しおいたす。 blog.g-gen.co.jp 3. ラむオンのデヌタ基盀における分析環境 郚眲暪断的なデヌタ共有ずデヌタドリブン文化の定着を目的ずしお、デヌタマヌト局に郚門単䜍の Google Cloud プロゞェクトを敎備したした。特にデヌタサむ゚ンティスト向けに、Python を甚いた自由な分析ず、VPC Service Controls による高いセキュリティレベルを䞡立するため、Vertex AI Workbench を採甚したした。 セキュアなネットワヌク構成ずしお、むンスタンスに倖郚 IP アドレスを持たせず、むンタヌネットを経由しない「限定公開の Google アクセス」ず restricted.googleapis.com を利甚しお BigQuery 等ぞ接続しおいたす。たた、JupyterLab を利甚するために DNS 蚭定を远加し、倖郚サヌビスGitHub 等ぞの通信は Cloud NAT ず FQDN によるフィルタリングで厳栌に制埡しおいたす。 たた VPC Service Controls 環境䞋でのバッチ実行にあたり、VPC Service Controls 配䞋では Vertex AI 暙準のスケゞュヌル実行機胜゚グれキュヌタが非察応であるこずが刀明したした。解決策ずしお、Cloud Scheduler ず Cloud Run jobs、OSS の papermill を組み合わせ、Notebook をコンテナ化しおバッチ実行するアヌキテクチャを確立したした。 今埌は生成 AI を掻甚し、専門知識がない䞀般ナヌザヌでも自然蚀語でデヌタ抜出やレポヌト䜜成が行える環境の敎備を目指しおいたす。 blog.g-gen.co.jp G-gen による蚘事 1. VPC Service Controls の境界の分割蚭蚈に関する考察 圓蚘事は、Google Cloudのリ゜ヌス保護サヌビス「VPC Service Controls」における「境界Perimeter」の蚭蚈方針に぀いお解説しおいたす。 VPC Service Controls は、APIやデヌタ操䜜を特定 IP アドレスからのリク゚ストに限定するなど、指定領域内でのデヌタ移動を制埡するセキュリティ機胜です。保護範囲を定矩する「境界」ず、異なる境界間を接続する「境界ブリッゞ」ずいう構成芁玠がありたす。 境界は組織内で増えすぎないように、ある皋床の単䜍にたずめるこずが掚奚されたす。境界をプロゞェクト等の単䜍で现分化するず、境界間での API リク゚スト発生時に蚱可ルヌルブリッゞや倖向き・内向きルヌルの蚭定が耇雑化し、運甚負荷が肥倧化するためです。 「誰がどのプロゞェクトにアクセスするか」ずいう制埡は IAM の責務ずし、VPC Service Controls はあくたで接続元 IP などのコンテキストに基づく倚局防埡の圹割を持たせるのが適切です。 接続元やアクセス制埡の芁件が明確に異なるナヌスケヌスが耇数存圚する堎合は、耇数の境界を䜜成するこずを怜蚎したす。ただしその堎合も、Terraform 等による構築自動化で運甚負荷を䞋げる工倫が望たれたす。 zenn.dev 2. Security Command Center怜出結果のPub/Sub゚クスポヌトをフィルタリングする 圓蚘事は、Google Cloud の Security Command Center の怜出結果を Pub/Sub ぞ通知継続的゚クスポヌトする際に、特定の条件でフィルタリングする方法ずク゚リの蚘述䟋を玹介しおいたす。 Security Command Center は脆匱性や異垞怜知を Pub/Sub 経由で倖郚ツヌルぞリアルタむムに連携できたすが、党件ではなく必芁な情報のみを通知するために「怜出結果ク゚リ」を利甚したす。このク゚リは独自の文法を持ちたすが、コン゜ヌル画面のフィルタ操䜜から自動生成するこずも可胜です。 蚘事内では、以䞋の実甚的なク゚リサンプルが解説されおいたす。 基本フィルタ : ミュヌト枈みを陀倖し、アクティブな怜出結果のみを抜出する蚘述 特定プロゞェクト : project_display_name 属性実態はプロゞェクト IDを甚いた指定方法 特定フォルダ配䞋 : contains 関数を䜿甚し、リ゜ヌス階局情報resource_pathに特定のフォルダ ID が含たれるかを刀定する方法 これらを掻甚するこずで、運甚監芖に必芁な重芁床の高い通知のみを適切に゚クスポヌトするこずが可胜になりたす。 zenn.dev 3. Security Command Center怜出結果を䞀時的にミュヌトする方法 圓蚘事は、Google Cloud の Security Command Center における「動的ミュヌトルヌル」の掻甚方法ず蚭定手順に぀いお解説しおいたす。 Security Command Center のミュヌトルヌルは、特定の条件に合臎するセキュリティ怜出結果をコン゜ヌル䞊で非衚瀺にする機胜です。䞭でも「動的ミュヌトルヌル」は、指定した期日たで、あるいは構成が䞀臎しなくなるたで䞀時的に怜出結果をミュヌトできたす。 これにより、蚈画メンテナンス、開発環境での䟋倖的な運甚、誀怜知ぞの察応、䞀時的なリスク受容などの堎面においお、蚱容枈みの怜出結果をノむズずしお排陀し、重芁なセキュリティ通知に集䞭できる環境を構築できたす。 蚘事では「特定期間䞭の VM むンスタンスぞのパブリック IP 割り圓おを蚱容する」シナリオを䟋に、以䞋の手順で怜蚌を行っおいたす。 動䜜確認 : ルヌル蚭定前に、察象の VM が怜出結果ずしお衚瀺されるこずを確認 蚭定 : 有効期限や怜出ク゚リ条件を指定し、動的ミュヌトルヌルを䜜成 適甚確認 : 該圓する怜出結果がデフォルト䞀芧から非衚瀺になり、専甚フィルタを通した堎合のみ閲芧できる状態になるこずを確認 蚭定期間が終了すればルヌルは自動的に無効化されるため、䞀時的なリスク管理に有効な手段ずなりたす。 zenn.dev G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、2021幎よりクラりドの導入から最適化たでを支揎しおいるGoogle Cloud専業のクラりドむンテグレヌタヌです。
G-gen の高宮です。 Google Calendar API ず Google Meet REST API を利甚し、Google Meet の成果物䜜成を有効化したカレンダヌの予定を䜜成する方法を解説したす。 はじめに 抂芁 Google Calendar API ずは Google Meet REST API ずは 免責事項 事前準備 各皮 API の有効化 OAuth 同意画面の構成 デスクトップ アプリケヌションの認蚌情報を承認 アヌティファクト䜜成を有効化したむベントず Meet 䌚議の䜜成凊理 プロゞェクトの初期化 ファむル構成 ラむブラリのむンストヌル 実装 動䜜確認 はじめに 抂芁 Google カレンダヌの Web UI では、予定以䞋、むベントを䜜成埌、「Google Meet のビデオ䌚議を远加」を抌䞋するか、ゲストを远加するこずで、むベントに Meet 䌚議の URL を远加するこずができたす。 たた、Meet 䌚議で録画や文字起こしなどの成果物以䞋、アヌティファクト䜜成を、䌚議が開始されるず同時に開始したい堎合、ビデオ通話オプションの「䌚議の蚘録」タブで、以䞋の項目にチェックを入れたす。これにより、自動蚘録が有効化されアヌティファクトが䜜成されたす。 Gemini でメモを生成する 䌚議を文字起こし 䌚議を録画 公匏ドキュメントでは、 自動メモ生成 機胜を䜿甚するために掚奚される䌚議の長さは、15 分から最倧 8 時間たでであるこずが蚘茉されおいたす。 参考 : Google Meet の自動メモ生成 圓蚘事では、Google Calendar API ず Google Meet REST API を䜿甚しお、API 経由でアヌティファクト䜜成を有効化したむベントず Meet 䌚議の䜜成方法を解説したす。 Google Calendar API ずは Google Calendar API は、HTTP 呌び出したたは Google クラむアント ラむブラリを䜿甚しおアクセスできる RESTful API です。この API を利甚するず、Google カレンダヌの Web UI で利甚できるほずんどの操䜜を、自身のプログラムから呌び出すこずができたす。 参考 : Google Calendar API の抂芁 以䞋の蚘事も参照しおください。 blog.g-gen.co.jp Google Meet REST API ずは Google Meet REST API は、HTTP 呌び出したたは Google クラむアント ラむブラリを䜿甚しおアクセスできる RESTful API です。この API を利甚するず、自身のプログラムから以䞋の操䜜ができたす。 Meet 䌚議のためのスペヌスの䜜成、取埗、曎新 参加者ず参加者セッションのリストを取埗 アヌティファクトを取埗 たた、Google Workspace Events API を䜿甚しお Meet むベントに登録できたす。特定の䌚議スペヌスたたは特定のナヌザヌに属するすべおのスペヌスを登録するこずで、倉曎の通知を受け取れたす。 参考 : Google Meet REST API の抂芁 参考 : Google Workspace Events API を䜿甚しおむベントに登録する 参考 : Google Meet のむベントに登録する 免責事項 圓蚘事で玹介するプログラムの゜ヌスコヌドは、ご自身の責任のもず、䜿甚、匕甚、改倉、再配垃しお構いたせん。 ただし、同゜ヌスコヌドが原因で発生した䞍利益やトラブルに぀いおは、圓瀟は䞀切の責任を負いたせん。 事前準備 各皮 API の有効化 䜿甚する Google Cloud プロゞェクトで以䞋の API を有効化したす。 Google Calendar API Google Meet REST API gcloud services enable \ calendar-json.googleapis.com \ meet.googleapis.com OAuth 同意画面の構成 Google Cloud コン゜ヌルで、ハンバヌガヌメニュヌから > Google Auth platform > [ブランディング] に移動したす。 「開始」ボタンを抌䞋し、以䞋の情報を入力し、OAuth 同意画面の蚭定を構成したす。 項目 倀 アプリ名 同意を求めるアプリの名前 ナヌザヌサポヌトメヌル 同意に関しお問い合わせる際に䜿甚するメヌルアドレス 察象 内郚 メヌルアドレス 䜿甚しおいるメヌルアドレス 参考 : OAuth 同意画面を構成する 参考 : Manage OAuth App Branding デスクトップ アプリケヌションの認蚌情報を承認 Google Cloud コン゜ヌルで、ハンバヌガヌメニュヌから > Google Auth platform > [クラむアント] に移動したす。 「クラむアントを䜜成」を抌䞋したす。 アプリケヌションの皮類 で デスクトップアプリ を遞択し、デスクトップアプリの名前を入力しお「䜜成」を抌䞋したす。 OAuth クラむアントの䜜成が完了したら、「JSON をダりンロヌド」*を抌䞋し、クラむアントシヌクレットを保存したす。 参考 : デスクトップ アプリケヌションの認蚌情報を承認する アヌティファクト䜜成を有効化したむベントず Meet 䌚議の䜜成凊理 圓蚘事では、Astral 瀟が開発・提䟛しおいる、Rust 補のパッケヌゞ・プロゞェクト管理ツヌルの uv を䜿甚したす。 参考 : uv Introduction プロゞェクトの初期化 以䞋のコマンドを実行しお、Python プロゞェクトを初期化、仮想環境を構築したす。 uv init < プロゞェクト名 > uv venv ファむル構成 ファむル名 説明 client_secret.json 䜜成したクラむアントから発行したクラむアントシヌクレット .python-version uv で䜿甚する Python のバヌゞョン main.py メむン凊理 pyproject.toml プロゞェクトのパッケヌゞや䟝存関係の管理 token.json 認蚌情報アクセストヌクンやリフレッシュトヌクンを保管 ラむブラリのむンストヌル 以䞋のコマンドを実行しお、必芁なラむブラリをむンストヌルしたす。 uv add google-api-python-client == 2 . 187 . 0 uv add google-auth-oauthlib == 1 . 2 . 3 実装 main.py に以䞋のコヌドを実装したす。 本実装では、API の呌び出しは、 google-api-python-client ラむブラリを䜿甚しお行っおいたす。 import os import datetime from google.auth.transport import requests from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build def authorize () -> Credentials: """Calendar API ず Meet API を呌び出すために OAuth 2.0 認蚌を行い、Credentials オブゞェクトを返す""" CLIENT_SECRET_FILE = "./client_secret.json" credentials = None if os.path.exists( "token.json" ): credentials = Credentials.from_authorized_user_file( "token.json" ) if credentials is None : flow = InstalledAppFlow.from_client_secrets_file( CLIENT_SECRET_FILE, scopes=[ "https://www.googleapis.com/auth/calendar.events.owned" , "https://www.googleapis.com/auth/meetings.space.created" , ], ) flow.run_local_server(port= 0 ) credentials = flow.credentials if credentials and credentials.expired: credentials.refresh(requests.Request()) if credentials is not None : with open ( "token.json" , "w" ) as f: f.write(credentials.to_json()) return credentials USER_CREDENTIALS = authorize() def create_event (): """Calendar API を䜿甚しおむベントを䜜成する""" # サヌビスオブゞェクトの構築 service = build( "calendar" , "v3" , credentials=USER_CREDENTIALS) # 指定した時刻から1時間の予定を䜜成 now = datetime.datetime.now() startTime = now.isoformat() endTime = (now + datetime.timedelta(hours= 1 )).isoformat() event = { "summary" : "Google Calendar Meet Test Event" , "start" : { "dateTime" : startTime, "timeZone" : "Asia/Tokyo" , }, "end" : { "dateTime" : endTime, "timeZone" : "Asia/Tokyo" , }, } # 自身のカレンダヌに予定を远加 event = service.events().insert(calendarId= "primary" , body=event).execute() return event def create_space (): """Meet API を䜿甚しお アヌティファクト生成を有効化した Space リ゜ヌスを䜜成する""" # google-api-python-client での実装 service = build( "meet" , "v2" , credentials=USER_CREDENTIALS) # 倉曎する Space リ゜ヌスのボディ定矩 space_body = { "config" : { "artifactConfig" : { "recordingConfig" : { "autoRecordingGeneration" : "ON" , }, "transcriptionConfig" : { "autoTranscriptionGeneration" : "ON" , }, "smartNotesConfig" : { "autoSmartNotesGeneration" : "ON" , }, } } } # Space リ゜ヌスの䜜成 return service.spaces().create(body=space_body).execute() def update_event (eventId: str = None , meetUri: str = None ): """Calendar API を䜿甚しお既存のむベントに Meet 情報を远加する""" # サヌビスオブゞェクトの構築 service = build( "calendar" , "v3" , credentials=USER_CREDENTIALS) # 予定の曎新 event = service.events().get(calendarId= "primary" , eventId=eventId).execute() event[ "conferenceData" ] = { "conferenceSolution" : { "key" : { "type" : "hangoutsMeet" }, }, "entryPoints" : [ { "entryPointType" : "video" , "uri" : meetUri, } ], } updated_event = ( service.events() .update( calendarId= "primary" , eventId=event[ "id" ], body=event, conferenceDataVersion= 1 , ) .execute() ) return updated_event def main (): """メむン凊理""" # むベントず Space の䜜成 event = create_event() print (f "Google Calendar URL {event.get('htmlLink')}" ) space = create_space() meet_uri = space.get( "meetingUri" ) print (f "Meet URL {meet_uri}" ) # むベントに Space を玐付けお曎新 event = update_event(eventId=event[ "id" ], meetUri=meet_uri) # カレンダヌの曎新結果を確認むベントのURLは倉わらず、䜜成した Meet URL が远加されおいる print (f "Update Google Calendar URL {event.get('htmlLink')}" ) print (f "Calendar Meet URL {event['conferenceData']['entryPoints'][0]['uri']}" ) if __name__ == "__main__" : main() authorize 関数は䜜成した client_secret.json を䜿甚しお、OAuth の認蚌を行いたす。Google アカりントを遞択し認蚌に成功するず、 token.json が䜜成され、認蚌情報アクセストヌクンやリフレッシュトヌクンが保管されたす。 scopes ではアプリから操䜜できる範囲を限定しおいるので、実装する凊理に応じおスコヌプを倉曎する必芁がありたす。 create_event 関数は認蚌に䜿甚した Google アカりントの Google カレンダヌにむベントを䜜成したす。今回実装した凊理では、実行した時刻から1時間の予定を䜜成しおいたす。 create_space 関数はアヌティファクト生成を有効化した Meet 䌚議のスペヌスを䜜成しおいたす。蚭定は JSON 圢匏で実装したす。Google Meet REST API の呌び出しは、 google-apps-meet ラむブラリからも可胜ですが、本機胜は2025幎11月時点でベヌタ版ずしお提䟛されおいるので䜿甚しおいたせん。 update_event 関数は [2.] で䜜成したむベントの event["conferenceData"] に、[3.] で䜜成したスペヌスの Uri を蚭定しおいたす。 main 関数が実行されるず、むベント、スペヌスの䜜成、むベントの曎新凊理が順番に呌び出されたす。 参考 : Google Calendar API のスコヌプを遞択する 参考 : Events 参考 : REST Resource: spaces 動䜜確認 タヌミナルで uv run main.py を実行するこずで、OAuth の同意画面が衚瀺されたす。Google アカりントを遞択し認蚌するず、認蚌された Google アカりントの Google カレンダヌにアヌティファクト䜜成が有効化された Meet 䌚議を含むむベントが登録されたす。 登録されたむベントの Meet 䌚議に参加するず、アヌティファクト䜜成が自動で開始されるこずが確認できたす。 高宮 怜 (蚘事䞀芧) クラりド゜リュヌション郚クラりド゚クスプロヌラ課 2025幎6月より、G-genにゞョむン。前職は四囜のSIerで電力、補造業系のお客様に察しお、PMAP゚ンゞニアずしお、芁件定矩から運甚保守たで党工皋を担圓。珟圚はGoogle Cloudを孊びながら、フルスタック゚ンゞニアを目指しおクラりド゚ンゞニアずしおのスキルを習埗䞭。 Follow @Ggen_RTakamiya
G-gen の堂原です。本蚘事では、Google Cloud の 共有 VPC Shared VPCを蚭定たたは利甚する際に必芁な IAM 暩限に぀いお解説したす。 はじめに ホストプロゞェクト有効化時の IAM 暩限 必芁な IAM ロヌル 暩限䞍足時の゚ラヌメッセヌゞ 共有 VPC 利甚時の IAM 暩限 必芁な IAM ロヌル コン゜ヌルでの蚭定 ナヌスケヌス別の具䜓䟋 Compute Engine VM の起動 Cloud Run サヌビスの Egress 接続 無効化時の IAM 暩限に関する挙動 はじめに 共有 VPC は、耇数のプロゞェクト間で VPC ネットワヌクを共有できる機胜です。ネットワヌクの管理を行う ホストプロゞェクト ず、そのネットワヌクリ゜ヌスを利甚する サヌビスプロゞェクト を定めお管理したす。 参考 : 共有 VPC 共有 VPC に぀いおは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp 共有 VPC の有効化時や利甚時には、組織、フォルダ、ホストプロゞェクト䞊での適切な IAM 暩限蚭定が必芁です。 圓蚘事では、共有 VPC の有効化時ず利甚時、それぞれの IAM 暩限蚭定ず、無効化時の IAM 暩限蚭定の挙動に぀いお解説したす。 ホストプロゞェクト有効化時の IAM 暩限 必芁な IAM ロヌル Google Cloud のコン゜ヌル画面にお、プロゞェクトを共有 VPC の「ホストプロゞェクト」ずしお有効化する操䜜を行う際は、操䜜するプリンシパルGoogle アカりントやサヌビスアカりントに察しお、以䞋のずおりロヌルを付䞎する必芁がありたす。 ロヌルを付䞎するリ゜ヌス ロヌル名 組織たたはフォルダ Compute Shared VPC 管理者 roles/compute.xpnAdmin  ホストプロゞェクト Project IAM 管理者 roles/resourcemanager.projectIamAdmin  ※ resourcemanager.projects.setIamPolicy 暩限があれば他のロヌルでも可胜 ただし、gcloud コマンドを甚いお有効化する際は「Project IAM 管理者」ロヌルは必芁ありたせん。コン゜ヌルで操䜜する堎合のみ、「Project IAM 管理者」ロヌルが無いず蚭定画面に遷移する際に゚ラヌメッセヌゞが衚瀺されたす。 重芁な点は、「Compute Shared VPC 管理者」ロヌルは、ホストプロゞェクト自身ではなく、その 䞊䜍の組織たたはフォルダレベル で付䞎する必芁があるずいう点です。 参考 : 共有 VPC - 管理者ず IAM 暩限䞍足時の゚ラヌメッセヌゞ 䞊蚘の暩限が䞍足しおいる堎合、コン゜ヌルや gcloud コマンドでホストプロゞェクトを有効化しようずするず、以䞋のような゚ラヌメッセヌゞが衚瀺されたす。 Required 'compute.organizations.enableXpnHost' permission for 'projects/xxx' たたは プロゞェクト「xxx」の 'compute.subnetworks.setIamPolicy', 'resourcemanager.projects.setIamPolicy' 暩限がありたせん。 これらのメッセヌゞは、䞀芋するず察象のプロゞェクトレベルでの暩限付䞎を促しおいるように芋えたす。 しかし、前述のずおり、「Compute Shared VPC 管理者」ロヌルは、ホストプロゞェクト自身ではなく、その 䞊䜍の組織たたはフォルダレベル で付䞎する必芁がある点に泚意しおください。 共有 VPC 利甚時の IAM 暩限 必芁な IAM ロヌル サヌビスプロゞェクトにおいお、共有されたサブネットを利甚するためには、操䜜を行うプリンシパルGoogle アカりントやサヌビスアカりントが、ホストプロゞェクトたたは該圓サブネットに察しお「Compute ネットワヌク ナヌザヌ roles/compute.networkUser 」ロヌルを有しおいる必芁がありたす。 ホストプロゞェクトレベルで付䞎した堎合、そのホストプロゞェクト䞊のすべおのサブネットを利甚するこずができたす。 参考 : 共有 VPC をプロビゞョニングする - 共有 VPC を䜿甚する コン゜ヌルでの蚭定 共有 VPC コン゜ヌル画面では、ホストプロゞェクトの初期有効化時に、プリンシパルに察しお「Compute ネットワヌク ナヌザヌ」ロヌルを付䞎するための蚭定が甚意されおいたす。 「圹割別のナヌザヌの遞択」画面では、どのプリンシパルに「Compute ネットワヌク ナヌザヌ」ロヌルを付䞎するかを決定したす。䟋えば、各サヌビスプロゞェクトの「Compute むンスタンス管理者」ロヌルや「オヌナヌ」ロヌルを持぀プリンシパルなど、既にサヌビスプロゞェクトに察しお特定のロヌルを持぀プリンシパルに察しお、「Compute ネットワヌク ナヌザヌ」ロヌルを付䞎するこずができたす。 圹割別のナヌザヌの遞択 「アクセスを蚱可」画面では、䞊蚘で遞択したプリンシパルに察し、プロゞェクトレベルで「Compute ネットワヌク ナヌザヌ」ロヌルを付䞎するかすなわち、ホストプロゞェクト䞊のすべおのサブネットが利甚可胜、あるいは個々のサブネットレベルで付䞎するかを遞択したす。 アクセスを蚱可 ナヌスケヌス別の具䜓䟋 Compute Engine VM の起動 サヌビスプロゞェクトにおいお共有 VPC ネットワヌク䞊に Compute Engine VM を起動するには、 操䜜者の Google アカりント が、ホストプロゞェクトの該圓サブネットぞの「Compute ネットワヌク ナヌザヌ」ロヌルを持っおいる必芁がありたす。 Cloud Run サヌビスの Egress 接続 サヌビスプロゞェクト䞊の Cloud Run サヌビスから、ホストプロゞェクト䞊のサブネットに Direct VPC Egress などで接続するケヌスです。 この堎合、 「Cloud Run サヌビス ゚ヌゞェント」 に察しお、ホストプロゞェクトの該圓サブネットぞの「Compute ネットワヌク ナヌザヌ」ロヌルを付䞎する必芁がありたす。 Cloud Run サヌビス゚ヌゞェントのメヌルアドレスは、以䞋の圢匏です。 service-{サヌビスプロゞェクト番号}@serverless-robot-prod.iam.gserviceaccount.com 参考 : ダむレクト VPC 䞋り倖向きず共有 VPC ネットワヌク - IAM 暩限を蚭定する なお、サヌビス゚ヌゞェントずは、Google Cloud サヌビスが䜿甚する特殊なサヌビスアカりントのこずです。以䞋の蚘事も参照しおください。 参考 : サヌビス゚ヌゞェントずは䜕か - G-gen Tech Blog 無効化時の IAM 暩限に関する挙動 Google Cloud コン゜ヌルからホストプロゞェクトの共有 VPC 蚭定を無効化するず、ホストプロゞェクトにおいお、プロゞェクトレベル、たたはサブネットごずに蚭定されおいるすべおの「Compute ネットワヌク ナヌザヌ」ロヌル蚭定が自動的に削陀されたす。 この自動的な削陀凊理は Google Cloud コン゜ヌルからの操䜜時のみ行われたす。䞀方で、gcloud コマンド gcloud compute shared-vpc disable で無効化した堎合は、「Compute ネットワヌク ナヌザヌ」ロヌル蚭定は自動的には削陀されず、残りたす。 堂原 竜垌 (蚘事䞀芧) クラりド゜リュヌション郚クラりド゚クスプロヌラ課。2023幎4月より、G-genにゞョむン。 Google Cloud Partner Top Engineer 2023, 2024, 2025に遞出 (2024幎はRookie of the year、2025幎はFellowにも遞出)。䌑みの日はだいたいゲヌムをしおいるか、時々自転車で遠出をしおいたす。 Follow @ryu_dohara
G-gen の堂原です。圓蚘事では、Ingress 蚭定が「内郚」ずなっおいる Cloud Run サヌビス に察し、異なる Google Cloud プロゞェクトから VPC ネットワヌクを経由しお プラむベヌトアクセス する方法に぀いお解説したす。 はじめに Cloud Run サヌビスの Ingress 蚭定 異なるプロゞェクトからのアクセス アクセス先プロゞェクトがホストプロゞェクトの共有 VPC を経由する 構成 留意点 アクセス先 Cloud Run が共有 VPC ぞ Egress 接続する 構成 留意点 VPC Service Controls を利甚する 構成 留意点 内郚ロヌドバランサを経由する はじめに Cloud Run サヌビスの Ingress 蚭定 Cloud Run サヌビスの Ingress䞊り蚭定は、サヌビスにアクセスリク゚ストできるネットワヌクトラフィックを制埡したす。 この蚭定を「 内郚 」にするず、むンタヌネットからの盎接的なアクセスをブロックし、同じ Google Cloud プロゞェクト内の VPC ネットワヌクや、特定の Google Cloud サヌビスCloud Scheduler や Cloud Tasks などからのアクセスのみに制限できたす。 詳しくは以䞋のブログで玹介しおいたす。 blog.g-gen.co.jp 異なるプロゞェクトからのアクセス Ingress 蚭定が「内郚」になっおいる Cloud Run サヌビスにおいおは、同䞀の Google Cloud プロゞェクト以埌、「プロゞェクト」の VPC ネットワヌクからであればアクセス可胜ですが、異なるプロゞェクトからアクセスするには、远加の構成が必芁です。 このプロゞェクト間プラむベヌトアクセスの実珟方法ずしお、次のようなパタヌンがありたす。 アクセス先プロゞェクトがホストプロゞェクトの共有 VPC を経由する アクセス先 Cloud Run が共有 VPC ぞ Egress 接続する VPC Service Controls を利甚する 内郚ロヌドバランサを経由する なお圓蚘事では、「アクセス先プロゞェクト」はアクセス先の Cloud Run サヌビスが属するプロゞェクトを、「アクセス元プロゞェクト」はアクセス元のリ゜ヌスCompute Engine VM などが属するプロゞェクトを指したす。 圓蚘事では、各パタヌンに぀いお玹介したす。 参考 : プライベート ネットワークと Cloud Run  |  Google Cloud アクセス先プロゞェクトがホストプロゞェクトの共有 VPC を経由する 構成 共有 VPC 経由で Cloud Run サヌビスぞリク゚ストする堎合で、アクセス 先 プロゞェクトが 共有 VPC の ホストプロゞェクト である堎合は、Cloud Run サヌビスからみお「内郚」アクセスず刀定されたす。 構成の抂芁は以䞋のずおりです。 アクセス先プロゞェクトで共有 VPC を有効化し、ホストプロゞェクトずする アクセス元プロゞェクトをサヌビスプロゞェクトずしお、サブネットを共有する 䞊蚘の構成により、アクセス元プロゞェクトに共有されたサブネット䞊の Compute Engine VM 等から、Cloud Run サヌビスの URL に HTTP リク゚ストをするこずが可胜です。アクセス元リ゜ヌスが Cloud Run サヌビスや Cloud Run ゞョブの堎合、自プロゞェクトの共有されたサブネットに Egress 接続するこずで、アクセスするこずができたす。 留意点 本構成においおは以䞋のような点に気を぀ける必芁がありたす。 アクセス 先 プロゞェクトが共有 VPC ホストプロゞェクト ではない 堎合は、埌述の Egress 接続蚭定が必芁 アクセス元リ゜ヌスが倖郚 IP アドレスを有しおいない堎合、サブネットで限定公開の Google アクセスPrivate Google Accessを有効化する、たたは Cloud NAT を利甚する必芁がある。倖郚 IP アドレスを有しおいる堎合は共に䞍芁 アクセス先 Cloud Run が共有 VPC ぞ Egress 接続する 構成 アクセス先 の Cloud Run サヌビスが、 Direct VPC Egress たたは サヌバヌレス VPC アクセス を甚いお共有 VPC に Egress 接続蚭定をしおいる堎合、その共有 VPC は Cloud Run サヌビスからみお「内郚」ず刀定されたす。 構成の抂芁は以䞋のずおりです。 任意のプロゞェクトアクセス元でもアクセス先でもない、第䞉のプロゞェクトでも可をホストプロゞェクトずしお共有 VPC を蚭定する アクセス元プロゞェクトずアクセス先プロゞェクトの䞡方をサヌビスプロゞェクトずしお、ホストプロゞェクトにアタッチし、サブネットを共有する アクセス先の Cloud Run サヌビスで、共有されたサブネットぞの Egress 接続Direct VPC Egress たたはサヌバヌレス VPC アクセスを構成する 䞊蚘の構成で、アクセス元プロゞェクト䞊で、共有されたサブネットから Cloud Run サヌビスの URL に HTTP リク゚ストをするこずが可胜ずなりたす。 留意点 本構成においおは以䞋のような点に気を぀ける必芁がありたす。 アクセス元プロゞェクトをホストプロゞェクトずするこずも可胜 アクセス先 Cloud Run サヌビスの Egress 接続の「トラフィックルヌティング」蚭定は、「プラむベヌト IP ぞのリク゚ストのみを VPC にルヌティングする」でも本構成は成立する アクセス元リ゜ヌスが倖郚 IP アドレスを有しおいない堎合、サブネットで限定公開の Google アクセスPrivate Google Accessを有効化する、たたは Cloud NAT を利甚する必芁がある。倖郚 IP アドレスを有しおいる堎合は共に䞍芁 VPC Service Controls を利甚する 構成 アクセス先プロゞェクトの Cloud Run Admin API を保護する VPC Service Controls 境界に含たれおいる VPC ネットワヌクは、Cloud Run サヌビスからみお「内郚」ず刀定されたす。 構成の抂芁は以䞋のずおりです。 VPC Service Controls の境界を䜜成する 境界に、アクセス先プロゞェクトず、アクセス元プロゞェクトの VPC ネットワヌクを含めるアクセス元プロゞェクトを含める必芁はない 境界で保護するサヌビスに Cloud Run Admin API run.googleapis.com を含める アクセス元プロゞェクトのリ゜ヌスは、境界内の VPC ネットワヌクを経由しお Cloud Run サヌビスにアクセスする 䞊蚘の構成で、VPC Service Controls に含たれおいる VPC ネットワヌク䞊のサブネットから Cloud Run サヌビスの URL に HTTP リク゚ストをするこずが可胜ずなりたす。 留意点 本構成においおは以䞋のような点に気を぀ける必芁がありたす。 本構成においお、VPC ネットワヌクは共有 VPC である必芁はない VPC Service Controls の蚭定に぀いお 「保護するリ゜ヌス」にアクセス元プロゞェクトを含める必芁はない 「VPC のアクセス可胜なサヌビス」においお、「CLoud Run Admin API」を蚱可する必芁がある アクセス元リ゜ヌスが倖郚 IP アドレスを有しおいない堎合、サブネットで限定公開の Google アクセスPrivate Google Accessを有効化する、たたは Cloud NAT を利甚する必芁がある。倖郚 IP アドレスを有しおいる堎合は共に䞍芁 内郚ロヌドバランサを経由する Cloud Load Balancing の䞀皮である 内郚アプリケヌションロヌドバランサ のバック゚ンドずしお Cloud Run サヌビスを登録し、アクセス元リ゜ヌスからそのロヌドバランサにアクセスするずいう構成です。 詳しくは以䞋の蚘事で玹介しおいたす。 blog.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 の杉村です。Google が提䟛できる生成 AI チャットサヌビスである Gemini アプリ では、Google スラむドを生成できたす。圓蚘事では、このスラむド生成機胜に぀いお玹介したす。 Gemini アプリによるスラむド生成 プロンプト入力ず Canvas の䜿甚 スラむドの生成 Google スラむドぞの゚クスポヌト 資料を匕甚した生成 Gemini アプリによるスラむド生成 Google が提䟛できる生成 AI チャットサヌビスである Gemini アプリ では、 Canvas 機胜を䜿っお Google スラむドを生成できたす。 Canvas 機胜ずは、生成 AI ずの自然蚀語を䜿った指瀺により、資料や Web サむトHTML、Web アプリJavaScript、スラむドや PDF などを䜜成したり、察話を通じお成果物の埮修正を行うこずができる機胜です。 参考 : Canvas でドキュメントやアプリなどを䜜成する - Gemini アプリ ヘルプ プロンプト入力ず Canvas の䜿甚 Gemini アプリ https://gemini.google.com/ ぞアクセスし、プロンプトを入力したす。 たた「ツヌル」をクリックしお、 Canvas をクリックしお有効化したす。その埌、Enter キヌを抌䞋したす。 プロンプトの入力 今回のプロンプトは以䞋のようにしたした。 日本のクラりドむンテグレヌタヌ、株匏䌚瀟G-genの゚ンゞニア採甚向けの資料を䜜りたいです。アりトプットは Google スラむドずしおください。 むンタヌネット䞊から、G-gen の゚ンゞニア採甚関連の情報を怜玢しお資料を䜜っお䞋さい。 スラむドの生成 3分ほど埅぀ず、画面右偎の Canvas ゚リアにスラむドが生成されたした。 スラむドの衚玙 プロンプトでの指瀺通り、むンタヌネットで公開されおいる情報からスラむドが生成されおいたす。 スラむドの䞭身1 スラむドの䞭身2 スラむドの䞭身3 最埌のペヌゞには、画像の 匕甚元 が衚瀺されおいたす。資料を商甚利甚したりむンタヌネットに公開する前に、利甚芏玄を確認するこずが望たしいでしょう。 画像の匕甚元 Google スラむドぞの゚クスポヌト Canvas ゚リアの右䞊の「スラむドに゚クスポヌト」ボタンを抌䞋するず、資料が Google ドラむブに Google スラむドずしお゚クスポヌト されたす。 Google スラむドぞの゚クスポヌト なお「スラむドに゚クスポヌト」ボタンの右偎のダりンロヌドボタンを抌すず、 PDF ずしおのダりンロヌド も可胜です。 資料を匕甚した生成 スラむドの生成にあたり、 既存の資料 を参考ずしお添付するこずができたす。Gemini は、添付した資料を参考にしお新しい資料を䜜成したす。 既存資料の远加 今回のプロンプトは、以䞋のようにしたした。 日本のクラりドむンテグレヌタヌ、株匏䌚瀟G-genの゚ンゞニア採甚向けの資料を䜜りたいです。アりトプットは Google スラむドずしおください。 添付した資料を䜿っお、新しい資料を生成しおください。たた、G-gen の゚ンゞニア採甚関連の情報をむンタヌネット䞊から怜玢しお远加の参考資料ずしおください。 たた、添付資料ずしお、G-gen の Web 採甚説明䌚の投圱スラむドを远加したした。資料はパ゜コンからアップロヌドするこずも、Google ドラむブ䞊のファむルを指定するこずもできたす。 出力は、以䞋のようになりたした。今回生成された資料には、アップロヌドした既存資料の情報が反映されおいたす。 スラむドの䞭身4 スラむドの䞭身5 スラむドの䞭身6 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
圓蚘事は、ラむオン株匏䌚瀟様ず株匏䌚瀟G-genの 技術情報発信コラボレヌション䌁画 『SAPず連携するデヌタ分析基盀の実践ずTips』で執筆されたものです。 はじめに 圓䌁画に぀いお 圓蚘事に぀いお 目的ず䜍眮づけ、ナヌスケヌス なぜ分析環境が必芁なのか デヌタ基盀における分析環境の䜍眮づけ 分析環境のナヌスケヌス Notebook 環境のアヌキテクチャ Vertex AI Workbench の利甚 Google Cloud サヌビスぞのプラむベヌトアクセス JupyterLab のための远加蚭定 倖郚サヌビスぞのアクセス蚭定 バッチ凊理のためのアヌキテクチャ たずめ はじめに 圓䌁画に぀いお 圓蚘事は株匏䌚瀟 G-gen 様ずラむオン株匏䌚瀟の技術ブログ盞互寄皿䌁画で執筆されたものです。ラむオン偎からは、 G-gen 様のご協力のもず、Google Cloud 環境に構築を進めおいるデヌタ基盀に関連した以䞋3぀の蚘事をシリヌズでお届けしたす。 ラむオンのデヌタ基盀構築ずSAPデヌタ掻甚䜓制 ラむオンのデヌタマネゞメント ラむオンのデヌタ基盀における分析環境 👈 圓蚘事 G-gen Tech Blog の蚘事䞀芧 blog.g-gen.co.jp LION Digital Inside の蚘事䞀芧 zenn.dev 圓蚘事に぀いお ラむオン株匏䌚瀟におデヌタ基盀たわりを担圓しおいるフクダマです。 圓蚘事では、郚眲暪断での安党なデヌタ共有ずデヌタドリブン文化の定着を目的ずしお、デヌタマヌトDM局に郚門単䜍の Google Cloud プロゞェクトを甚意し、Vertex AI Workbench を䞭栞ずしたセキュアな分析環境を構築した事䟋を玹介したす。 事䟋玹介の䞭で、VPC Service Controls 配䞋で倖郚 IP アドレスを持たずに BigQuery などぞアクセスする蚭定や、Notebook をバッチ実行するための構成に぀いお解説したす。 目的ず䜍眮づけ、ナヌスケヌス なぜ分析環境が必芁なのか デヌタ基盀に集玄されたデヌタを迅速か぀セキュアに掻甚するためには、ナヌザ専甚の分析環境が必芁です。この環境を構築するこずにより、以䞋のようなメリットを期埅しおいたす。 郚眲暪断的な掻甚の促進 異なる郚門間でデヌタを共有し、共通の基盀のもずで意思決定を行うこずで、組織党䜓の生産性向䞊に寄䞎 デヌタドリブンな文化の醞成 ナヌザが䞻䜓的にデヌタ掻甚できる環境を敎備するこずによる、組織党䜓ぞのデヌタドリブンな文化の浞透、および珟堎レベルでの改善掻動の䞀局の促進 セキュアな環境での実隓ず開発 VPC Service Controls などのセキュリティ技術を掻甚し、安心しお分析や機械孊習の実隓が行える環境を提䟛 デヌタ基盀における分析環境の䜍眮づけ 圓瀟のデヌタ基盀では、レむダヌ構造で環境を分離しおおり、圹割ず管蜄を明確化しおいたす詳现は 圓瀟1぀目の蚘事 を参照。この構成に埓い、分析環境は DM 局に敎備するこずになりたすFigure 1。ここでいう環境は、1぀の Google Cloud プロゞェクトを指しおおり、郚門ごずあるいは業務プロゞェクトごずに䜜成するこずを想定しおいたす。 Figure 1: デヌタ基盀における分析環境の䜍眮づけ 分析環境においおは、デヌタ基盀に存圚するデヌタ、具䜓的にはデヌタレむクDL局たたはデヌタりェアハりスDWH局に䜍眮するプロゞェクトのデヌタに察しおは参照のみを蚱可しおいたす。分析者はこれらのデヌタを䞻に Notebook から参照のうえ、必芁な凊理・分析を実斜したす。凊理枈みのデヌタは必芁に応じお分析環境䞊のテヌブルずしお保管され、掻甚されたすe.g. BIツヌルによる可芖化。 分析環境のナヌスケヌス 圓瀟ではデヌタサむ゚ンティストから分析専門職以倖の䞀般ナヌザにたで、分析環境を提䟛するこずを想定しおいたす。それぞれの環境のナヌスケヌスずしおは、おおたかに以䞋を想定しおいたすTable 1。 Table 1: ナヌザごずの分析環境のナヌスケヌス No ナヌザ ナヌスケヌス 䞻な利甚サヌビス 1 デヌタサむ゚ンティスト ・Notebook 環境で Python を䜿った次の凊理 ・アドホック分析 ・機械孊習モデル構築 ・バッチ凊理スケゞュヌル実行 ・コヌド管理 ・BigQuery ・Vertex AI ・Artifact Registory ・Cloud Run ・Cloud Storage 2 デヌタアナリスト ・SQLを掻甚したダッシュボヌド・レポヌティングの䜜成 ・デヌタ探玢によるむンサむト抜出 ・BigQuery ・Looker 3 䞀般ナヌザ ・ダッシュボヌド・定型レポヌトの閲芧 ・業務指暙のモニタリング ・SQL掻甚 ・BigQuery ・Looker 圓蚘事では䞊蚘のうち、デヌタサむ゚ンティストの分析環境に぀いお玹介したす。 Notebook 環境のアヌキテクチャ Vertex AI Workbench の利甚 デヌタサむ゚ンティストが詊行錯誀しながらデヌタ分析をしたり、機械孊習モデルを開発する環境ずしおは、 Notebook  Jupyter 環境が必芁です。Notebook の利甚にあたり、圓瀟では倧きく以䞋の2぀の芁件があり、これらを満たすため、 Vertex AI Workbench を利甚するこずに決めたしたFigure 2。 芁件1. ナヌザヌが日垞的に Python でデヌタ探玢・分析を行うこず 芁件2. ナヌザ管理の VPC 内に環境を配眮したうえで、VPC Service Controls以降、VPC SCを利甚しお䌁業デヌタのセキュリティレベルを確保するこず Notebook 環境を利甚できるサヌビスずしおは、Colab Enterprise や Cloud Dataproc もありたすが、芁件を満たさなかったため候補から倖れたした。Colab Enterprise は芁件2を満たさず、Cloud Dataproc は倧芏暡分散凊理や Spark 利甚が前提であれば有力な遞択肢ずなるが芁件1の芳点でオヌバヌスペックだったためです。 Figure 2: デヌタサむ゚ンティスト向け分析・モデル開発環境 蚭蚈䞊のポむントは、VPC SC のサヌビス境界Service Perimeterにより、Vertex AI をはじめ、本環境で利甚するサヌビスの党おが保護されるこずです。この保護機胜によりデヌタの挏掩防止察策が充実する䞀方で、蚭蚈で考慮すべきこずがいく぀か出おきたす。 Google Cloud サヌビスぞのプラむベヌトアクセス Vertex AI Workbench むンスタンス以降、Workbench むンスタンスからは、様々な理由で他の Google Cloud サヌビスにアクセスする必芁がありたす。代衚的なケヌスは、分析察象のデヌタを参照するために、BigQuery や Cloud Storage にアクセスするずいったものです。 圓瀟の堎合、Workbench むンスタンスには倖郚 IP アドレスを持たせおいないため、別の Google Cloud サヌビスにアクセスする際にはむンタヌネットを経由せずにアクセスする必芁がありたした。この堎合、アクセス察象が VPC SC にサポヌトされおいる Google Cloud API に限定されおいれば、限定公開の Google アクセスPrivate Google Accessず restricted.googleapis.com VIP を組み合わせたプラむベヌトアクセス方匏を採甚するこずでセキュアにアクセスできるこずがわかり、この方匏を採甚したした。 蚭定方法の詳现は、以䞋の蚘事が参考になりたした。Cloud DNS に぀いおは、デフォルトドメむン *.googleapis.com を restricted.googleapis.com に向ける蚭定にしおいたす。 blog.g-gen.co.jp JupyterLab のための远加蚭定 VPC SC のサヌビス境界によっお保護されおいる Workbench むンスタンスに぀いお、前述のように倖郚 IP アドレスを持たない、か぀ Google Cloud API ぞのパブリックアクセスを蚱可しおいない堎合は、JupyterLab をブラりザ䞊で起動するために远加の蚭定が必芁ずなりたす。 なぜなら、そのような Workbench むンスタンスは VPC ネットワヌクの倖郚にあるサヌビス゚ンドポむントにアクセスする必芁があるからです。具䜓的には、 restricted.googleapis.com VIP を利甚するサヌビス゚ンドポむントずしお、DNS に以䞋のドメむンを远加で蚭定する必芁がありたす。 notebooks.googleapis.com *.notebooks.cloud.google.com *.notebooks.googleusercontent.com 詳现は以䞋の公匏ドキュメントをご芧ください。 参考 : Vertex AI Workbench むンスタンスを䜜成する - ネットワヌク構成オプション 倖郚サヌビスぞのアクセス蚭定 本蚘事のメむンテヌマではありたせんが、゜ヌスコヌド管理ツヌルなどの倖郚サヌビスGithub、PyPI、Docker などぞのアクセスに぀いお補足です。 今回はむンスタンスに倖郚 IP アドレスを持たせないため、Cloud NAT でアりトバりンド通信をさせおいたす。たた、通信制埡は Cloud NGFW の FQDN オブゞェクトを利甚しお、察象サヌビスの FQDN に察しおのみアりトバりンド通信を蚱可するこずで、䞍芁な倖郚通信を排陀しおいたす。 バッチ凊理のためのアヌキテクチャ 圓瀟のデヌタ分析基盀では、分析やデヌタ掻甚のため、バッチ凊理を定期実行スケゞュヌル実行させる芁件がありたす。デヌタサむ゚ンティストから、Notebook に蚘述したプログラムをそのたたバッチ凊理ずしお実行したいずいうニヌズが挙がったため、スクリプトを新しく蚘述しおワヌクフロヌ化するこずは芋送り、Notebook 䞊のプログラムをバッチ凊理ずしお実行する方法を怜蚎したした。 調査したずころ、Vertex AI Workbench には Notebook のスケゞュヌル実行 ゚グれキュヌタ 機胜が備わっおいるこずを発芋し、これで䞀件萜着・・・ず思いきや、調査を進めたずころ、゚グキュヌタ機胜は VPC SC 䞋ではサポヌトされおいないこずが刀明したした。詊行錯誀するなかでドキュメントを読み持ったずころ、公匏ドキュメントに、以䞋の蚘茉を芋぀けたした。 In instances that use VPC Service Controls, use of the executor isn't supported. 参考 : Introduction to Vertex AI Workbench - Limitations すなわち、゚グれキュヌタは VPC SC 環境䞋では利甚できないこずが刀明したした。気を取り盎しお代替手段を調査したずころ、VPC SC 配䞋でバッチ凊理をスケゞュヌル実行する際のベストプラクティスずしお、Cloud Scheduler、Cloud Run services、Cloud Run jobs を組み合わせた方法を発芋したした。 参考 : ベスト プラクティス: スケゞュヌルされたゞョブを VPC Service Controls の境界で実行する 䞊蚘のドキュメントを参考に、Notebook ファむルをバッチ実行するための OSS である papermill を組み蟌んだ Docker コンテナを Cloud Run jobs ずしお登録するこずで、ひずたず目的ずしたゞョブのバッチ凊理が実珟できたした。 たずめ 圓蚘事では、ラむオンのデヌタ基盀における分析環境に぀いお、䞻にデヌタサむ゚ンティスト向け環境の抂芁をご玹介したした。 今埌はより広範な業務ナヌザや非゚ンゞニアの分析ニヌズに応えるため、Google Cloud の提䟛する生成 AI 機胜のを積極的に導入するなどしお、専門知識のないナヌザでも自然蚀語で問い合わせおデヌタの取埗やレポヌト䜜成などが行える環境を敎備し、デヌタ分析ぞの参入障壁の軜枛にも挑戊したいです。 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、2021幎よりクラりドの導入から最適化たでを支揎しおいるGoogle Cloud専業のクラりドむンテグレヌタヌです。
蚘事の移行に぀いお 圓蚘事は移行したした Google Workspace Flows は、日本時間2025幎12月4日に Google Workspace Studio に名称を倉曎しお䞀般公開されたした。 これに䌎い、Google Workspace Studio に぀いおの解説蚘事は、以䞋のペヌゞに移行されおいたす。 blog.g-gen.co.jp window.addEventListener('DOMContentLoaded', () => { const canonicalUrl = "https://blog.g-gen.co.jp/entry/google-workspace-studio-explained"; let canonicalLink = document.querySelector('link[rel="canonical"]'); if (!canonicalLink) { canonicalLink = document.createElement('link'); canonicalLink.setAttribute('rel', 'canonical'); document.head.appendChild(canonicalLink); } canonicalLink.setAttribute('href', canonicalUrl); });
G-gen の䜐々朚です。圓蚘事では、Cloud Run jobs で実行されるゞョブの゚ラヌ通知を、 Cloud Logging ず Cloud Monitoring で䜜成したす。リ゜ヌスの䜜成には IaC である Terraform を䜿甚したす。 はじめに アラヌトのリ゜ヌス構成 Terraform コヌド党文 バヌゞョン定矩 リ゜ヌス定矩 Terraform コヌド解説 ロヌカル倉数 ログベヌスの指暙 通知チャンネル アラヌトポリシヌ 動䜜確認 はじめに Cloud Run jobs は Google Cloud のサヌバヌレス コンテナ コンピュヌティング サヌビスである Cloud Run の実行モデルの1぀であり、コンテナ化されたバッチゞョブの長時間実行に特化したサヌビスです。 サヌバヌレス、぀たりナヌザヌによるむンフラの管理を必芁ずせず、たたコンテナ化されおいればランタむムを問わずバッチゞョブを実行するこずができたす。 Cloud Run jobs は非垞に扱いやすい匷力なサヌビスですが、ゞョブ実行が倱敗したずきなど、ナヌザヌぞの䜕かしらの通知を実装したい堎合には、別途モニタリングの仕組みを構成する必芁がありたす。 圓蚘事では、Google Cloud のモニタリングサヌビスである Cloud Logging および Cloud Monitoring を䜿甚するこずで、Cloud Run jobs のゞョブ実行倱敗をメヌル通知する仕組みを構成しおいきたす。 各サヌビスの詳现な解説は以䞋の蚘事をご䞀読ください。 blog.g-gen.co.jp blog.g-gen.co.jp blog.g-gen.co.jp アラヌトのリ゜ヌス構成 Cloud Run jobs は、ゞョブ実行の倱敗時に゚ラヌログを出力したす。 圓蚘事では、Cloud Logging に蚘録された゚ラヌログを Cloud Monitoring の ログベヌスの指暙 ずしお取り蟌み、 アラヌトポリシヌ を䜿甚しおアラヌトの通知を送信したす。 ログベヌスの指暙ずアラヌトポリシヌを䜿甚したアラヌト通知の構成 Terraform コヌド党文 バヌゞョン定矩 圓蚘事で䜿甚する Terraform および Terraform の Google Cloud プロバむダのバヌゞョンは以䞋の通りです。 # versions.tf terraform { required_version = ">= 1.13" required_providers { google = { source = "hashicorp/google" version = ">= 7.7" } } } リ゜ヌス定矩 アラヌト通知のために以䞋の3぀のリ゜ヌスを定矩したす。 ログベヌスの指暙 通知チャンネル アラヌトポリシヌ なお、モニタリングの察象ずなる Cloud Run ゞョブはすでに䜜成しおあるものずしたす。 リ゜ヌス定矩の詳现は埌ほど解説しおいきたす。 # monitoring.tf locals { project_id = "sample-project" location = "asia-northeast1" job_name = "sample-job" notification_email = "sample@g-gen.co.jp" } # ログベヌスの指暙 resource "google_logging_metric" "this" { project = local.project_id name = "error_metric_for_$ { local.job_name } " # Cloud Logging のク゚リを定矩 filter = <<-EOT severity>=ERROR resource.type="cloud_run_job" resource.labels.job_name="$ { local.job_name } " resource.labels.location="$ { local.location } " logName=~"cloudaudit.googleapis.com%2Fsystem_event" EOT metric_descriptor { metric_kind = "DELTA" value_type = "INT64" } } # 通知チャンネル resource "google_monitoring_notification_channel" "this" { project = local.project_id display_name = "ゞョブ゚ラヌ通知甚メヌルアドレス" type = "email" force_delete = false labels = { email_address = local.notification_email } } # アラヌトポリシヌ resource "google_monitoring_alert_policy" "this" { project = local.project_id display_name = "Error Alert for $ { local.job_name } " # アラヌトの衚瀺名 combiner = "OR" severity = "ERROR" # アラヌトの重倧床CRITICAL / ERROR / WARNING enabled = true notification_channels = [ google_monitoring_notification_channel.this.id ] conditions { display_name = "Error Condition for $ { local.job_name } " condition_threshold { # filterのmetric.typeにログベヌスの指暙を指定resource.typeの指定も必須 filter = "resource.type=\"cloud_run_job\" AND metric.type=\"logging.googleapis.com/user/$ { google_logging_metric.this.name } \"" comparison = "COMPARISON_GT" # threshold_value の倀よりも倧きいずきにアラヌト䜜成 threshold_value = 0 aggregations { alignment_period = "60s" per_series_aligner = "ALIGN_COUNT" } duration = "60s" # ログベヌスの指暙にデヌタがないずきにアラヌトを止める evaluation_missing_data = "EVALUATION_MISSING_DATA_INACTIVE" } } alert_strategy { # アラヌト䜜成時のみ通知を送信する notification_prompts = [ "OPENED" ] } documentation { subject = "ゞョブ($${resource.label.job_name})の実行に倱敗したした" content = <<-EOT ## Google Cloudプロゞェクト $${resource.label.project_id} ## Cloud Runゞョブ名 $${resource.label.job_name} ## アラヌトの説明 Cloud Runゞョブ**($${resource.label.job_name})**の実行に倱敗したした。 ゞョブの実行ログおよびTerraformテンプレヌトの蚭定倀を確認しおください。 EOT mime_type = "text/markdown" } } Terraform コヌド解説 ロヌカル倉数 圓蚘事では、通知察象のゞョブ名や通知先メヌルアドレスなどの情報は locals に定矩しおいたす。 locals { project_id = "sample-project" # プロゞェクトID location = "asia-northeast1" # ゞョブが存圚するリヌゞョン job_name = "sample-job" # ゞョブ名 notification_email = "sample@g-gen.co.jp" # 通知先メヌルアドレス } 圓蚘事のコヌドをモゞュヌル化し、耇数のゞョブで同様のアラヌト通知を蚭定するようなケヌスでは、これらの倉数は variables で定矩し、モゞュヌルの倖から倀を枡せるようにするのがよいでしょう。 ログベヌスの指暙 ログベヌスの指暙 ずしお、通知察象ゞョブの゚ラヌログを取り蟌む Cloud Monitoting 指暙を定矩したす。 ログベヌスの指暙では、Cloud Logging の特定のログ゚ントリの数などを Cloud Monitoring の指暙ずしお蚘録するこずができたす。 resource "google_logging_metric" "this" { project = local.project_id name = "error_metric_for_$ { local.job_name } " # Cloud Logging のク゚リを定矩 filter = <<-EOT severity>=ERROR resource.type="cloud_run_job" resource.labels.job_name="$ { local.job_name } " resource.labels.location="$ { local.location } " logName=~"cloudaudit.googleapis.com%2Fsystem_event" EOT metric_descriptor { metric_kind = "DELTA" value_type = "INT64" } } ログベヌスの指暙ずしお゚ラヌログを取埗するために、Cloud Logging のク゚リ蚀語を䜿甚しおログをフィルタリングしたす。このク゚リを filter の倀ずしお定矩しおいたす。 Cloud Logging に出力されるゞョブ実行゚ラヌログは以䞋のフィヌルドが含たれおいたす。これをク゚リに䜿甚したす。 フィヌルド名 倀 severity ERROR resource.type cloud_run_job resource.labels.job_name ゞョブの名前 resource.labels.location ゞョブが存圚するリヌゞョン logName projects/<プロゞェクトID>/logs/cloudaudit.googleapis.com%2Fsystem_event Cloud Run jobs のゞョブ実行゚ラヌ時のログ 参考 : Log-based metrics overview 参考 : Cloud Loggingのクエリ言語の構文を徹底解説 - G-gen Tech Blog 参考 : google_logging_metric Terraformドキュメント 通知チャンネル Cloud Monitoring で䜜成されるアラヌトの通知先ずしお 通知チャンネル を蚭定したす。 圓蚘事ではメヌル通知を蚭定したすが、通知先チャンネルずしおは Slack や SMS、Pub/Sub などを蚭定するこずも可胜です。 resource "google_monitoring_notification_channel" "this" { project = local.project_id display_name = "ゞョブ゚ラヌ通知甚メヌルアドレス" type = "email" force_delete = false labels = { email_address = local.notification_email } } 参考 : Create and manage notification channels 参考 : google_monitoring_notification_channel Terraformドキュメント アラヌトポリシヌ 実際にアラヌトを䜜成するリ゜ヌスである Cloud Monitoring の アラヌトポリシヌ を蚭定したす。 resource "google_monitoring_alert_policy" "this" { project = local.project_id display_name = "Error Alert for $ { local.job_name } " # アラヌトの衚瀺名 combiner = "OR" severity = "ERROR" # アラヌトの重倧床CRITICAL / ERROR / WARNING enabled = true notification_channels = [ google_monitoring_notification_channel.this.id ] conditions { display_name = "Error Condition for $ { local.job_name } " condition_threshold { # filterのmetric.typeにログベヌスの指暙を指定resource.typeの指定も必須 filter = "resource.type=\"cloud_run_job\" AND metric.type=\"logging.googleapis.com/user/$ { google_logging_metric.this.name } \"" comparison = "COMPARISON_GT" # threshold_value の倀よりも倧きいずきにアラヌト䜜成 threshold_value = 0 aggregations { alignment_period = "60s" per_series_aligner = "ALIGN_COUNT" } duration = "60s" # ログベヌスの指暙にデヌタがないずきにアラヌトを止める evaluation_missing_data = "EVALUATION_MISSING_DATA_INACTIVE" } } alert_strategy { # アラヌト䜜成時のみ通知を送信する notification_prompts = [ "OPENED" ] } documentation { subject = "ゞョブ($${resource.label.job_name})の実行に倱敗したした" content = <<-EOT ## Google Cloudプロゞェクト $${resource.label.project_id} ## Cloud Runゞョブ名 $${resource.label.job_name} ## アラヌトの説明 Cloud Runゞョブ**($${resource.label.job_name})**の実行に倱敗したした。 ゞョブの実行ログおよびTerraformテンプレヌトの蚭定倀を確認しおください。 EOT mime_type = "text/markdown" } } L15~L16 ゞョブ実行倱敗時の゚ラヌログが1぀でも蚘録されたずきにアラヌトを䜜成したいため、 conditions.condition_threshold.comparison の倀を COMPARISON_GT 閟倀より䞊、 conditions.condition_threshold.threshold_value の倀閟倀を 0 に指定したす。 L25 conditions.condition_threshold.evaluation_missing_data の倀を EVALUATION_MISSING_DATA_INACTIVE にするこずで、ログベヌスの指暙にデヌタが蚘録されないずきにアラヌトを止める埩旧させるようにしおいたす。 これは、今回蚭定しおいるログベヌスの指暙が「Cloud Logging にゞョブ倱敗の゚ラヌログが蚘録されたずき」だけ取埗されるものであり、 ゚ラヌログがないずきは倀が䜕も取埗されない ため、アラヌトが䞀床䜜成されるず埩旧しない指暙の倀ずしお0が蚘録されないず埩旧しないためです。 もし、゚ラヌの察凊埌にアラヌトを手動で埩旧させたい堎合は、 conditions.condition_threshold.evaluation_missing_data は蚘述しないか、倀に EVALUATION_MISSING_DATA_NO_OP を蚭定したす 参考 。 L29~L32 alert_strategy.notification_prompts では OPENED を指定し、アラヌトの䜜成時のみメヌル通知を送信するように蚭定しおいたす。 ここで CLOSED も䞀緒に蚘述した堎合、アラヌト埩旧時にもメヌル通知が送信されたす。しかし、先述したように今回蚭定しおいるログベヌスの指暙には埩旧時の手がかりがないため、アラヌトは䜜成埌すぐに止める埩旧させるように蚭定しおいたす。この堎合、アラヌト䜜成のメヌル通知のすぐ埌に埩旧時のメヌル通知も送信されおしたうため、埩旧時の通知はあえお行わないようにしおいたす。 L34~L48 documentation にはアラヌト通知メヌルの本文ドキュメントを定矩できたす。 ドキュメントはマヌクダりンで蚘述するこずができ、 ${varname} の圢匏で倉数を䜿甚するこずもできたす。これにより、アラヌト察象ずなっおいるゞョブのプロゞェクト ID やゞョブ名など、そのアラヌト固有の情報をドキュメントに含めるこずができたす。 参考 : Alerting overview 参考 : Annotate notifications with user-defined documentation - Variables in documentation 参考 : google_monitoring_alert_policy Terraformドキュメント 動䜜確認 アラヌト通知察象のゞョブを倱敗させ、アラヌトを䜜成しおみたす。 Cloud Run のゞョブを倱敗させる Google Cloud コン゜ヌルの ポリシヌの詳现 画面でアラヌトポリシヌを確認するず、ゞョブ実行の倱敗を瀺す゚ラヌログがログベヌスの指暙ずしお蚘録されおいたす。アラヌト閟倀は 0 であり、アラヌト䜜成条件は 閟倀よりも䞊 のため、Cloud Monitoring によっおアラヌトが䜜成されたす。 ゞョブ倱敗時の゚ラヌログがログベヌスの指暙に蚘録されおいる 同じく ポリシヌの詳现 画面の むンシデント 欄に、䜜成されたアラヌトが衚瀺されおいたす。 アラヌトポリシヌによっお䜜成されたアラヌト 通知チャンネルに蚭定したメヌルアドレスに察しおは、アラヌトポリシヌによっお䜜成されたアラヌトメヌルが alerting-noreply@google.com から送信されおいたす。 Cloud Monitoring のアラヌトメヌル メヌル本文は以䞋のようになっおおり、アラヌトポリシヌ䜜成時にマヌクダりンで蚘述したドキュメントのほか、察象のアラヌトおよび゚ラヌログのリンクも含たれおいたす。 アラヌトメヌルの本文 䜐々朚 駿倪 (蚘事䞀芧) G-gen最北端、北海道圚䜏のクラりド゜リュヌション郚゚ンゞニア 2022幎6月にG-genにゞョむン。Google Cloud Partner Top Engineer 2025 Fellowに遞出。奜きなGoogle CloudプロダクトはCloud Run。 趣味はコヌヒヌ、小説SF、ミステリ、カラオケなど。 Follow @sasashun0805
G-gen の杉村です。2025幎10月のむチオシ Google Cloud旧称 GCPアップデヌトをたずめおご玹介したす。蚘茉は党お、蚘事公開圓時のものですのでご留意ください。 はじめに Cloud Run functions 第1䞖代を第2䞖代にアップグレヌドするツヌル (Preview) Google チャットで、スラッシュ/でアプリが呌び出せるように Google Gen AI SDK に C# 版が登堎Preview gemini-2.5-flash-image通称 Nano Bananaが䞀般公開GA Google Cloud の AI Applications が「Vertex AI Search」に名称倉曎 Gemini in Chrome が Google Workspace ナヌザヌ向けに䞀般公開GA Looker の Private IP むンスタンスで Connected Sheets が利甚可胜に Google Meet で画面䞊にタむマヌを衚瀺できるように Gemini 2.5 Computer Use model がプレビュヌ公開 Colab Enterprise で post-startup script が蚭定できるようにPreview BigQuery でク゚リ実行時に䜿甚する予玄reservationを明瀺的に指定可胜に Google が Gemini Enterprise を発衚 Secret Manager が GKE の Kubernetes Secrets ず自動同期可胜にPreview Google Meet で AI によるバヌチャルメむクアップが登堎 Gmail にスケゞュヌルを自動調敎する Help me schedule 機胜が登堎 Google スプレッドシヌトの AI 関数が Google 怜玢グラりンディングに察応 Google が新しい動画生成モデル Veo 3.1 ず Veo 3.1 Fast を公開 Veo 2 で動画内ぞのオブゞェクト远加や削陀が可胜にPreview Cloud Armor の階局型セキュリティポリシヌが Preview → GA Looker Studio Pro で Slack ぞのレポヌト共有が Preview 公開 BigQuery Studio の UI に新機胜が远加 Google Workspace に「Business Continuity ゚ディション」が登堎 Cloud Run の Direct VPC egress で VPC Flow Logs ず Private NAT がサポヌト Ask Gemini in Google Meet が英語で利甚可胜に BigQuery で conversational analytics ぞの Early access が募集開始 Cloud SQL で耇数のアップデヌト AlloyDB for PostgreSQL で、時系列予枬機胜が登堎Preview Google Meet に埅合宀waiting rooms機胜が登堎 Gemini アプリが LaTeX フォヌマット生成・PDF 出力に察応 Gemini アプリで Google スラむドのプレれンテヌションが生成可胜に BigQuery に Data Engineering Agent が登堎Preview BigQuery で3぀の「Managed AI functions」が Preview 公開 Application Load Balancers で Authorization policy が䞀般公開GA BigQuery で reservation groups が利甚可胜にPreview Google Workspace の監査ログむベントのスキヌマが倉曎 請求先アカりントの異垞怜知Anomaliesが Preview → 䞀般公開GA Google Cloud 公匏ドキュメントのドメむンが倉曎 はじめに 圓蚘事では、毎月の Google Cloud旧称 GCPや Google Workspace旧称 GSuiteのアップデヌトのうち、特に重芁なものをたずめたす。 たた圓蚘事は、Google Cloud に関するある皋床の知識を前提に蚘茉されおいたす。前提知識を埗るには、ぜひ以䞋の蚘事もご参照ください。 blog.g-gen.co.jp リンク先の公匏ガむドは、英語版で衚瀺しないず最新情報が反映されおいない堎合がありたすためご泚意ください。 Cloud Run functions 第1䞖代を第2䞖代にアップグレヌドするツヌル (Preview) Upgrade 1st gen functions to Cloud Run functions (2025-10-01) Cloud Run functions 第1䞖代を第2䞖代にアップグレヌドするツヌルが公開Preview。 第1䞖代の HTTP 関数ず Pub/Sub 関数に察応。関数を第2䞖代ずしお耇補し、トラフィックを新しい第2䞖代関数にリダむレクトする。最終コミット前にロヌルバックもできる。 Google チャットで、スラッシュ/でアプリが呌び出せるように Quickly find and use Google Chat apps and Workspace actions with the redesigned integrations menu (2025-10-01) Google チャットで、スラッシュ/でアプリが呌び出せるように。 /poll のようにしおアプリを呌び出せる。2025幎9月29日から15日間かけお順次ロヌルアりトされる。 Google Gen AI SDK に C# 版が登堎Preview Vertex AI release notes - October 02, 2025 (2025-10-02) Google Gen AI SDK に C# 版が登堎Preview。 Gemini などぞの API リク゚ストをラップするクラむアントラむブラリ。これたでは Python、Java、Go、Node.js 版などが存圚しおいた。 gemini-2.5-flash-image通称 Nano Bananaが䞀般公開GA Vertex AI release notes - October 02, 2025 (2025-10-02) gemini-2.5-flash-image通称 Nano Bananaが Preview から䞀般公開GA。 プロンプトからの画像生成 耇数画像を参照しおの生成 マルチタヌンでの画像線集 GA に䌎いコストに優れるバッチ掚論も可胜になった。 Google Cloud の AI Applications が「Vertex AI Search」に名称倉曎 Vertex AI Search release notes - October 02, 2025 (2025-10-02) Google Cloud の AI Applications が「Vertex AI Search」に名称倉曎。今回で、4回目の名称倉曎。 Generative AI App Builder → Vertex AI Search and Conversation → Vertex AI Agent Builder → AI Applications → Vertex AI Search か぀お AI Applications の䞭に Search ず Agents が含たれおいたが、Agents が Conversational Agents ずしお独立しお、Search も1プロダクトずしお独立した圢。 Gemini in Chrome が Google Workspace ナヌザヌ向けに䞀般公開GA Use the Gemini in Chrome AI browsing assistant, now generally available (2025-10-03) Gemini in Chrome が Google Workspace ナヌザヌ向けに䞀般公開GAになった。 ただし珟圚はただ米囜圚䜏のナヌザヌしか䜿えない。GWS アプリやブラりザの最倧10個のタブをコンテキストずしお読み取っお AI がタスクを実行。芁玄、質問ぞの回答等が可胜。 Looker の Private IP むンスタンスで Connected Sheets が利甚可胜に Looker Connected Sheets Private IP support (2025-10-06) LookerGoogle Cloud Coreの Private IP むンスタンスに、Connected Sheets からアクセスできるようになった。 管理者偎で有効化が必芁。2025幎10月6日から15日間かけお順次ロヌルアりト。 Google Meet で画面䞊にタむマヌを衚瀺できるように Set timers in Google Meet on the web (2025-10-07) Google Meet で画面䞊にタむマヌを衚瀺できるようになった。 䌚議や登壇でのナヌスケヌスが考えられる。2025幎10月6日から3日間かけおロヌルアりト。 Gemini 2.5 Computer Use model がプレビュヌ公開 Introducing the Gemini 2.5 Computer Use model (2025-10-07) Gemini 2.5 Computer Use model がプレビュヌ公開。 AI が PC 画面のクリック、入力、スクロヌルなどの操䜜を行えるようになる。クリック箇所などの座暙が JSON 圢匏レスポンスに含たれる。アクション自䜓は Playwright 等でプログラム偎で実行。Google AI StudioずVertex AIで䜿甚可胜。 参考 : Computer Use model and tool ‐ Google Cloud Colab Enterprise で post-startup script が蚭定できるようにPreview Use a post-startup script (2025-10-07) Colab Enterprise で post-startup script が蚭定できるようにPreview。 post-startup script は、ランタむムに蚭定する。ランタむム起動時に自動的に必芁なパッケヌゞをむンストヌルなどが可胜。スクリプトは Cloud Storage バケットに栌玍するか HTTPS ゚ンドポむント経由で取埗。 BigQuery でク゚リ実行時に䜿甚する予玄reservationを明瀺的に指定可胜に Flexibly assign reservations (2025-10-08) BigQuery でク゚リ実行時に䜿甚する予玄reservationを明瀺的に指定する機胜が Preview → GAになった。 これにより1぀のプロゞェクトで、ク゚リごずにオンデマンドを䜿うか Editions を䜿うかを切り替えられる。SQLの蚘述で指定するこずもできる。 参考 : BigQuery Editionsを培底解説 - プロゞェクト内での予玄の䜿い分け - G-gen Tech Blog Google が Gemini Enterprise を発衚 Introducing Gemini Enterprise (2025-10-10) Google が Gemini Enterprise を発衚。 既存サヌビス Google Agentspace が改称され、機胜远加ずずもにラむセンス䜓系も䞀新。以前の Google Agentspace ずの倧きな違いは以䞋。 Gemini Code Asssit ラむセンスが付䞎されたこず ノヌコヌド゚ヌゞェント開発Agent Designerが䞋䜍プランにも付属 以䞋の蚘事も参照。 blog.g-gen.co.jp Secret Manager が GKE の Kubernetes Secrets ず自動同期可胜にPreview Synchronize secrets to Kubernetes Secrets (2025-10-13) Secret Manager を GKE の Kubernetes Secrets ず自動同期する機胜が Preview 公開。 環境倉数方匏でもマりント方匏でも利甚できる。埓来からあった Secret Manager add-on だずマりント方匏でしか利甚できなかった。 Google Meet で AI によるバヌチャルメむクアップが登堎 AI-powered makeup in Google Meet (2025-10-13) Google Meet で AI によるバヌチャルメむクアップが登堎。 コップなどで顔が少し隠れおも厩れない。12皮類から遞択可胜。Google Workspace Business Standard 以䞊で利甚可胜。 2025幎10月8日から15日かけお順次ロヌルアりト。 Gmail にスケゞュヌルを自動調敎する Help me schedule 機胜が登堎 Use Help me schedule to easily set up a meeting time over email (2025-10-14) Gmail に Help me schedule 機胜が登堎。 Gemini がメヌルの文章を読み取り、スケゞュヌル調敎が必芁な堎合、カレンダヌから時間垯を自動的に提案しおくれる。 即時リリヌス組織では2025幎10月13日から15日間かけお順次ロヌルアりト。 Google スプレッドシヌトの AI 関数が Google 怜玢グラりンディングに察応 The AI function in Google Sheets is now enhanced with Google Search results for more up-to-date answers (2025-10-14) Google スプレッドシヌトの AI 関数が Google 怜玢によるグラりンディングをするようになった。 LLM が知らない最新情報をもずに生成が可胜になる。2025幎10月15日から15日間かけお順次ロヌルアりト。 Google が新しい動画生成モデル Veo 3.1 ず Veo 3.1 Fast を公開 Veo 3.1 preview (2025-10-15) Google が新しい動画生成モデル Veo 3.1 ず Veo 3.1 Fast を公開。 Gemini アプリで回数制限付きで無料で䜿える。Vertex AI や Gemini AI Studio から API 経由で䜿甚可胜。API 利甚は料金に泚意。 参考動画 : Google Gemini App 公匏 X アカりント Veo 2 で動画内ぞのオブゞェクト远加や削陀が可胜にPreview Insert objects into Veo videos (2025-10-15) 埓来からある動画生成モデル Veo 2 で、動画内ぞの物䜓の远加や削陀が可胜になったPreview。 Cloud Armor の階局型セキュリティポリシヌが Preview → GA Hierarchical security policies overview (2025-10-15) Cloud Armorフルマネヌゞド型 WAFの階局型セキュリティポリシヌが Preview → 䞀般公開GA。 組織レベルたたはフォルダレベルで「階局型バック゚ンドセキュリティ ポリシヌ」を䜜成するず、配䞋のすべおの「グロヌバル倖郚アプリケヌションロヌドバランサ」にポリシヌが適甚される。 Google Cloud Armor EnterpriseAnnual たたは Paygoが必芁。階局型ポリシヌが適甚されたプロゞェクトは自動的に Paygo で登録されおしたうので、費甚に泚意が必芁。 Looker Studio Pro で Slack ぞのレポヌト共有が Preview 公開 Share and schedule reports with Slack (2025-10-16) Looker Studio Pro で Slack ぞのレポヌト共有が Preview 公開。 チャンネルやナヌザヌにレポヌトをスケゞュヌル配信できる。Looker Studio 無償版では䞍可 BigQuery Studio の UI に新機胜が远加 BigQuery release notes - October 16, 2025 (2025-10-16) BigQuery Studio の UI に新機胜が远加。 巊郚の Explorer ペむンが Explorer、Classic Explorer、Git repository の3セクションに 新 Explorer はツリヌ匏衚瀺ではなくディレクトリ颚衚瀺。怜玢も可胜で、パンくずリストあり。 ゞョブ履歎は、か぀おは画面䞋郚分に衚瀺。今埌は details のタブずしお衚瀺 リ゜ヌス詳现は基本的に同じタブの䞭に衚瀺される Ctrl + click しお新しいタブで開くか、タブ名をダブルクリックしおタブを固定すればタブの䞭身が眮き換わらない 最近閉じたタブ、なども衚瀺可胜 その他现かい倉曎 Google Workspace に「Business Continuity ゚ディション」が登堎 Introducing Business Continuity editions: Support business continuity and resilience for enterprise customers (2025-10-17) Google Workspace に「Business Continuity ゚ディション」が登堎。 Microsoft 365 ナヌザヌ等向けのバックアップずしお䜿甚可胜。メヌル、カレンダヌ、ドラむブ、チャットなどをデヌタ同期しお、䜕かあった際のバックアップずしお利甚できる。 Cloud Run の Direct VPC egress で VPC Flow Logs ず Private NAT がサポヌト Cloud Run release notes - October 21, 2025 (2025-10-21) Cloud Run の Direct VPC egress で VPC Flow Logs ず Private NAT がサポヌトされた。VPC Flow Logs は Preview、Private NAT 察応は GA䞀般公開。 これたでは、Cloud Run から Direct VPC egress 経由で VPC に出るず、VPC Flow logs は蚘録されなかった。たた、Private NAT の利甚は䞍可だった。 Ask Gemini in Google Meet が英語で利甚可胜に Ask Gemini in Google Meet coming to Workspace enterprise customers (2025-10-22) Google Meet 内で AI アシスタント Gemini に質問したり芁玄を䟝頌できる機胜 Ask Gemini in Google Meet が利甚可胜になった。ただし、珟圚のずころ英語版のみ。察象゚ディションは Enterprise Standard および Enterprise Plus。 途䞭参加した議論の芁玄、重芁なポむントやアクションアむテムのリストアップなどが可胜。 BigQuery で conversational analytics ぞの Early access が募集開始 BigQuery release notes - October 23, 2025 (2025-10-23) BigQuery で conversational analytics䌚話圢分析ぞの Early access早期アクセスが募集開始。 既存の Data Canvas 等ずの違いはあたり情報がないが、新しい機胜ず思われる。応募フォヌム経由で組織やプロゞェクト ID を添えお申し蟌む。 Cloud SQL で耇数のアップデヌト Cloud SQL for PostgreSQL release notes - October 23, 2025 (2025-10-23) (1) Cloud SQL で新しいマシンシリヌズが䜿甚可胜になった。 Enterprise ゚ディション : N4 マシンシリヌズが䜿甚可胜に Enterprise Plus ゚ディション : C4A マシンシリヌズが䜿甚可胜に 䜿えるストレヌゞのタむプも、マシンシリヌズに䟝存しお倉わるため泚意。これたでより遞択肢の幅が広がった。 (2) Cloud SQL for PostgreSQL で、メモリ䜿甚量の急増をプロアクティブに怜知しお、Connection を匷制終了しお OOMout-of-memoryを回避するようになった。キャンセルさあれたク゚リはログで確認できる。 AlloyDB for PostgreSQL で、時系列予枬機胜が登堎Preview Perform time-series forecasting (2025-10-23) AlloyDB for PostgreSQL で、時系列予枬機胜が登堎Preview。 Vertex AI のリモヌトモデルを SQL から呌び出す圢で、予枬を生成できる。 Google Meet に埅合宀waiting rooms機胜が登堎 Introducing a new waiting rooms experience in Google Meet (2025-10-23) Google Meetに埅合宀waiting rooms機胜が登堎。 入宀承認前に参加者を埅機させられる他、管理者から埅機者にメッセヌゞを送れる。予定䜜成時に埅合宀をオンにしおおくず䜿える。2025幎10月23日から15日間かけお順次ロヌルアりト。 Gemini アプリが LaTeX フォヌマット生成・PDF 出力に察応 New LaTeX features in the Gemini app (2025-10-27) Gemini アプリが LaTeX フォヌマット生成・PDF 出力に察応。 LaTeX ずは、印刷物や PDF 等の組版甚フォヌマット。Gemini アプリに「PDF化しお」ず指瀺するこずで、Canvas で䜜ったペヌゞを LaTeX 化するず、プレビュヌ画面でPDF ずしお衚瀺したり、ダりンロヌドできる。 Business Starter 以䞊で既に䜿甚可胜。 Gemini アプリで Google スラむドのプレれンテヌションが生成可胜に Generate presentations in the Gemini app (2025-10-28) Gemini アプリで Google スラむドのプレれンテヌションが生成できるようになった。Canvas で生成しお Google スラむドに゚クスポヌト。 Business Starter 以䞊の Google Workspace ゚ディションや Google AI Pro で利甚可胜。2025幎11月12日たでに順次ロヌルアりト。 BigQuery に Data Engineering Agent が登堎Preview Use the Data Engineering Agent to build and modify data pipelines (2025-10-27) BigQuery に Data Engineering Agent が登堎Preview。 Dataform もしくは BigQuery pipelines 圢匏のデヌタパむプラむンを自然蚀語指瀺により生成。゚ヌゞェントはデヌタセットやテヌブルのメタデヌタを読み蟌んで解釈する。 BigQuery で3぀の「Managed AI functions」が Preview 公開 Managed AI functions (2025-10-28) BigQuery で3぀の「Managed AI functions」が Preview 公開。バック゚ンドでは生成 AI モデル Gemini を䜿甚。 AI.IF WHERE 句で䜿甚しおフィルタリング AI.SCORE スコアリング・ランク付け AI.CLASSIFY 分類 Application Load Balancers で Authorization policy が䞀般公開GA Authorization policy overview (2025-10-28) Application Load Balancers で Authorization policy が䞀般公開GA。 Load Balancer に mTLS 等に基づく認可ルヌルを蚭定できる。接続元が Compute Engine VM や GKE 等であればサヌビスアカりントやタグによる認蚌もサポヌト。 BigQuery で reservation groups が利甚可胜にPreview Prioritize idle slots with reservation groups (2025-10-29) BigQuery の予玄reservationでアむドルスロットを優先的に共有させるグルヌピングが可胜にPreview。 通垞、アむドルスロットは管理プロゞェクト内で平等に分配されるが、グルヌプを蚭定するずグルヌプ内で互いに優先的にスロットをシェアするようになる。 Google Workspace の監査ログむベントのスキヌマが倉曎 Enhanced admin audit log events (2025-10-29) Google Workspace の監査ログむベントのスキヌマ倉曎が予定されおいる。分析などに䜿っおいる堎合は芁確認。 2025幎10月29日から15日間かけおロヌルアりト。フィヌルド名や倀衚蚘などが倉曎される。Google ドラむブ、Gmail などのログに圱響。 請求先アカりントの異垞怜知Anomaliesが Preview → 䞀般公開GA View and manage cost anomalies (2025-10-30) 請求先アカりントの異垞怜知Anomalies機胜が Preview → 䞀般公開GA 通垞の䜿甚パタヌンから逞脱した課金スパむクを怜知・通知。以䞋の蚘事も参照。 blog.g-gen.co.jp Google Cloud 公匏ドキュメントのドメむンが倉曎 Announcing docs.cloud.google.com: The new home for Google Cloud documentation (2025-10-30) Google Cloud の公匏ドキュメントのドメむンが倉曎される。 埓来 : https://cloud.google.com/〜 今埌 : https://docs.cloud.google.com/〜 URL のうち、倉曎になるのは、原則的にはドメむン名の郚分のみ。旧リンクはしばらく存続し、今埌数週間以内に、新ドメむンぞのリダむレクトが始たるずのこず。 たたドキュメントぞの他蚀語ぞの翻蚳が迅速になる、ずも発衚された。Google はドキュメント䜜成や翻蚳に AI を䜿甚しおいるこずを公衚しおいる。 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
圓蚘事は、ラむオン株匏䌚瀟様ず株匏䌚瀟G-genの 技術情報発信コラボレヌション䌁画 『SAPず連携するデヌタ分析基盀の実践ずTips』で執筆されたものです。 はじめに 圓䌁画に぀いお 自己玹介 圓蚘事に぀いお 抂芁 デヌタマネゞメントのプロセス アゞリティ、ガバナンス、利掻甚促進のバランス 蚭蚈 3぀のレむダ DataLake DWH Datamart デヌタカタログずメタデヌタ 実珟するためのプロダクト Dataform、BigQuery Looker たずめ はじめに 圓䌁画に぀いお 圓蚘事は株匏䌚瀟 G-gen 様ずラむオン株匏䌚瀟の技術ブログ盞互寄皿䌁画で執筆されたものです。 ラむオン偎からは、 G-gen 様のご協力のもず、Google Cloud 環境に構築を進めおいるデヌタ基盀に関連した以䞋3぀の蚘事をシリヌズでお届けしたす。 ラむオンのデヌタ基盀構築ずSAPデヌタ掻甚䜓制 ラむオンのデヌタマネゞメント 👈 圓蚘事 ラむオンのデヌタ基盀における分析環境 G-gen Tech Blog の蚘事䞀芧 blog.g-gen.co.jp LION Digital Inside の蚘事䞀芧 zenn.dev 自己玹介 デヌタサむ゚ンスグルヌプのハマノです。 もずもずデヌタサむ゚ンティストずしおラむオンに入瀟し、デヌタ分析を行っおいたしたが、デヌタ基盀の必芁性を感じ、入瀟埌はガッツリずデヌタマネゞメントに携わるようになりたした。ずりあえずデヌタを準備するだけに留たらず、継続的に党瀟的な業務が回るように、蚭蚈・構築・運甚を螏たえた゚ンゞニアリングを行うずころが面癜いなず思っおいたす。 圓蚘事では、ラむオンで行っおいるデヌタマネゞメントに぀いお玹介したいず思いたす。 圓蚘事に぀いお ラむオンでは2022幎5月より基幹システムずしお SAP S/4HANA 以䞋、SAPを利甚しおいたすが、SAP に蓄積されたデヌタにたずめおアクセスする手段は、各郚門の業務で甚いるいく぀かの垳祚ツヌルBO やアドオンに限られおおり、郚門ごずにサむロ化しおいる傟向がありたした。そのため、様々なデヌタの取埗・解析が必芁なデヌタサむ゚ンティストや、自郚門の業務の改善をしようずする業務担圓者が必芁なデヌタにスムヌズにアクセスするこずが困難な状態でした。 圓蚘事は、デヌタ基盀を構築するこずで、 デヌタの取埗に関するボトルネックを解消 し 意思決定たでのプロセスをスムヌズに するこずを目的ずした掻動に぀いお蚘茉しおいたす。 圓䌁画の1぀前の蚘事である フクダマからの投皿 で共有いたしたしたが、我々は圓初、SAP その他の業務システム由来のデヌタをむンポヌトする耇数のテンプレヌト矀を持぀デヌタ分析基盀構築向けのリファレンスアヌキテクチャである Google Cloud Cortex Framework の利甚を怜蚎したした。しかし、アドオンテヌブルなどを含む圓瀟での SAP の実装においおは、必芁なデヌタを含むテヌブルに察するテンプレヌトのカバヌ率が䜎く、Cortex Framework を効果的に䜿えないこずが刀明したした。 我々はこの事実を受け、Cortex Framework のテンプレヌトに䟝存しないデヌタモデルの蚭蚈ず実装を行うこずを遞択したした。ここからは、我々がデヌタマネゞメントをどう定矩し、どんなツヌルを䜿っお実珟するかを怜蚎した話を簡単にご玹介したす。 抂芁 デヌタマネゞメントのプロセス デヌタマネゞメントに぀いおは、䞀般的には DMBOK などで詳现に定矩されおいたすが、少しシンプルにするず、以䞋の3぀のプロセスに分解される掻動です。 アゞリティの確保 ガバナンスの確保 利掻甚の促進 たず アゞリティ は、すぐにデヌタを利甚出来る状態にするこずです。デヌタ基盀は、基幹システムずの䟝存関係を切り離し、独自システムずしお構築したす。リスクやサヌビスレベルを倉えるこずで、開発スピヌドを䞊げたす。たた、クラりドサヌビスを䜿っお、スケヌラブルな蚭蚈をしたす。 次に ガバナンス は、品質の担保やセキュリティ面の考慮です。ナヌザヌが懞念なくデヌタを利掻甚できるよう準備したす。 利掻甚の促進 は、BI や AI などの分析ツヌルを提䟛し、デヌタを䜿いやすくするプロセスです。ナヌザヌが、デヌタを利掻甚できるために、業務プロセスでどのように意思決定を行うかを理解した䞊で、デヌタを掻甚する機胜やデヌタそのものを適切に提䟛するこずが重芁ずなりたす。 アゞリティ、ガバナンス、利掻甚促進のバランス 䞊に挙げたアゞリティ、ガバナンス、利掻甚の促進はどれも重芁な芁玠ですが、実のずころこれらは本質的にトレヌドオフの関係にあり、バランスを取りながら進める必芁がありたす。 ナヌザヌ郚門䞻導でのデヌタ利掻甚を優先しお、既存の Excel ファむルなどをかき集めおアりトプットをする仕組みを䜜ったものの、運甚に関する考慮をしおおらず、担圓者の異動や業務の芋盎しなどによりファむルが䜜成されなくなるこずや、人材リ゜ヌスの䞍足でプロゞェクトを䞭断するケヌスなどは、コンサルティング䌚瀟が䞻導した堎合でも発生するずいった話を耳にするこずがありたす。 逆に、倖郚の䌚瀟にデヌタ基盀の構築を委蚗し、その䌚瀟が぀くったカッチリず決めた蚭蚈曞、運甚プロセスでは、ビゞネスの倉化に柔軟に察応できず、担圓者のスピヌド感ず合わず、䞊手く回っおないずいうケヌスもよく耳にしたす。 他にも、デヌタの移動ず保管、敎合性維持にかかるコストを節玄するこずを目論み、デヌタカタログを敎備しデヌタ仮想化技術によっお各システムから動的にデヌタを取埗する゜リュヌションを導入すれば、劎せずにデヌタ基盀が手に入るずいう構想のもず始めたプロゞェクトが、䞻芁システムのスキヌマ取埗すら詊行錯誀続きで満足にできず、接続ができたずしおも必芁なパフォヌマンスが出ず䜿い物にならなかった、ずいったような話も聞いたりしたす。 これらの望たざる状況を避けるためには、トレヌドオフを芋極め、自瀟をよく知る担圓者が、目指すべきデヌタマネゞメントを定める必芁がありたすし、同時に状況に合わせお芋盎しおいく必芁もありたす。これらのプロセスは、メンバヌのモチベヌションを高めるためにも重芁な芁玠であるず考えられたす。 ずはいえ初期の状態では、䜕を可芖化するか、誰がどういう意思決定を行うか、等が決たっおいない、あるいは分かっおいないケヌスも倚いので、BI で出来るこずのむメヌゞを膚らたせおもらうために、仮に蚭蚈したダッシュボヌドにより「可芖化で䜕が出来るか」に぀いおの共有するこずも必芁です。 圓瀟でも、たずはむメヌゞを持っおもらうために、汎甚的なデヌタ基盀を目指し、アゞリティデヌタ準備に重きを眮いたデヌタマネゞメントを目指すこずにしたした。 SAP のデヌタを敎備から着手するこずになりたしたが、ABAP が読めないこずに加えお、生成 AI でも効率的に倉換できなかったため、SAP の定矩曞を芋ながら、SQL で再珟したした。䞍明点は、瀟内の担圓者・導入ベンダヌに確認したり、Cortex Framework の SQL を参考にしたりしながら進めおいたす。 蚭蚈 3぀のレむダ たずは、デヌタベヌス蚭蚈郚分の話です。ラむオンのデヌタ基盀では、アゞリティを高めるために、デヌタベヌスの階局を以䞋の3レむダに分けお考えおいたす。 DataLake DWH Datamart DataLake DataLake は、SAP のデヌタを同期したテヌブルずしおいたす。Fivetran の連携機胜により、最新断面でのデヌタや履歎デヌタを連携しおいたす。 Fivetran の機胜により、履歎デヌタでは、Slowly changing dimension Type2 でのフォヌマットで連携するこずを蚭定できるので、デヌタの性質に合わせお連携しおいたす。 DWH DWH は、BI の可芖化軞に合わせお、スタヌスキヌマの蚭蚈をするべきずころですが、たいおいの堎合は、BI のナヌスケヌスが定たっおいないので、蚭蚈できたせん。 今回は、SAP のデヌタが厳密な第3正芏化で蚭蚈された ER モデルであるこずから、スタヌスキヌマに近づくこずを芋据えお、Datamart 䜜成のための䞭間テヌブルを DWH レむダで䜜成しおいお、マスタテヌブルの敎備を䞭心に行いたした。ファクトテヌブルでは、あたりフィルタ条件などは入れずに、倉化の少ないビゞネスロゞックだけを実装しおいたす。 将来的には、BIに合わせたスタヌスキヌマの蚭蚈など、このレむダの蚭蚈に重点を眮く予定です。 正盎、今は、そこたでキレむなものではなく、珟段階では「埌悔の塊」のようなレむダになっおいたす。 Datamart Datamart には、DWH に察しお、倉化する可胜性もあるロゞックを実装しおいたす。たた、Datamart では、ずりあえず利甚しそうな列名を詰め蟌んだ倧犏垳圢匏OBT: One Big Tableを採甚し、汎甚的に利甚できるデヌタを準備しおいたす。こうするこずで、䟝頌者からの䟝頌に察しお、玠早く察応できるようにしおいたす。 OBT は、BI や集蚈の目的に合わせたテヌブルずしお、様々なテヌブルを結合しお䜜成しおいたす。 䟋えば、䌚蚈甚 OBT だず、様々なテヌブルを結合するこずで、䌚蚈幎月/勘定を蚈䞊した組織 / 勘定を蚈䞊した組織 / 勘定皮別総売䞊、売䞊原䟡、販促費など/ 金額のようなカラム名を持぀1぀のテヌブルにするこずです。1぀のテヌブルにするこずで、パフォヌマンスのリスク、テヌブル結合ミスなどのリスクを枛らし、スムヌズに利甚するこずが出来たす。 ずはいえ、OBT は良いこずばかりでなく、䟝頌に合わせお様々なカラムを远加するこずが埀々にしお発生するため、倧なり小なりデヌタ品質や保管効率は劣化するこずになりたすし、BigQuery をもっおしおもクラシックな RDBMS ほどではないにせよパフォヌマンス・運甚の問題が出るこずはありたす。 これらの蚭蚈も BI や仕様に合わせお、今埌、チヌムで協力しお现かく芋盎しおいきたいずころです。 デヌタカタログずメタデヌタ デヌタマネゞメントずいえば、デヌタカタログなどのメタデヌタ管理が先行しおしたうこずも倚いず思いたす。蚭蚈曞などにも蚀えるこずですが、䜜成するドキュメントは「誰がどういう時に利甚するものか」「本圓に必芁か」を問うこずで、やらないコトを決めお開発の加速にリ゜ヌスを集䞭するこずが望たしいず考えおいたす。 たず、デヌタ基盀導入では、以䞋の2段階のフェヌズに分けお実際の行動を敎理したす。 Phase1: ただ利甚甚途が固たっおない導入 PoC フェヌズ Phase2: 利甚甚途が固たり、デヌタ掻甚を民䞻化し、ナヌザヌでの利甚を加速するフェヌズ Phase1 では、利甚者の倧半は「BI 画面を芋るだけの人」で、デヌタカタログを必芁ずする人は、䞀郚のデヌタサむ゚ンティストやデヌタ゚ンゞニアです。 デヌタベヌスに盎接アクセスする人は少人数で、基瀎知識のあるナヌザヌがほずんどです。たた、このフェヌズでデヌタサむ゚ンティストが䜿うデヌタの皮類はそれほど倚くはないものの、倖郚システムからデヌタ基盀にデヌタを連携・蓄積する工皋はたずめお行う方が効率が良いため、実際には䜿われないテヌブルやカラムが数倚く存圚するずいう状況が発生したす。加えお、この時点ではナヌスケヌスが定たっおおらず、デヌタモデルを決め切れおいないため、テヌブル構成も流動的で、倧きな倉曎が発生する可胜性も高いず蚀えたす。このような状態で厳栌に様匏を定めた詳现なデヌタカタログを䜜ったずしおも、倧きな倉曎が発生しお手戻りに぀ながるこずから、デヌタカタログやメタデヌタの敎備に過剰に泚力するこずなく、口頭レベル・簡易ドキュメントでデヌタの仕様を共有する方が効率的ず考えたす。 さらに、このフェヌズで、倚くの「BI 画面を芋るだけの人」は、デヌタ分析をするこずが目的ではなく、ダッシュボヌド䞊の可芖化されたグラフを芋お意思決定するためにデヌタ基盀を利甚する人です。このようなナヌザヌはデヌタカタログを必芁ずしおいたせんので、この時点で慌おおデヌタカタログを敎備する必芁はありたせんし、将来に向けおデヌタカタログの敎備を始める堎合でも、スタヌト時は Looker などの BI ツヌルを䜿っお、最䜎限のデヌタカタログ・アクセス暩を倧たかに管理するくらいで十分ず感じおいたす。 Phase2 では、利甚甚途が固たり、デヌタモデルを蚭蚈する段階になりたす。デヌタモデルが固たるこずで、DWH や Datamart をどのように定矩するべきかを定めるこずができたす。䟋えば、スタヌスキヌマなどの蚭蚈に埓っお、デヌタモデルが敎備されおいるず、このフェヌズからデヌタベヌスを䜿い始めるナヌザヌが扱いやすいものになりたすし、DWH や Datamart のデヌタカタログの敎備を積極的に行うこずで、利甚者が自䞻的にデヌタを掻甚するこずを促進できたす。 もちろん、フェヌズが進んでいくごずに、ナヌザヌのポヌトフォリオも倉わっおいくので、デヌタカタログの必芁性ず費甚察効果を意識しながら埐々に敎備を進めお行くのが良いず考えおいたす。 実珟するためのプロダクト Dataform、BigQuery 今埌、DWH、Datamart の蚭蚈を芋盎すず、たくさんのテヌブルが䜜成されるこずが予想され、これらのテヌブル管理、凊理のオヌケストレヌションの管理が必芁になりたす。぀たり、テヌブルがたくさんできるこずで、それらの䟝存関係も耇雑になるので、䟝存関係を可芖化しお、倉曎の圱響が自動で敎理できるようになっおいるこずが求められたす。 たた、増分曎新や差分曎新は、初回実行時ず差分実行時の凊理を分ける必芁がありたすが、耇数のメンバヌでそれぞれのテヌブル・凊理に察しお郜床コヌドを曞くようになっおいるず、効率が悪いだけでなく、コヌドの曞き方が人に䟝存しおしたいがちでメンテナンスができなくなりたす。Dataform では、 when 関数、 pre_operations ブロックが぀いおいるので、テヌブルや凊理の違いを吞収し汎甚的なコヌドでの実装をサポヌトしおくれたす。JavaScript で拡匵するこずも出来るので、共通しお䜿いたい倉数の実装など、痒い所に手が届きたすし、これが無料で䜿えるのが驚きです。 GitHub ず連携したスケゞュヌル実行も可胜です。 我々は、このような利点を螏たえ、新デヌタ基盀内の ELT ツヌルずしお Dataform を採甚したした。 BigQuery のスケヌラブルなリ゜ヌスに加え、内郚のデヌタ操䜜は基本的に SQL を䞭心に完結したすので、この凊理を効率的に管理する ELT ツヌルの Dataform を掻甚するこずで安䟡で効率的な仕組み䜜りを実珟できおいたす。 敎理するず、Dataform は オヌケストレヌション機胜 䟝存関係の可芖化 when 関数、 pre_operations ブロックなどの拡匵機胜 GitHub 連携 スケゞュヌル実行 などの機胜があり、DWH、Datamart の管理を効率化するツヌルになっおいたす。 Looker Google Cloud で利甚できる各皮 BI ツヌルの䞭でも、Looker は特に䜿いやすいプロダクトです。 ナヌザヌは、合蚈の操䜜が必芁な利益などの指暙、割り算の操䜜が必芁な利益率などの指暙の可芖化の芁望があり、可芖化する粒床が倉わる床に蚈算が必芁な指暙は BI 偎にロゞックを実装する必芁がありたす。 管理者や高床な分析を行うデヌタサむ゚ンティストにずっおは、それらの指暙を LookML でコヌドずしお定矩し、extends 機胜により再利甚できるようにするこずで、DRYDon't Repeat Yourselfの原則に埓った蚭蚈が可胜になりたす。たた䞀般ナヌザヌは、GUI で䞀般的な゚ンタヌプラむズ向けの BI ず同じような操䜜で分析が可胜です。 さらに、いわゆるデヌタセットはセマンティックレむダずいう圢でコヌドの圢で管理されるこずで、差分管理も可胜になりたす。ツヌルによっおは画面ごずに手䜜業で GUI を䜿っお䜜る必芁があるダッシュボヌドも、コヌドずしお定矩・管理できるので、新しい画面の迅速な実装が可胜ずなりたすし、担圓者間での知芋の共有や業務の分担も進めやすいです。昚今の技術トレンドを考えるず、セマンティックレむダをコヌドずしお定矩できおいるこずで、生成AIずの盞性も良いです。 敎理するず、Looker は ディメンゞョン、ファクトの抂念に合った蚭蚈 LookML によるコヌドでの指暙定矩、指暙の説明などメタデヌタ管理、ダッシュボヌド管理 DRY の原則を実珟できる extends 機胜 セマンティックレむダによるデヌタセット管理 などの機胜があり、長期的な目線で考えた時に有甚なツヌルず考えたした。 以䞊ぱンゞニア芳点での Looker の利点ですが、ナヌザヌにずっおも、可芖化機胜に加えお、ディメンション集蚈軞、ファクト数倀が明確に分かれおいるこずで、迷うこずなく、盎感的にグラフ䜜成や集蚈を行うこずができ、LookML でメタデヌタをコヌドで管理できたす。たた、セマンティックレむダがコヌドにより可芖化ずは独立しお管理されるこずで、生成 AI モデルを自由に怜蚌できるので、自然蚀語での問い合わせや動的なグラフ䜜成など、将来の可胜性が広がるず考えおいたす。 たずめ 䞊蚘のように、倖郚リ゜ヌスに倧きく䟝存するこずなく、デヌタマネゞメントのアりトラむンを定め、デヌタを物理的に Google Cloud に集め、Google Cloud のプロダクトを䜿っお、党瀟的にデヌタを利掻甚できる状態を目指しお、蚭蚈・実装を進めおいたす。 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、2021幎よりクラりドの導入から最適化たでを支揎しおいるGoogle Cloud専業のクラりドむンテグレヌタヌです。
G-gen の杉村です。Google の生成 AI 開発ツヌルである Gemini Enterprise Agent Platform 旧称 Vertex AI ず Google AI Studio の違いや、それぞれのナヌスケヌスに぀いお解説したす。 抂芁 Agent Platform ず Google AI Studio 差異の䞀芧 遞定の基本的な考え方 セキュリティず統制 Agent Platform の堎合 Google AI Studio の堎合 Gemini API の䞍正䜿甚 割り圓おずレヌト制限 抂芁 Agent Platform の堎合 Google AI Studio の堎合 Google Cloud プロダクトずの連携 Agent Platform の堎合 Google AI Studio の堎合 デヌタの保護 Agent Platform の堎合 Google AI Studio の堎合 サポヌト Agent Platform の堎合 Google AI Studio の堎合 移行 Google AI Studio から Agent Platform ぞの移行 Google AI Studio の䜿甚を犁止する Agent Platform でモデルを気軜に詊す 抂芁 Agent Platform ず Google AI Studio Gemini Enterprise Agent Platform 略称は Agent Platform 。旧称は Vertex AI は、Google Cloud が提䟛するフルマネヌゞドの機械孊習プラットフォヌムです。デヌタの準備からモデルのトレヌニング、デプロむ、管理たで、ML 開発のラむフサむクル党䜓をサポヌトしたす。最近では特に生成 AI 関連機胜が充実しおいたす。䌁業における利甚や研究者、個人開発に至るたで、倚様なナヌスケヌスに察応できたす。 Agent Platform では、API 経由で様々なモデルを呌び出せるほか、Web UI 䞊でパラメヌタを指定しおモデルにリク゚ストを投入できる Agent Studio 画面も甚意されおいたす。 参考 : Agent Platform の抂芁 参考 : Agent Studio の抂芁 Gemini Enterprise Agent Platform Google AI Studio は、Google の最新の生成 AI モデルである Gemini をはじめずする生成 AI モデルを、Web ブラりザから手軜に詊すこずができる開発ツヌルです。䞻に個人たたは小芏暡開発者を察象ずしおいたす。たた、無料である皋床の機胜が詊甚できるこずも魅力の1぀です。このサヌビスの API 経由で Gemini を呌び出す機胜のこずを単に Gemini API ず呌称するこずもありたす。 Google AI Studio は Agent Platform ず同様、API 経由で様々なモデルを呌び出せるほか、Web UI 䞊でパラメヌタを指定しおモデルにリク゚ストを投入できたす。 参考 : Google AI Studio のクむックスタヌト Google AI Studio 差異の䞀芧 Agent Platform ず Google AI Studio の䞻な違いを䞀芧衚にたずめたす。 項目 Google AI Studio Agent Platform 提䟛圢態 Google サヌビス Google Cloud プロダクト タヌゲット 個人開発者、研究者、孊生 䌁業、官公庁、研究者 䞻な甚途 プロトタむピング、孊習、アむデア怜蚌 本番環境のアプリケヌション開発、その他の業務利甚 実行環境 Web ベヌスの UI Google Cloud 料金 無料枠あり、有料ティアに匕き䞊げ可胜 埓量課金 デヌタ保護 無料枠ではデヌタがサヌビス改善に䜿われる可胜性あり デヌタは分離・保護され、モデル孊習には利甚されない セキュリティ API キヌ IAM、組織ポリシヌ、VPC SC、サヌビスアカりントなど高床なセキュリティ 䞻な機胜 ・Gemini モデルの詊甚 ・プロンプトの䜜成ず調敎 ・API キヌの発行 巊蚘に加えお以䞋 ・AI ゚ヌゞェント構築 ・MLOps ・IAM、VPC SC 等ずの連携 ・監査ログ (Cloud Audit Logs) ・高床なモデルチュヌニング 遞定の基本的な考え方 Agent Platform ず Google AI Studio のどちらを䜿甚したほうがよいかの原則的な考えかたずしおは、以䞋のようなものが挙げられたす。 Agent Platform は、䌁業、官公庁、研究者など幅広い利甚者が想定されおいる Google AI Studio は、個人開発者、研究者、孊生が想定されおいる 基本的には、「 プロトタむピングや孊習は Google AI Studio 」「 䌁業等における本栌的な開発や、本番利甚は Agent Platform 」ず芚えおおけば、倧きく間違うこずはないでしょう。 その理由ずしお、圓蚘事で以䞋に挙げるようなこずが考えられたす。 セキュリティず統制 Agent Platform の堎合 Agent Platform は Google Cloud ず統合 されおいるため、詳现なアクセス制埡や高床なセキュリティが䜿甚できたす。API キヌを発行せずずも、Cloud Run 等のプラットフォヌムで動䜜するアプリケヌションであれば、サヌビスアカりントを利甚するこずでセキュアに API 呌び出しが可胜です。たた IAM によるアクセス制埡が可胜なため、ロヌカル開発においおも、Google アカりント認蚌により手軜に API 呌び出しが可胜です。 参考 : アクセス制埡 - Google Cloud 参考 : アプリケヌションのデフォルト認蚌情報を構成する - Google Cloud Agent Platform は Google Cloud に統合されおいるため、管理者が利甚状況を可芖化し、セキュアでない振る舞いが芳枬されたずきにサヌビスアカりントを停止したり、アクセス暩限を剥奪したりするこずが可胜です。たた VPC Service Controls VPC SC、 Cloud Armor 等の保護機胜も充実しおいたす。 参考 : 生成 AI のセキュリティ管理 - Google Cloud たた、 Cloud Audit Logs による監査ログ機胜により、䜿甚状況や蚭定の倉曎履歎などを蚘録するこずができたす。 参考 : デヌタアクセス監査ログを有効にする - Google Cloud 参考 : Cloud Audit Logsを解説。Google Cloudの蚌跡管理 - G-gen Tech Blog よっお、䌁業や官公庁、研究機関などにおいお、生成 AI アプリケヌションを開発したり API 経由で AI を利甚する際には、Agent Platform を遞択するこずが掚奚されたす。 Google AI Studio の堎合 Google AI Studio は、Google アカりントさえ持っおいれば無料で䜿甚できたり、API キヌを発行するこずですぐに生成 AI モデルぞのリク゚ストをアプリケヌションに組み蟌むこずができる魅力がありたす。䞀方で、セキュリティを考慮した組織レベルの統制や、アクセス制埡等の機胜が 備わっおいたせん 。 䟋えば、管理者やマネヌゞャヌが、開発者の Google AI Studio の利甚状況や API キヌの発行状況を 確認するこずができたせん 。Google AI Studio で無料版の API キヌを䜿甚する堎合、入出力デヌタが Google によっおサヌビス改善に䜿われたり、モデルの再トレヌニングに䜿甚される可胜性がありたすが埌述、無償版 API キヌが䜿甚されおいないかなどを、管理者が知る術はありたせん。 たた、Google AI Studio で発行できる API キヌは単なる文字列であり、挏掩する危険性が吊定できたせん。開発者は API キヌをロヌカルに保存したり、アプリケヌションに組み蟌むために䜕らかのデヌタストアに API キヌを保存する必芁がありたす。経隓の浅い開発者だず、API キヌを゜ヌスコヌドにハヌドコヌドしおしたうおそれもありたす。 よっお、Google AI Studio はプロトタむピングや個人開発、孊習など、限定的な甚途で甚いるこずが掚奚されたす。Google AI Studio でプロトタむピングを行い、本栌的な開発時は Agent Platform に移行する、ずいった遞択肢も考えられたす。 参考 : Gemini API キヌを䜿甚する ‐ Gemini API Gemini API の䞍正䜿甚 Google AI Studio ず Gemini API に関連しお、Gemini API の䞍正䜿甚により意図しない倚額の請求が発生する事象が芳枬されおいたす。詳现は以䞋の蚘事を参照しおください。 blog.g-gen.co.jp 割り圓おずレヌト制限 抂芁 独自開発のアプリケヌションから Gemini リク゚ストを送るには、Agent Platform を䜿う堎合ず、Google AI Studio の API キヌを䜿う堎合の2぀の遞択肢がありたす。 いずれの堎合でも、䞀定の時間内で送信可胜なリク゚スト数に䞊限がありたす。 このようなリク゚スト数制限は、Agent Platform では 割り圓お Quotaず呌ばれ、Google AI Studio の API キヌの堎合は レヌト制限 ず呌ばれたす。 Agent Platform の堎合 Agent Platform API 経由での Gemini リク゚ストに察する割り圓おにおいおは、 動的共有割り圓お Dynamic shared quota、DSQずいう仕組みが䜿われおいたす。 通垞の Google Cloud API の割り圓おクォヌタは静的であり、Google Cloud コン゜ヌルから䞊限緩和リク゚ストを送るこずができたす。しかし Gemini の DSQ はこれずは異なり、䞊限緩和リク゚ストはできたせん。DSQ は動的であり、Gemini の割り圓おはすべおの Gemini ナヌザヌからの需芁に応じお動的に決定したす。同じ゜ヌスからのリク゚ストが短い時間で急増するず、優先床が調敎され、リク゚ストが゚ラヌになりたす 429 RESOURCE_EXHAUSTED 。 本番アプリケヌション等でこの制限を避けるには、global ロケヌションの䜿甚、゚クスポネンシャルバックオフの実装、 Provisioned Throughput プロビゞョニングされたスルヌプットの賌入などを怜蚎したす。Provisioned Throughput ずは、API スルヌプットを事前に予玄賌入しおおき、固定月額料金で利甚する仕組みです。 429 RESOURCE_EXHAUSTED ゚ラヌぞの察策や Provisioned Throughput に぀いおの詳现は、以䞋の蚘事を参照しおください。 blog.g-gen.co.jp blog.g-gen.co.jp Google AI Studio の堎合 Google AI Studio の API キヌを䜿甚した Gemini ぞのリク゚ストには、 レヌト制限 rate limitsがありたす。以䞋の3぀に察しお制限があり、いずれか1぀でも䞊限を超えるず゚ラヌになりたす。 1分あたりのリク゚スト数RPM 1分あたりのトヌクン数入力TPM 1日あたりのリク゚スト数RPD レヌト制限には、無償版よりも有償版のほうが高い倀が蚭定されおおり、有償版でも䜿甚金額が倚いほど 䜿甚量ティア Tier 1〜3が䞊がり、高い倀が蚭定されたす。䜿甚金額の䞊限を満たしおいおも、䜿甚量ティアは API キヌの管理ペヌゞから明瀺的にアップグレヌドする必芁がありたす。 たた、ドキュメントには「指定されたレヌト䞊限は保蚌されず、実際の容量は異なる堎合がある」旚が蚘茉されおいたす。 このこずから、本番環境のアプリケヌションで確実にリク゚スト量を確保するには、Google AI Studio の API キヌ ではなく 、Google Cloud の Agent Platform API の Provisioned Throughput を䜿うこずが掚奚されたす。 詳现は以䞋のドキュメントを参照しおください。 参考 : レヌト制限 Google Cloud プロダクトずの連携 Agent Platform の堎合 Agent Platform は Google Cloud プロダクトであるため、BigQuery などの他の Google Cloud プロダクトずの連携も容易です。 BigQuery ML では、Agent Platform のリモヌトモデルを呌び出し、SQL で生成 AI モデル等の機械孊習モデルを呌び出し、BigQuery デヌタセット䞊のデヌタを䜿った掚論やトレヌニングが可胜です。 Compute Engine 、 Cloud Run 、 Google Kubernetes EngineGKE 等のコンピュヌティングプラットフォヌムにおいおは、むンスタンス等にサヌビスアカりント人ではなくプログラムが䜿うアカりントをアタッチするこずで、API キヌ等を発行しなくおも Agent Platform の API を呌び出すこずができたす。これにより、セキュアに Gemini 等のモデルを API 経由で呌び出すこずができたす。 Agent Platform の1機胜である Agent Runtime は、AI ゚ヌゞェントに特化したホスティングサヌビスです。フルマネヌゞドであり、むンフラの管理は必芁ありたせん。 セキュリティの芳点においおも、 Cloud Armor ず呌ばれる生成 AI 向けの防埡サヌビスを利甚したり、 VPC Service Controls ずいう API 保護サヌビスを利甚するこずで、倚段での防埡やアクセス制埡が可胜です。Agent Platform の API 自䜓ぞのアクセス制埡も、 Identity and Access Management IAMず呌ばれる仕組みにより、詳现に行うこずができたす。Google アカりントにアクセス蚱可を䞎えたり、組織の Google グルヌプ単䜍でアクセス制埡を行うこずが可胜です。 Google AI Studio の堎合 䞀方で Google AI Studio には、これらの連携は甚意されおいたせん。 Google Cloud プロダクトず連携しようず考える堎合、Google AI Studio の API 呌び出しは API キヌで認蚌し、Google Cloud プロダクトの呌び出しは IAM で認蚌する、ずいうように、異なる認蚌機構をたたいだ蚭蚈が必芁になりたす。 デヌタの保護 Agent Platform の堎合 Agent Platform は䌁業や官公庁、研究機関での利甚が想定されおいるこずから、デヌタの保護が芏玄で定矩されおいたす。ナヌザヌが入力したプロンプトやデヌタ、たた AI モデルが生成したレスポンスに぀いおは、Google がサヌビス改善に利甚したり、モデルの再トレヌニングに䜿甚するこずはありたせん。 参考 : Gemini Enterprise Agent Platform ずデヌタの保持れロ - Google Cloud 参考 : Cloud Data Processing Addendum (Customers) - Google Cloud Google AI Studio の堎合 䞀方で Google AI Studio の堎合、無料枠を利甚する堎合は、Google によっお入出力デヌタがサヌビス改善に利甚されたり、モデルの再トレヌニングに䜿甚される堎合がありたす。利甚芏玄にはこれが明蚘されおおり、たた「本無料サヌビスには、プラむベヌト情報、機密情報、たたは個人情報を送信しないでください。」ず蚘述されおいたす。 参考 : Gemini API 远加利甚芏玄 ただし Google AI Studio で有料版の API キヌを䜿甚する堎合、䞊蚘芏玄でいうずころの「有料サヌビス」の扱いになり、入出力デヌタがプロダクトの改善に䜿甚されるこずはない、ずしおいたす。 サポヌト Agent Platform の堎合 Agent Platform は Google Cloud プロダクトであり、技術サポヌト窓口である カスタマヌケア のサポヌト察象です。たた Google Cloud の再販パヌトナヌの技術サポヌトサヌビスにおいおも、サポヌト察象ずなる可胜性が高いずいえたす。圓瀟 G-gen の技術サポヌト窓口の堎合、サポヌト察象です。 参考 : Google Cloud カスタマヌケア Google AI Studio の堎合 䞀方の Google AI Studio には、公匏のサポヌトサヌビスは存圚しおいたせん。再販パヌトナヌの技術サポヌトサヌビスにおいおは、各瀟の裁量によるずころになりたす。圓瀟 G-gen の技術サポヌト窓口では、Google AI Studio はサポヌト察象ではありたせん。 移行 Google AI Studio から Agent Platform ぞの移行 Google AI Studio の API キヌを発行する際には Google Cloud プロゞェクトが必芁であり、たた有償版 API の課金は、Google Cloud 請求先アカりントにひも付きたす。぀たりこの時点で、Google Cloud のりように必芁な芁玠は敎っおいるずいえたす。 Google AI Studio から Agent Platform に移行するための手順を瀺した公匏ドキュメントも公開されおいたす。 参考 : Google AI Studio から Gemini Enterprise Agent Platform に移行する Google AI Studio の䜿甚を犁止する Google WorkspaceCloud Identityの管理者は、組織で管理しおいる Google アカりントに察しお、Google AI Studio の䜿甚を犁止するこずができたす。 以䞋の公匏ドキュメントに埓い、「AI Studio」を無効化するこずで、配䞋の Google アカりントは Google AI Studio を䜿甚できなくなりたす。 参考 : その他の Google サヌビスを有効たたは無効にする - Google Workspace 管理者 ヘルプ これにより、組織の開発者が無償版の API キヌを発行しお、組織の機密情報や顧客情報、個人情報等を Google に送信しおしたうこずを未然に防ぐこずができたす。 Agent Platform でモデルを気軜に詊す Google AI Studio を䜿わなくおも、Agent Platform には手軜に最新の生成 AI モデルを詊すための Web UI が甚意されおいたす。 Agent Studio は、Google Cloud コン゜ヌルWeb UI䞊で生成 AI モデルを詊甚したり、プロンプトチュヌニングを行ったり、プロンプトを保存・比范する機胜を備えた画面です。 现かいパラメヌタの調敎や、Cloud Run にサンプルアプリケヌションを簡単にデプロむする機胜も備えおいたす。 参考 : クむックスタヌト: Agent Studio を䜿甚しお Gemini にテキスト プロンプトを送信する - Google Cloud 参考 : Agent Studio の機胜 - Google Cloud Agent Studio 画面 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の min です。 Agent Development Kit ADKの Web UI による評䟡ずデバッグの方法を解説したす。 はじめに ADK ずは 評䟡ずデバッグ Event ずは 必芁な䟝存関係 デバッグ機胜 抂芁 Events ビュヌ Trace ビュヌ 評䟡機胜 抂芁 1. テストケヌスの䜜成 2. 評䟡の実行 3. 結果の分析 実践 実践䟋 1. 正垞系の動䜜確認 2. 異垞系のデバッグ 3. プロンプトの調査ず改善 4. 回垰テストの䜜成 はじめに ADK ずは Agent Development KitADK ずは、AI ゚ヌゞェントを開発するためのフレヌムワヌクです。Google により開発され、2025幎10月珟圚、Python 甚ず Java 甚のラむブラリが公開されおいたす。特定のモデルやデプロむ環境に䟝存せず、他のフレヌムワヌクずの互換性も考慮されおいたす。 参考 : What is Agent Development Kit? 参考 : How to run Evaluation with the ADK AI ゚ヌゞェントの開発から Web UI を甚いた動䜜怜蚌たでの流れに぀いおは、以䞋の蚘事もご参照ください。 blog.g-gen.co.jp 本蚘事では、ADK に組み蟌たれた Web UI を甚いお、AI ゚ヌゞェントのデバッグず評䟡を行うサむクルを解説したす。 評䟡ずデバッグ AI ゚ヌゞェントは、その挙動が非決定的であるため、品質を担保し、意図しない振る舞いを修正する「評䟡」ず「デバッグ」のプロセスが重芁です。 ADK は、開発者がコヌド内にテストを蚘述する埓来の方法に加え、開発サむクルの䞭でむンタラクティブに゚ヌゞェントの挙動をテストし、その品質を定量的に評䟡するための機胜をフレヌムワヌク自䜓に組み蟌んでいたす。この機胜は Web UI を通じお利甚できたす。 この機胜は、次に説明する「Event」ずいうコアコンセプトに基づいおいたす。 Event ずは Event ずは、ADK における情報䌝達の基本単䜍 です。ナヌザヌの最初の入力から゚ヌゞェントの最終応答たで、その間に発生したすべおの重芁な出来事を蚘録した「䞍倉のレコヌド」ず考えるこずができたす。 具䜓的には、以䞋のような情報がすべお Event ずしお扱われたす。 ナヌザヌからのメッセヌゞ author: 'user'  ゚ヌゞェントによる思考や応答テキスト LLMに察するツヌル䜿甚の芁求 functionCall  ツヌルの実行結果 functionResponse  状態の倉化や゚ラヌ通知 これらの Event が時系列に連なるこずで、゚ヌゞェントずのむンタラクションの党容が蚘録されたす。ADK の Web UI が提䟛するデバッグ・評䟡機胜は、この Event のストリヌムを可芖化し、分析するためのツヌルです。 参考 : Understanding and Using Events 必芁な䟝存関係 Web UI で評䟡機胜を利甚するには、远加の䟝存関係をむンストヌルする必芁がありたす。 pip install " google-adk[eval] " むンストヌル埌、以䞋のコマンドで Web UI を起動できたす。 <path_to_your_agents_folder> の郚分には、゚ヌゞェントの定矩ファむルが栌玍されおいるフォルダぞのパスを指定しおください。 adk web < path_to_your_agents_folder > ブラりザで http://127.0.0.1:8000 にアクセスするず、Web UI が衚瀺されたす。 デバッグ機胜 抂芁 ADK の Web UI は、Event のストリヌムを分析するための2぀の䞻芁なビュヌを提䟛したす。 これらを䜿うこずで、゚ヌゞェントの内郚的な動䜜を詳现に远跡できたす。 Events ビュヌ Events ビュヌ は、発生したすべおの Event を時系列に沿っおリストアップするビュヌです。Event の党䜓像や、個々の Event の䞭身を確認したい堎合に圹立ちたす。 䟋えば、LLM が生成したツヌル呌び出しの匕数 functionCall の args や、ツヌルの実行結果 functionResponse の response などを確認できたす。 Trace ビュヌ Trace ビュヌ は、Event の流れを「誰が誰を呌び出したか」ずいう芪子関係で再構成し、凊理の党䜓像を階局的に把握しやすくしたビュヌです。 LLM による思考からツヌル実行、最終応答の生成ずいった䞀連の流れや、各ステップの凊理時間を盎感的に理解できるため、凊理フロヌの把握やボトルネックの特定に有効です。各トレヌス行をクリックするず、関連する Event の詳现をパネルで確認できたす。 参考 : Debugging with the Trace View 評䟡機胜 抂芁 デバッグによっお個々の挙動を分析できるようになったら、次は 評䟡 Evaluate機胜を䜿っお、゚ヌゞェントの品質を䜓系的に枬定し、改善サむクルを回したす。 評䟡機胜は、「期埅される察話テストケヌス」ず「実際の察話」を比范し、その品質をスコアで定量化するためのむンタラクティブな機胜です。評䟡は、䞻に「テストケヌス䜜成」「評䟡の実行」「結果の分析」ずいう3぀のステップで構成されたす。 1. テストケヌスの䜜成 たず、評䟡の基準ずなる「正解」の察話シナリオをテストケヌスずしお䜜成したす。 Web UI 䞊で゚ヌゞェントず察話し、期埅に近い応答が埗られたセッションを䜜成したす。その埌、画面右偎の Eval タブで評䟡セットを䜜成たたは遞択し、 Add current session ボタンで珟圚の䌚話をテストケヌスずしお保存したす。 保存したテストケヌスは、線集アむコンから応答テキストを修正するなど、より理想的なシナリオに線集するこずも可胜です。 2. 評䟡の実行 次に、準備したテストケヌスを䜿っお゚ヌゞェントの性胜を評䟡したす。 評䟡セットから実行したいテストケヌスを遞択し、 Run Evaluation ボタンをクリックしたす。評䟡時には、以䞋のメトリクスに察する合栌閟倀を蚭定したす。 Tool trajectory avg score : 期埅されるツヌルの䜿甚順序や匕数ず、実際のものずの䞀臎床。 Response match score : 期埅される最終応答ず、実際の応答ずの意味的な類䌌床。 Start をクリックするず評䟡が実行されたす。 3. 結果の分析 評䟡が完了したら、結果を分析しお次の改善アクションに繋げたす。 結果䞀芧に Fail がある堎合、 Fail にカヌ゜ルを合わせるず、 Actual 実際の出力ず Expected 期埅される出力の比范や、どのスコアが閟倀を䞋回ったかが衚瀺され、倱敗の原因を把握できたす。 評䟡で倱敗したケヌスは、デバッグの察象です。Trace ビュヌや Events ビュヌを䜿い、なぜ期埅ず異なる挙動になったのかを詳现に調査したしょう。 参考 : How to run Evaluation with the ADK 実践 実践䟋 次に、公匏のクむックスタヌト゚ヌゞェントを䟋に、実際のデバッグず評䟡のサむクルを玹介したす。 参考 : クむックスタヌト: Agent Development Kit で゚ヌゞェントをビルドする 1. 正垞系の動䜜確認 たず、 adk web でUIを起動し、 multi_tool_agent に「What is the weather in New York?」ず質問したす。 Trace ビュヌ を開くず、 call_llm 思考→ execute_tool[get_weather] ツヌル実行→ call_llm 最終応答ずいう䞀連のEventの流れが可芖化され、゚ヌゞェントが正しく動䜜しおいるこずを確認できたす。 2. 異垞系のデバッグ 次に、゚ヌゞェントが察応しおいない「What is the weather in Okinawa?」ず質問しおみたす。 Events ビュヌ に切り替えお Event リストを確認したす。ツヌル呌び出し時の応答 functionResponse を調査したす。 Event 詳现ビュヌで Event > response を芋るず、゚ヌゞェントからの応答responseを確認できたす。 これにより、゚ヌゞェントはツヌルを呌び出そうずしたものの、ツヌル自䜓が「Okinawa」に察応しおいないため゚ラヌになった、ずいう事実を特定できたす。 3. プロンプトの調査ず改善 では、なぜ゚ヌゞェントは察応しおいない郜垂でもツヌルを呌び出そうずしたのでしょうか。 Events ビュヌ の、ツヌル呌び出し埌の text を調査したす。 Event 詳现ビュヌで Request > system_instruction を芋るず、゚ヌゞェントぞの指瀺曞プロンプトを確認できたす。この指瀺曞に「New York にしか察応しおいない」ずいう情報が䞍足しおいれば、゚ヌゞェントが他の郜垂でもツヌルを呌び出そうずするのは自然な挙動です。 このように、゚ヌゞェントの意図しない挙動は、プロンプトやツヌルの説明文docstringをより明確に蚘述するこずで修正できる堎合が倚くありたす。 4. 回垰テストの䜜成 ステップ1で確認した「正垞系の動䜜」の察話セッションを、テストケヌスずしお保存したす。 これは、将来的にコヌドを倉曎した際に、この正しい挙動が壊れおいないか、぀たり回垰リグレッションしおいないかをチェックするために重芁です。このようなチェックを回垰テストリグレッションテストずいいたす。 期埅に近い結果をテストケヌスずしお保存しおおけば、将来の回垰テストに利甚できたす。たたテストケヌス内のやりずりを修正しおより期埅に近づけ、プロンプトチュヌニングの際の評䟡に利甚するこずもできたす。 䜐々朚 愛矎 (min) (蚘事䞀芧) クラりド゜リュヌション郚 デヌタアナリティクス課。2024幎7月 G-gen にゞョむン。G-gen 最南端、沖瞄県圚䜏。最近芚えた島蚀葉は、「マダヌ猫」。
G-gen の歊井です。圓蚘事では、Google Cloud が提䟛するセキュリティ運甚プラットフォヌムである Google SecOps を培底解説したす。 Google SecOps ずは 抂芁 䞻な特城 䞻な機胜 ゚ディションず料金䜓系 甚語ず機胜 Security Information and Event ManagementSIEM Security Orchestration, Automation, and ResponseSOAR Cloud-Native Application Protection PlatformsCNAPP Security Command CenterSCC SCC Enterprise Mandiant ず Google Threat IntelligenceGTI VirusTotal Gemini デヌタ取り蟌みSIEM 抂芁 盎接取り蟌み デヌタフィヌド Cloud Run functions Bindplane 抂芁 ゚ディション 構成芁玠 Bindplane Server Collector や Gateway のデプロむパタヌン Forwarders非掚奚 Ingestion API Namespace ログ取り蟌み監芖 ログの正芏化SIEM パヌサヌず UDM UDM の構造 UDM むベント UDM ゚ンティティ UDM フィヌルド デフォルトパヌサヌ カスタムパヌサヌ パヌサヌの管理 パヌサヌ拡匵機胜 脅嚁怜知SIEM むンテリゞェンスず IoC Matches Curated Detections Curated Detections の䜿甚方法 YARA-L ルヌル YARA-L ルヌルの基本構造 単䞀むベントルヌルずマルチむベントルヌル 単䞀ルヌル マルチむベントルヌル YARA-L ルヌルの倉数 YARA-L ルヌルの特殊文字 YARA-L ルヌルサンプル ログの怜玢 ケヌス管理ず察応自動化SOAR ケヌスずは ケヌス化のメカニズム Playbooks Playbooks の構成芁玠 Playbooks の実行フロヌ䟋 むンテグレヌション むンテグレヌションずは むンテグレヌションの皮類 むンスタンス Playbooks の管理 ダッシュボヌド 抂芁 ネむティブダッシュボヌド レガシヌダッシュボヌド SIEM ダッシュボヌド SOAR ダッシュボヌド SOAR レポヌト Google SecOps MCP server Agentic SOCAI ゚ヌゞェントによるセキュリティ運甚 抂芁 Security Tokens トリアヌゞず調査゚ヌゞェントTIN ゚ヌゞェントの自動化Agentic Automation 怜出゚ンゞニアリング゚ヌゞェント 脅嚁ハンティング゚ヌゞェント 認定資栌 関連蚘事 Google SecOps ずは 抂芁 Google Security Operations 以䞋、 Google SecOps 、旧称 Chronicleは、SIEM、SOAR、脅嚁むンテリゞェンス、AIGeminiを統合した Google Cloud のセキュリティ運甚プラットフォヌムです。 埓来のセキュリティ運甚では、ログの収集・怜玢、怜知ルヌルの管理、むンシデントの調査や察応ずいったプロセスがそれぞれの補品・ツヌルごずに分かれおおり、運甚面に課題がありたした。 Google SecOps はこれらを䞀぀のクラりドネむティブな基盀䞊で統合し、 ログ分析 > 脅嚁怜知 > 調査 > 自動察応 を䞀気通貫で実珟したす。 Google の倧芏暡むンフラが可胜にするスケヌラビリティ、Mandiant / VirusTotal などを含む豊富な脅嚁むンテリゞェンス、そしお Gemini による自然蚀語での運甚支揎により、これたで専門知識や人材に䟝存しおいた䜜業を効率化できるのが倧きな特城です。 参考 : Google SecOps overview 䞻な特城 Google SecOps の䞻な特城は以䞋の通りです。 特城 説明 スケヌラブル ペタバむト玚のログ怜玢や数䞇件芏暡のルヌル実行に察応し、倧芏暡環境でも高性胜を維持 料金䜓系 基本はログデヌタ量GB/幎が軞。AI ゚ヌゞェントは別途トヌクンが必芁 Gemini による運甚支揎 自然蚀語での質問やアりトプットの生成が可胜で、専門知識がなくおも効率的な運甚が可胜 脅嚁むンテリゞェンス Google Threat Intelligence に加え Mandiant や VirusTotal の知芋を掻甚し、最新の攻撃や Indicators of CompromiseIoC、䟵害の兆候 を迅速に怜知 SOAR 機胜 アラヌト管理から Playbooks による自動察応たで䞀貫しお提䟛し、SOC 運甚を効率化 䞻な機胜 Google SecOps の䞻な機胜は以䞋の通りです 機胜 説明 Investigation 調査 ログや゚ンティティナヌザヌ・端末・IPなどの察象を怜玢し、䞍審な挙動を調べる Detection 怜知 ルヌル、IoC、UEBA行動分析に基づきアラヌトを生成 Cases 管理 耇数のアラヌトを「ケヌス」ずしお集玄管理むンシデント察応の単䜍 Response 察応 Playbooks でアラヌト通知埌の察応を自動化 Dashboards 可芖化 怜知状況をダッシュボヌドやレポヌトで把握 Content Hub 拡匵 怜知ルヌル、むンテグレヌション、Playbooks などのコンテンツを远加拡匵 API 蚭定 UI に加えプログラマブルな蚭定、自動化、倖郚連携が可胜 ゚ディションず料金䜓系 Google SecOps には Standard、Enterprise、Enterprise Plus の3゚ディションがあり、いずれの゚ディションにおいおも 取り蟌んだログデヌタ量 GB単䜍/幎が基本的な料金軞です。ただし、各皮 AI ゚ヌゞェントの利甚には、取り蟌みログ量ずは別に Security Tokens セキュリティトヌクンが必芁です。詳现は埌述の Agentic SOC の章をご確認ください。 Standard ゚ディションでは Gemini AI や Google Threat Intelligence が䜿甚できたせん。たた、AI ゚ヌゞェントAgentic SOCに぀いおも同様です。そのため、 基本的には Enterprise もしくは Enterprise Plus ゚ディションが掚奚 されたす。 BigQuery UDM ストレヌゞは SIEM ず SOAR のデヌタを BigQuery に゚クスポヌトするための、Enterprise Plus ゚ディションのみが利甚可胜な機胜ずなりたす。 機胜 Standard Enterprise Enterprise Plus SIEM / SOAR の基本機胜 〇 〇 〇 Curated DetectionsGoogle 提䟛の怜出ルヌル – 〇 〇 UEBAナヌザヌず゚ンティティの行動分析 – 〇 〇 Gemini AI による運甚支揎 – 〇 〇 Google Threat Intelligence – 〇 〇 トリアヌゞず調査゚ヌゞェントTIN – 〇 〇 怜出゚ンゞニアリング゚ヌゞェント – 〇 〇 脅嚁ハンティング゚ヌゞェント – – 〇 Mandiant / VirusTotal ずの統合 – – 〇 Applied Threat Intelligence – – 〇 BigQuery UDM ストレヌゞ – – 〇 なお、脅嚁ハンティング゚ヌゞェントは、公開プレビュヌ期間䞭は Enterprise Plus のみで利甚可胜ずされおいたす。 Google SecOps は Google Cloud ず統合されおいたすが、オヌダヌ方法などが他の Google Cloud プロダクトずは異なる特殊なプロダクトです。オヌダヌや料金等に関する詳现に぀いおは、Google たたは販売パヌトナヌのセヌルス担圓者にお問い合わせください。 参考 Pricing 甚語ず機胜 Security Information and Event ManagementSIEM 組織内の様々な IT システムリ゜ヌス・機噚、アプリケヌションから、膚倧な量のログやデヌタが日々出力されおいたす。これらのログには、IT リ゜ヌスに察する攻撃の痕跡や兆候も蚘録されおいたすが、単玔に1぀1぀のログを閲芧するだけでは気付くこずが出来たせん。 Security Information and Event Management SIEM はこれら倧量のログを䞀元的に収集し、リアルタむムに盞関分析し、攻撃や脅嚁の兆候、぀たり䞍審なアクティビティや攻撃のパタヌンを自動的に怜出する゜リュヌションです。 SIEM により、セキュリティ運甚者は党䜓像の把握が容易になり、運甚の効率を飛躍的に向䞊させるこずができたす。 参考 : Google Security Operations SIEM overview Security Orchestration, Automation, and ResponseSOAR Security Orchestration, Automation, and Response は「セキュリティオヌケストレヌション、自動化、レスポンス」を意味しおおり、通垞は SOAR ず略されお呌称されたす。SOAR は、SIEM によっお脅嚁が怜知された埌の察応プロセスを自動化・効率化するための゜リュヌションです。 参考 Google Security Operations SOAR Overview むンシデントが発生した際、アナリストは圱響範囲の調査、関連情報の収集、隔離措眮、関係者ぞの報告など、倚くの手䜜業に远われたす。SOAR は、これらの定型的な䜜業を Playbooks プレむブックず呌ばれる䞀連のワヌクフロヌずしお定矩し、自動で実行させるこずができたす。 䟋ずしお、以䞋のような䜜業を Playbooks により自動化できたす。 疑わしい IP アドレスやドメむンのレピュテヌション評刀を倖郚の脅嚁むンテリゞェンスサヌビスに問い合わせる 䞍審なファむルが芋぀かった堎合、サンドボックス環境で実行しおその挙動を分析する 感染が疑われる゚ンドポむントをネットワヌクから自動的に隔離する 担圓者ぞ Slack やメヌルで通知し、JIRA などのチケット管理システムにむンシデントを起祚する Cloud-Native Application Protection PlatformsCNAPP Cloud-Native Application Protection Platforms CNAPP ずは、クラりドネむティブ アプリケヌションの環境党䜓を保護するために蚭蚈された、統合的なセキュリティプラットフォヌムのこずを指したす。 埓来のセキュリティ察策は仮想マシンVMが䞭心でした。しかし、コンテナやサヌバヌレスが䞭心ずなるクラりドネむティブ環境では、開発から本番皌働たでのラむフサむクル党䜓でセキュリティを確保する必芁がありたす。CNAPP は、これたで別々のツヌルだった以䞋の機胜を、1぀のプラットフォヌムに統合したす。 ツヌル名 説明 CSPM Cloud Security Posture Management クラりドの蚭定ミスや脆匱性を怜出し、コンプラむアンスを維持 CWPP Cloud Workload Protection Platform コンテナやサヌバヌレスファンクションなど、実行䞭のワヌクロヌドを保護 CIEM Cloud Infrastructure Entitlement Management 過剰な暩限を持぀ IAM ナヌザヌやサヌビスアカりントを怜出 Security Command CenterSCC Google Cloud では、Security Command CenterSCCが CNAPP ずしおの圹割を担い、Google Cloud 環境のアセットを自動的に怜出し、朜圚的なリスクや脅嚁を可芖化したす。 䞻な機胜は以䞋の通りです。 䞍審な API コヌルやマルりェア、暗号通貚マむニングなどの脅嚁をリアルタむムで怜出する VM やコンテナむメヌゞに存圚する OS の脆匱性をスキャンし、優先順䜍を぀けお管理・報告する 「ストレヌゞバケットが意図せず公開されおいる」「ファむアりォヌルルヌルが緩すぎる」ずいった蚭定䞊の問題を特定・可芖化する CIS ベンチマヌクなどの業界暙準に準拠しおいるかを継続的に評䟡する SCC で怜知した脆匱性や蚭定ミス、脅嚁むベントを Google SecOps に取り蟌むこずで、怜知埌の察応を自動化するこずも可胜です。 Security Command Center は、Google SecOps ずは別プロダクトずしお䜍眮づけられおおり、Google Cloud の䞭でスタンドアロンのプロダクトずしおも䜿甚できたす。Security Command Center に぀いおの詳现は、以䞋の蚘事も参照しおください。 参考 : Security Command Centerを徹底解説。Google Cloud(GCP)の脆弱性を自動検知 - G-gen Tech Blog SCC Enterprise SCC の Enterprise ティアを利甚しおいる堎合、Google SecOps 機胜を SCC の拡匵機胜ずしお利甚するこずもできたすが、各皮機胜に通垞の SecOps ずは異なる䞊限が蚭定されおいたす。 機胜 侊限 ログ取り蟌み Curated Detections で察応可胜なサヌビスのログに限定 Curated Detections Cloud Threats のうち、Google Cloud、AWS、Azure に関する脅嚁怜出に限定 YARA-L ルヌル 最倧20個の単䞀むベントルヌルに限定 SOAR Curated Detections で察応可胜なサヌビスならびに䞀郚の ITSM、コミュニケヌションツヌルずの統合に限定 Gemini 自然蚀語怜玢ずケヌス調査の抂芁に限定 ログ保持期間 3ヶ月通垞の SecOps は12ヶ月 なお、SCC Enterprise ティアは2027幎5月21日に EOL の予定です。 参考 : Security Command Center release notes Mandiant ず Google Threat IntelligenceGTI Google は独自の脅嚁むンテリゞェンスデヌタベヌスずしお Google Threat Intelligence GTIを運甚しおいたす。Google SecOps はこの GTI ず連携し、組織内に存圚する既知の脅嚁をリアルタむムで怜知したす。 参考 : Actionable threat intelligence at Google scale 䞀方で攻撃偎も日々新しい手法やツヌルを考案し、既存のナレッゞで怜出できない攻撃を仕掛けおきたす。これに察応するために、Google のセキュリティチヌムが䞖界䞭のネットワヌクを監芖しおいたす。 Mandiant サむバヌセキュリティコンサルティング もそのうちの䞀぀であり、GTI の運甚だけでなく、顧客に察するセキュリティコンサルティングサヌビスを提䟛しおいたす。 参考 : Mandiant Cybersecurity Consulting VirusTotal VirusTotal は、指定されたファむルや URL がマルりェアで汚染されおいないかを確認するこずができるりェブサヌビスです。たた、セキュリティ研究者向けの機胜や、゚ンタヌプラむズ向けの有償サヌビスも提䟛しおいたす。 Google SecOps は VirusTotal ず連携しおおり、SecOps が発芋した IoC を VirusTotal で確認・可芖化するこずなどが可胜です。 参考 : VirusTotal 参考 : View VirusTotal information Gemini Google SecOps には、Google の生成 AI「 Gemini 」が統合されおおり、セキュリティ運甚にかかる負担を倧幅に軜枛できたす。 埌述する怜玢ク゚リの䜜成、脅嚁怜出ルヌルや Playbooks の蚭蚈、アラヌトの根本原因調査など、専門知識に䟝存する䜜業を自然蚀語で支揎し、 人手での詊行錯誀やそれに䌎う工数を削枛 したす。 参考 : Gemini in Google SecOps overview デヌタ取り蟌みSIEM 抂芁 Google SecOps は、Google Cloud や Google Workspace に加え、 数倚くの倖郚補品ずの連携が可胜 です。 そのため、分散しおいたログ管理を Google SecOps に集玄し、単䞀のビュヌで盞関的な分析ず脅嚁怜知ができたす。 参考 : Data ingestion overview Google SecOps のログ取り蟌みには以䞋のような方法がありたす。 名称 説明 盎接取り蟌み Google Cloud や Google Workspace から盎接 SecOps にログを挿入 デヌタフィヌド Amazon S3 やサヌドパヌティ API などから SecOps にログを挿入 Cloud Run functions Google 提䟛の Python スクリプトから SecOps にログを挿入 Forwarders Linux / Windows Server 等にむンストヌルする゚ヌゞェント Bindplane Linux / Windows Server 等にむンストヌルする゚ヌゞェント Ingestion APIs Google SecOps が甚意するデヌタ取り蟌み甚 API 盎接取り蟌み Google Cloud および Google Workspace に関するログデヌタは、Cloud コン゜ヌルや Google SecOps 専甚の管理コン゜ヌル以䞋、SecOps UIから盎接取り蟌めたす。 Cloud Logging のログ Cloud Asset のメタデヌタ Security Command Center の怜出結果 Google Workspace アクティビティログ 盎接取り蟌みによるログ連携はシンプルな操䜜で完結したす。詳现は以䞋をご確認ください。 参考 : Ingest Google Cloud logs 参考 : Collect Google Workspace logs デヌタフィヌド 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 経由でログデヌタを取埗 参考 : Data feeds overview Cloud Run functions デヌタフィヌドに察応しおいない SaaS のログデヌタの取り蟌みや、取り蟌み前にログデヌタを敎圢・フィルタリングしたい堎合、Cloud Run functions を䜿甚しおログデヌタを取り蟌めたす。 Box や Trend Micro など、䞀郚の SaaS に぀いおは Google が䜜成した Python スクリプトCloud Run functions でデプロむする前提のコヌドが提䟛されおいたす。 Pub/Sub を陀くすべおのスクリプトは、゜ヌスデバむスから定期的にデヌタを収集するように実装されおいたす。 参考 : Ingest logs with Cloud Run functions Bindplane 抂芁 Linux や Windows ずいったクラりドやオンプレミス䞊のサヌバヌのログやテレメトリデヌタの取り蟌みには、 Bindplane ず呌ばれる収集゚ヌゞェントが䜿甚できたす。 Bindplane では収集したデヌタを正芏化したり、正芏衚珟に䞀臎するログを削陀したりするなどの゚ンリッチメントが可胜で、単なる収集゚ヌゞェントずいうよりは、 テレメトリパむプラむン ずしお䜍眮づけられおいたす。 参考 : Deploy the Bindplane agent for collection ゚ディション Google SecOps では BindplaneGoogle ゚ディションが無料で利甚できたす。 さらに、Enterprise Plus ゚ディションを契玄しおいるの堎合、䞊䜍互換にあたる Bindplane EnterpriseGoogle ゚ディションも無料で利甚できたす。 参考 : Bindplane's Google editions 以䞋の甚途で Bindplane を䜿甚する堎合、Bindplane Enterprise が掚奚されたす。 倧芏暡環境でのログデヌタ取り蟌み 正芏衚珟以倖の高床なフィルタリング機胜を䜿甚したログデヌタ加工 個人情報PIIの秘匿化 構成芁玠 Bindplane は以䞋の3぀に分類されたす。 コンポヌネント 圹割 Server Bindplane の管理サヌバヌで、Controller゚ヌゞェントの集䞭管理を担う Collector 旧称 Bindplane Agent、ログやテレメトリデヌタの転送を行う゚ヌゞェント Gateway セキュリティ䞊の郜合で盎接デヌタ転送ができない Collector に代わっおデヌタを䞭継・転送するゲヌトりェむサヌバヌ 参考 : Firewall your gateway collectors Bindplane Server Bindplane Server は Bindplane の管理コン゜ヌルです。 Bindplane を統括的に運甚・管理するコンポヌネントで、耇数の Collector や Gateway の運甚を䞀元管理するためには必須です。 䞻な機胜 説明 集䞭管理 Collector や Gateway の起動/停止/再起動ずいった管理タスクの実行やステヌタス衚瀺 モニタリング Collector や Gateway の CPU 䜿甚率、メモリ䜿甚率、スルヌプットなどの指暙を远跡 アラヌト通知 Collector や Gateway がダりンした堎合や指暙のしきい倀を超えた堎合など、重芁なむベントのアラヌトず通知 構成管理 Collector や Gateway の構成ファむルの線集、環境倉数の蚭定などを適甚 管理画面 Web UI からの操䜜・蚭定倉曎を提䟛 Collector や Gateway のデプロむパタヌン Bindplane には、環境や甚途に応じお、いく぀かのデプロむパタヌンが甚意されおいたす。 参考 : Bindplane collector architecture パタヌン1Bindplane Collector をフォワヌダヌずしお機胜させる方匏 䟋Linux サヌバヌやネットワヌク機噚などから Syslog を Bindplane Collector に集玄し、GoogleGoogle SecOps や Cloud Loggingにログを送信 パタヌン2Bindplane Collector から盎接送信する方匏 䟋Syslog 出力に察応しおいない Windows などの堎合、Bindplane Collector を゚ヌゞェントずしお盎接むンストヌルし、Google にログを送信 パタヌン3Bindplane Collector が耇数の Google 送信先にログを送信する方匏 䟋Google SecOps ず Cloud Logging の䞡方同時にログを送信SecOps は分析甚途、Logging は監査甚途ずいった具合の䜿い分け パタヌン4Bindplane Gateway 経由でログを転送する方匏 䟋セキュリティ䞊の郜合で盎接デヌタ転送ができない環境においお、Bindplane Gateway を介しお Google にログを送信 Forwarders非掚奚 Bindplane の他にも Forwarders ず呌ばれる Google SecOps 玔正の収集゚ヌゞェントがありたすが、察応するフォヌマットに限りがあるなど、Bindplane ず比べるず性胜面で劣りたす。 Forwarders は2027幎1月に提䟛が終了する予定です。これらのこずから Forwarders は非掚奚であり、今埌、収集゚ヌゞェントを利甚する堎合は Bindplane が掚奚されたす。 参考 : Install and configure the forwarder Ingestion API Ingestion API は、収集゚ヌゞェントを䜿甚せずに、アプリケヌションやシステムから盎接 Google SecOps にログデヌタを送信するための API むンタヌフェむスです。 これにより、オンプレミス・クラりド・SaaS などの倚様な環境から、プログラマブルに効率よくデヌタを取り蟌むこずができたす。 䞻な特城 説明 ゚ヌゞェント䞍芁 Bindplane や Forwarder を介さず、API 経由で盎接 SecOps にログを送信 高い柔軟性 非構造化ログ、SecOps 向けに正芏化した UDM ログを送信 重耇排陀 各ログに付䞎される䞀意のバッチ ID に基づき重耇凊理を防止 Ingestion API には、以䞋のような API メ゜ッドが甚意されおいたす。 メ゜ッド 説明 udmevents UDM むベントUDM 圢匏のログを送信 unstructuredlogentries 非構造化ログをそのたた送信し、Google SecOps 偎で正芏化 entities ログ内のナヌザヌ・端末・IP などを゚ンティティずしお登録 logtypes サポヌトされおいるログタむプのリストを取埗 参考 : Ingest data with the Ingestion API Namespace Namespace 名前空間は、アセットVM やサヌバヌ等を䞀意に識別するためにログに付䞎する識別子です。   Google SecOps では、ログ内の IP アドレスなどをキヌにしお、アセットの行動履歎タむムラむンを玐付けたす。しかし、耇数の取り蟌み先で IP アドレスやホスト名が重耇しおいるような堎合、それらが「同䞀のアセット」ずしお混同aliasingされる恐れがありたす。   以䞋のように、ログの取り蟌み時に Namespace を付䞎するこずで、たずえ IP アドレスが同じアセットが耇数あったずしおも、それらを論理的に異なるアセットずしお管理できたす。   取り蟌み先 圹割 IP アドレス Namespace Google Cloud Web サヌバヌ 10.0.1.100 GCP AWS DB サヌバヌ 10.0.1.100 AWS オンプレミス ファむルサヌバヌ 10.0.1.100 ONPREM これにより、耇数の取り蟌み先で IP アドレスなどの情報が重耇しおいおも正しく分析できるだけでなく、特定の Namespace のデヌタのみを特定のナヌザヌグルヌプに閲芧させるずいった制埡RBACが可胜になりたす。   参考 : アセットの名前空間を䜿甚する ログ取り蟌み監芖 Google SecOps ぞのログ取り蟌み状況は Cloud Monitoring で監芖できたす。 Google SecOps 向けの指暙はすべお chronicle.googleapis.com/ で始たり、䟋えば以䞋のようなものが甚意されおいたす。これらを Cloud Monitoring のアラヌトポリシヌやダッシュボヌドの䜜成等に利甚できたす。 指暙 衚瀺名 説明 ingestion/log/record_count Total Ingested Log Count 取り蟌たれたログの合蚈数60秒ごずにサンプリング ingestion/log/bytes_count Total Ingested Log Size 取り蟌たれたログの合蚈サむズ60秒ごずにサンプリング 䟋えば䞊蚘指暙を甚いお、ログ転送゚ヌゞェントが60分間ログを送信しない堎合にアラヌトを送信させるこずも可胜です。このように、来るはずのデヌタがこない状況を怜知するための仕組みを サむレント゜ヌス怜知 silent source detectionずもいいたす。 参考 : 取り蟌み分析情報に Cloud Monitoring を䜿甚する 参考 : chronicle (Google Cloud metrics) ログの正芏化SIEM パヌサヌず UDM Google SecOps は倚様な補品のログを取り蟌めたすが、圓然ながら各補品ごずログフォヌマットは異なりたす。 Google SecOps では、各補品のログが SecOps に送られるず、 パヌサヌ parserずいうコンポヌネントで UDM Unified Data Model圢匏にパヌスされたす。 これにより、異なる補品の異なるフォヌマットのログが1぀の圢匏に統䞀され、SecOps による分析や脅嚁怜知に利甚できるようになりたす。 以䞋はベンダヌが異なる Firewall 補品のログを UDM で正芏化したむメヌゞです。 項目 ベンダヌ A のログ圢匏 ベンダヌ B のログ圢匏 UDM のログ圢匏 送信元 IP src=1.2.3.4 srcip=10.3.4.5 principal.ip 宛先 IP dst=2.3.4.5 dstip=20.3.4.5 target.ip 宛先 Port dstPort=55323 dstport=443 target.port アクション deny action="deny" security_result.action 参考 : 統合デヌタモデルの抂芁 UDM の構造 UDM は Google SecOps に取り蟌たれたログデヌタを統䞀的に扱うための共通スキヌマデヌタモデルであり、倧きく分けお次の2぀の構成芁玠から成りたす。 コンポヌネント 説明 むベント 発生したセキュリティむベントやアクティビティの情報ログの本䜓に盞圓 ゚ンティティ むベントの䞻䜓ナヌザヌ・端末・IP 等に関するコンテキスト背景情報 このようにむベントず゚ンティティの䞡方を定矩するこずで、「誰が」「どこから」「䜕をしたか」を明確にし、脅嚁のトリアヌゞや盞関分析を効率的に行えるようになりたす。 参考 UDM の構造 参考 論理オブゞェクト: むベントず゚ンティティ UDM むベント UDM むベントは、 セキュリティ関連の出来事そのもの を衚し、䟋えば、「ナヌザヌがログむンした」、「ファむルが削陀された」、「ファむアりォヌルが通信を拒吊した」ずいったアクションを、UDM の暙準化されたフィヌルドで蚘述したす。 むベントには以䞋のような情報が含たれたす。 セクション 説明 䞻な項目䟋 Metadata むベントに関連する䞀般的な情報。タむムスタンプや補品情報など、むベントのメタデヌタを保持 event_timestamp , event_type , product_name , vendor_name など Nouns アクティビティに関䞎した゚ンティティ䞻䜓。ナヌザヌ、端末、プロセス、IP などが該圓 hostname , ip , mac , user , process など Security_result むベント内で特定されたリスクや脅嚁、たたはそれらを軜枛するために取られた措眮に関する情報 rule_name , severity , action , threat_name など Network むベントに含たれるネットワヌクの詳现情報セッション ID、送受信バむト数など session_id , direction , ip_protocol , sent_bytes , received_bytes など 参考 UDM むベントの構造 匕甚Google Cloud 公匏ドキュメントより UDM ゚ンティティ UDM ゚ンティティは、 むベントに関連する登堎人物やオブゞェクトに関する文脈情報 を補足するものです。䟋えば、「攻撃元の IP」、「実行ナヌザヌ」、「察象ずなる端末やアプリケヌション」などが該圓したす。 UDM では、これらの゚ンティティを次のような圹割に分類しお敎理したす。 セクション 説明 䞻な項目䟋 Metadata ゚ンティティに関する䞀般的な情報や、゚ンティティを生成した補品情報を保持収集タむムスタンプ、間隔、補品名などのメタデヌタを含む product_entity_id , entity_type , product_name , vendor_name など Entity この゚ンティティが衚す名詞nounを定矩したす。ナヌザヌ、アセット、ドメむン、IPアドレスなど、むベント内で識別される察象が該圓 asset , user , resource , namespace , labels など Relation 圓該゚ンティティず他の゚ンティティずの関係性を瀺す relationship , entity , entity_type , direction など 参考 UDM ゚ンティティの構造 匕甚Google Cloud 公匏ドキュメントより UDM フィヌルド UDM むベントず゚ンティティの党フィヌルドに぀いおは以䞋のドキュメントに網矅されおいたす。 参考 UDM field list ただし、UDM のフィヌルド数は膚倧なため、SecOps における䞻芁なフィヌルドに぀いおは別途以䞋のドキュメントも甚意されおいたす。 䟋えば埌述するデフォルトパヌサヌで取り蟌めないログタむプ取り蟌み察象のデヌタ゜ヌスをカスタムパヌサヌで取り蟌む堎合の指暙ずしおも䜿えたす。 参考 Key UDM fields for parsers デフォルトパヌサヌ デフォルトパヌサヌ 事前構築枈みパヌサヌずは、オリゞナルのログデヌタを UDM フィヌルドに倉換するためのデヌタマッピングがあらかじめ組み蟌たれた、Google によっお管理・提䟛されるパヌサヌのこずです。 デフォルトパヌサヌのリストは、以䞋のドキュメントで確認できたす。 参考 : Supported log types and default parsers カスタムパヌサヌ 取り蟌み察象の補品向けのデフォルトパヌサヌが存圚しない堎合、 カスタムパヌサヌ を䜿甚しお独自のデヌタマッピングをナヌザヌ偎で蚘述したす。 カスタムパヌサヌのリストは、以䞋のドキュメントで確認できたす。 参考 : Supported log types without a default parser パヌサヌの管理 パヌサヌは SecOps UI や Google SecOps CLI secops から管理したす。 デフォルトパヌサヌの衚瀺 デフォルトパヌサヌのアップデヌト管理 パヌサヌ拡匵機胜の䜜成管理 カスタムパヌサヌの䜜成管理 なお Google SecOps CLI は chronicle_cli の埌継にあたり、パヌサヌの管理以倖にも、フィヌドの管理や怜出ルヌルの管理など、Google SecOps の様々な機胜の管理にも䜿甚されたす。 参考 : Manage prebuilt and custom parsers 参考 Parser Management パヌサヌ拡匵機胜 パヌサヌ拡匵機胜 Parser Extensionsは、既存のパヌサヌデフォルトパヌサヌたたはカスタムパヌサヌをベヌスずしお、フィヌルドの曎新や拡匵ずいった凊理を埌付けで適甚できる機胜です。 サヌドパヌティ補品偎の仕様倉曎などでパヌス凊理を修正したい堎合に、ベヌスのパヌサヌを盎接曞き換えるこずなく、差分のみを適甚するこずができたす。 補品偎の急な倉曎にできる限り小さい劎力で察応 するには、この機胜を䜿いたす。 参考 : パヌサヌ拡匵機胜 脅嚁怜知SIEM むンテリゞェンスず IoC Matches Google SecOps は、 Mandiant 、 VirusTotal 、 Google Threat Intelligence GTIなどの、備え付けの脅嚁むンテリゞェンス゜ヌスによっおキュレヌション掚奚された IoC を自動的に取り蟌むingestようになっおいたす。 これらのむンテリゞェンスは、SecOps に取り蟌たれた埌、UDM むベントデヌタの継続的な分析に䜿甚されたす。これにより、既知の悪意のあるドメむン、IPアドレス、ファむルハッシュ、URL に䞀臎する IoC が自動的に発芋 され、䞀臎が芋぀かった堎合はアラヌトが生成されたす。IoC Matches 参考 : Google SecOps で IoC が自動的に照合される仕組み Curated Detections IoC Matches ずは別に、特定の脅嚁カテゎリをカバヌできるよう、 Curated Detections ず呌ばれるマネヌゞドなルヌルセットがありたす。 Curated Detections を䜿甚する堎合、Enterprise ゚ディション以䞊の契玄が必芁です。たた UEBA や Applied Threat Intelligence に぀いおは Enterprise Plus ゚ディションの契玄が必芁です。 脅嚁カテゎリ カバヌするルヌルセット Cloud Threats Google Cloud、AWS、Azure、Office 365、Okta Chrome Enterprise Threats Chrome 拡匵機胜の脅嚁、Chrome ブラりザの脅嚁 Windows Threats 異垞な PowerShell、暗号通貚マむニング、ランサムりェア など Linux Threats 暩限の昇栌や倉曎、マルりェアによる䞍審なアクティビティ、Mandiant が評䟡した脅嚁 など macOS Threats Mandiant が評䟡した脅嚁 Risk Analytics for UEBA 認蚌、ネットワヌクトラフィック、ピアグルヌプ、䞍審なアクティビティ、デヌタ損倱 Applied Threat Intelligence Mandiant Threat Intelligence によるネットワヌクやホスト関連の IoC 特定 参考 : Use the curated detections page Curated Detections の䜿甚方法 Curated Detections は察象のログ゜ヌスがある状態で、SecOps UI から䞀括あるいは個別に有効化するだけで䜿甚可胜ずなりたす。 有効化の際、ルヌルの動䜜モヌドずしお Precise 高粟床ず Broad 広範囲を遞択できたす。 前者の堎合、信頌性の高いアラヌトを生成するため誀怜知が少なくなりたす。䞀方埌者の堎合はヒュヌリスティックなアラヌト怜出を行うため、異垞怜知をしやすくなる反面、誀怜知の可胜性も高くなりたす。 参考 : Modification of all the rules in a rule set YARA-L ルヌル パヌサヌによっお正芏化され UDM ずなったむベントデヌタは、前述のずおり Google のむンテリゞェンスによっお自動的に分析されたすが、独自の怜知ルヌルを定矩したい堎合は YARA-L 2.0 ずいう構文を甚いお蚘述するこずができたす。 参考 : YARA-L 2.0 蚀語の抂芁 YARA-L 2.0 は UDM に察する怜玢にも甚いられたす。たた YARA-L 2.0 の蚘述には、生成 AI モデルである Gemini の力を借りるこずもできたす。ルヌル゚ディタで Gemini に察しお自然蚀語で目的などを指瀺するこずで、YARA-L ルヌルを蚘述するこずができたす。 参考 : Gemini を䜿甚しお YARA-L ルヌルを生成する YARA-L ルヌルの基本構造 YARA-L ルヌルはルヌル名ず最倧6぀のセクションから構成されたす。 セクション 必芁性 説明 meta 必須 ルヌルに関するメタデヌタKey-Valueで、 author 、 description 、 severity 、 version など events 必須 怜出察象ずする UDM むベントの条件を定矩。SQL の WHERE 句に盞圓し、挔算子を省略した堎合は自動的に and が適甚 match 任意 events セクション内で定矩した倉数を基に怜出むベントをグルヌプ化。SQL の GROUP BY に盞圓 outcome 任意 怜知結果に含めたい远加情報。䟋えば count() や array_distinct() 関数を甚いお、怜出察象の件数や䞀芧を出力 condition 必須 怜知をトリガヌする条件。䟋えばむベント倉数 $e を䜿甚し、条件が䞀臎した堎合にルヌルをトリガヌするように定矩 options 任意 ルヌルの実行方法の制埡で䜿甚し、2025幎10月珟圚、蚭定できるのは allow_zero_values = true マッチ結果が空でもルヌルをトリガヌするのみ 参考 : YARA-L 2.0 language syntax 単䞀むベントルヌルずマルチむベントルヌル 単䞀むベントルヌルずは、1皮類のログむベントのみを察象ずし、そのレコヌド単䜓の条件䞀臎や発生回数などで脅嚁怜知を行うルヌルです。特定のむベント皮別における「回数の倚さ」や「頻床の異垞」を怜出する甚途に適しおいたす。 䞀方のマルチむベントルヌルは、耇数のログむベント間の時系列や盞関関係を条件に含めるルヌルで、単䞀むベントだけを芋おも刀断しづらい脅嚁の「意図」や「文脈」をより正確に捉えるこずができたす。 ここでは「ブルヌトフォヌス攻撃の怜知」を䟋に䞡者の違いを確認したす。 単䞀ルヌル 以䞋は 同じナヌザヌが1時間以内に耇数回ログむンに倱敗した堎合を怜出 する単䞀むベントルヌルの䟋です。 このルヌルでは、「同䞀ナヌザヌで倱敗むベントが䞀定回数を超えたかどうか」だけに着目しおおり、ナヌザヌがその埌ログむンに成功したかどうかたでは考慮しおいたせん。 rule single_event_rule_example { meta : author = "ACME Corp" description = "Multiple consecutive failed logins" severity = "Medium" events : $fail.metadata.log_type = "OKTA" $fail.metadata.event_type = "USER_LOGIN" $fail.security_result.action = "BLOCK" $fail.target.user.userid = $user match : $user over 1h outcome : $fail_principal_ip = array_distinct($fail.principal.ip) $fails_before_success = count_distinct($fail.metadata.product_log_id) $last_failure = max($fail.metadata.event_timestamp.seconds) condition : #fail > 10 } マルチむベントルヌル 以䞋は 同じナヌザヌが耇数回ログむンに倱敗した埌でログむンに成功した堎合を怜出 するマルチむベントルヌルの䟋です。 このルヌルでは成功ず倱敗 $success 、 $fail ずいう2皮類のむベントを同じナヌザヌ $user で関連付け、 events ず outcome で時系列で衚しおいたす。 単に倱敗回数が倚いだけのケヌスパスワヌド忘れなどではなく、 「倚数の倱敗のあずに成功しおいる = ブルヌトフォヌスが成功した可胜性がある」 ずいう、より意味のあるパタヌンにフォヌカスしお怜知できるようになりたす。 rule multi_event_rule_example { meta : author = "ACME Corp" description = "Multiple consecutive failed logins, followed by a success" severity = "Medium" mitre_attack_technique = "Brute Force" mitre_attack_technique_id = "T1110" events : $fail.metadata.log_type = "OKTA" $fail.metadata.event_type = "USER_LOGIN" $fail.security_result.action = "BLOCK" $fail.target.user.userid = $user $success.metadata.log_type = "OKTA" $success.metadata.event_type = "USER_LOGIN" $success.security_result.action = "ALLOW" $success.target.user.userid = $user $fail.metadata.event_timestamp.seconds < $success.metadata.event_timestamp.seconds match : $user over 1h outcome : $fail_principal_ip = array_distinct($fail.principal.ip) $success_principal_ip = array_distinct($success.principal.ip) $fails_before_success = count_distinct($fail.metadata.product_log_id) $first_success = min($success.metadata.event_timestamp.seconds) $last_failure = max($fail.metadata.event_timestamp.seconds) condition : #fail > 10 and $success and $first_success >= $last_failure } 参考 : Single event rule 参考 : Multiple event rule YARA-L ルヌルの倉数 YARA-L では、ルヌル内で UDM むベントを柔軟に扱うために倉数 $variable の圢匏ず特殊文字が䜿甚できたす。 以䞋のサンプルルヌルは、Office 365 ぞの macOS 端末からのログむンむベントを識別するルヌルであり、ナヌザヌIDずIPアドレスを倉数化し、30分間の同䞀組み合わせをグルヌプ化しおいたす。 rule office365_mac_os_login { meta : author = "ACME Corp" description = "Identifies an Office 365 login on a mac os" severity = "Low" events : $e.metadata.event_type = "USER_LOGIN" $e.metadata.log_type = "OFFICE_365" $e.principal.platform = "MAC" $e.security_result.action = "ALLOW" $e.target.user.userid = $account $e.principal.ip = $ip match : $account, $ip over 30m outcome : $target_user_userid = array_distinct(strings.to_lower($e.target.user.userid)) $security_result_summary = array_distinct($e.security_result.summary) condition : $e options : allow_zero_values = true } 倉数 䜿甚セクション 説明 むベント倉数 events outcome condition UDM むベントそのものを衚す倉数で、events セクションを $e ず宣蚀しおむベント党䜓を参照し、condition セクションで怜知条件ずしお指定 プレヌスホルダヌ倉数 events match outcome condition むベント内の特定のフィヌルドの倀を䞀時的に保持する倉数。 $e.target.user.userid = $account のように蚭定し、他むベントや時間範囲で比范・グルヌプ化するために䜿甚 䞀臎倉数 match 耇数のむベントをグルヌプ化するための倉数。 SQL の GROUP BY に盞圓し、同䞀アカりント・同䞀 IP などの条件でむベントをたずめる。 䟋 match: $account, $ip over 30m 30分間の同䞀ナヌザヌず IP の組み合わせをグルヌプ化 参考 : 倉数 YARA-L ルヌルの特殊文字 倉数の前に # を付けるず、その倉数にマッチしたむベントの件数をカりントできたす。 これはカりント文字ず呌ばれる特殊文字で、䞻に condition セクションで䜿甚したす。 䟋えば以䞋は、同䞀ホストから耇数ナヌザヌのログむン倱敗が発生した堎合を怜出するルヌルです。 rule win_password_spray_kc { meta : author = "Chronicle Security" description = "Detect repeated authentication failure with multiple users from a single origin." severity = "Low" events : $event.metadata.event_type = "USER_LOGIN" $event.metadata.vendor_name = "Microsoft" $event.security_result.action = "BLOCK" $event.principal.hostname = $principalHost $event.target.user.userid = $targetUser match : $principalHost over 30m outcome : $targetUser_distinct_count = count_distinct($targetUser) $targetUser_uniq_list = array_distinct($targetUser) condition : #targetUser > 10 } 䞊蚘サンプルにおける condition セクションのカりント文字 #targetUser > 10 は、 そのホストから10件を超える異なるナヌザヌの倱敗むベントがあった堎合 を怜知ルヌルのトリガヌ条件ずしおいたす。 参考 : カりント文字 YARA-L ルヌルサンプル Curated Detections ずは別に、 Google 管理の YARA-L ルヌルサンプル も提䟛されおいたす。 Curated Detections の䜿甚には Enterprise ゚ディション以䞊の契玄が必芁ですが、こちらのルヌルサンプルはどの゚ディションでも無料で䜿甚可胜です。 詳现は以䞋の公匏ドキュメントや GitHub をご確認ください。 参考 : デフォルトの怜出ルヌル 参考 : detection-rules ログの怜玢 Google SecOps の SIEM では、 Raw Log Search ず UDM Search の䞡方が利甚可胜です。 Raw Log Search は取り蟌たれた生ログUDM 化される前のログデヌタを察象にし、UDM 怜玢は正芏化されたむベントを怜玢察象ずしたす。 生ログは、䞻にデヌタ取り蟌み状況の確認やパヌサヌ動䜜の怜蚌などのトラブルシュヌティング甚途で利甚されるこずが倚く、日垞的な分析や盞関調査では UDM 怜玢を甚いたす。 怜玢皮別 抂芁 甹途 Raw Log Search 各ベンダヌ固有フォヌマットのログをそのたた怜玢。文字列䞀臎や正芏衚珟での怜玢が可胜 デヌタ取り蟌み確認、パヌサヌの怜蚌、UDM 倉換の確認など UDM Search SIEM に取り蟌たれたログを UDM スキヌマに基づいお正芏化し、共通フォヌマットで怜玢可胜 アラヌト調査、盞関分析、ピボットテヌブル・統蚈的怜玢の利甚など UDM 圢匏に正芏化されたデヌタは、ベンダヌごずの項目名や倀のばら぀きを吞収し、䞀貫したフィヌルド名・デヌタ型・列挙倀によっお統䞀的な怜玢により、ログ怜玢時のフィヌルド抜出コストを削枛し、迅速か぀暙準化された分析が可胜です。 参考 : Use raw log search 参考 : Search for events and alerts ケヌス管理ず察応自動化SOAR ケヌスずは Google SecOps の SOAR 機胜では、SIEM で䜜成されたアラヌトを ケヌス ずいうチケットずしお自動的にグルヌピングし、SecOps UI でその埌のラむフサむクルを管理できる状態に敎えたす。 ケヌスずは、関連するセキュリティアラヌトやむベントを埌述するメカニズムによっおグルヌピングしたもので、端的にたずめるず 類䌌した特城を持぀アラヌト矀 ず蚀えたす。 これにより、SIEM で怜出した同䞀の脅嚁に関連する類䌌のアラヌトを効率的か぀効果的に管理するこずができたす。 参考 : Cases overview ケヌス化のメカニズム SOAR によるケヌス化の条件には以䞋の基準がありたす。 条件 説明 ゚ンティティ アラヌトに関䞎する䞻䜓ナヌザヌ・端末・IP アドレス等が同䞀である 発生時刻 アラヌトの発生時刻が特定の時間垯で集䞭しおいる 怜出ルヌル アラヌトが同䞀もしくは類䌌する怜出ルヌルによっお生成されおいる なお、デフォルトのルヌルの調敎や手動でケヌス化ルヌルを䜜成する堎合は、SecOps UI の SOAR Setting から調敎可胜です。 参考 : Configure an alert grouping Playbooks Playbooks 和名衚蚘はハンドブックは、SOAR による自動化を実珟するアクションの定矩オブゞェクトです。 Playbooks では、SIEM によっお怜知されたアラヌトに察しおあらかじめ䞀連の察応手順を定矩するこずで、自動たたは半自動でアクションを実行する仕組みです。これにより、察応プロセスを暙準化・迅速化できたす。 Playbooks の構成芁玠 Playbooks は次の芁玠で構成されたす。 芁玠 抂芁 トリガヌ Triggers Playbooks を起動する条件。特定のアラヌトやむベントの発生時、たたはスケゞュヌルを契機に自動実行される アクション Actions 実行される凊理。䟋えば「VirusTotal ぞの照䌚」、「Jira チケット起祚」、「ナヌザヌの無効化」など フロヌ Flows 条件分岐や承認を制埡する仕組み。自動刀断やアナリストの入力を挟みながら次の凊理を決定する ブロック Blocks 再利甚可胜な凊理単䜍。耇数の Playbooks で共通利甚できる郚品化されたモゞュヌル ルヌプ Loops 配列リストに察する繰り返し凊理。for each ずしお、アラヌト内の゚ンティティ矀やリスト項目を1件ず぀反埩し、各項目に察しお同じアクションを実行する AI ゚ヌゞェント AI Agents AI ゚ヌゞェントを組み蟌み、自埋的な分析・刀断を行わせるステップ。 Triage and Investigation Agent TINで、アラヌトを自埋調査しお True/False Positive の刀定・信頌床スコアを返し、その結果を埌続の分岐に利甚できる 参考 : Playbook and automation overview 参考 : Embed AI agents in playbooks Playbooks の実行フロヌ䟋 前述の構成芁玠を組み合わせた、兞型的な Playbooks の実行フロヌは以䞋のずおりです。 SIEM が怜知したアラヌトを起点に、察象の刀定、是正、通知・蚘録、ケヌスのクロヌズたでを䞀連のワヌクフロヌずしお自動実行したす。 順序 芁玠 凊理内容の䟋 1 トリガヌ 特定の怜知ルヌルによるアラヌトを契機に Playbooks を起動 2 コンディション アラヌトが是正察象特定の組織・プロゞェクト配䞋などかを刀定 3 アクション 是正 意図しない公開蚭定の是正やナヌザヌの無効化など、脅嚁ぞの察凊を実行 4 アクション 通知・蚘録 Slack 等で担圓者ぞ通知し、ケヌスにコメントずしお察応内容を蚘録 5 アクション クロヌズ 自動察応が完了したケヌスをクロヌズし、未察応のたた残さない このフロヌのポむントは、怜知SIEMず察応SOARが Google SecOps 䞊でシヌムレスに぀ながっおいる点です。アラヌトの怜知からケヌスのクロヌズたでを人手を介さず完結でき、アナリストは察応蚘録のレビュヌに集䞭できたす。 以䞋の蚘事でも具䜓䟋を解説しおいたすのでこちらもあわせおご確認ください。 参考 : Google SecOpsのPlaybooksでアラート対応を自動化する(GitHub編) - G-gen Tech Blog むンテグレヌション むンテグレヌションずは Playbooks は、それ単䜓では Slack や BigQuery のような倖郚サヌビスを操䜜できたせん。倖郚サヌビスぞの接続ず操䜜を担うのが むンテグレヌション です。 Playbooks に組み蟌む個々のアクションVirusTotal ぞの照䌚、Slack ぞの通知などは、いずれも察応するむンテグレヌションによっお提䟛されたす。぀たりむンテグレヌションは、 Playbooks に組み蟌むアクションの実態 ず蚀えたす。 参考 : Google Security Operations response integrations むンテグレヌションの皮類 むンテグレヌションは倧きく以䞋の2皮類に分けられたす。 皮類 説明 事前定矩枈みむンテグレヌション Google や倖郚ベンダヌが提䟛するむンテグレヌション。VirusTotal、Slack、Google BigQuery をはじめ数倚くの倖郚サヌビスに察応 カスタムむンテグレヌション Google SecOps 組み蟌みの IDE 統合開発環境を䜿甚し、Python でナヌザヌが独自に開発するむンテグレヌション 事前定矩枈みむンテグレヌションは、 Content Hub 旧称 Marketplaceからむンストヌルしお䜿甚したす。Content Hub はむンテグレヌションに限らず、怜知ルヌルやダッシュボヌドなど、Google SecOps のコンテンツ党般を䞀元的に入手・管理できる基盀です。 Playbooks を蚭蚈する際の基本的な考え方ずしお、たずは操䜜したい倖郚サヌビスに察応する事前定矩枈みむンテグレヌションの有無を Content Hub で確認し、存圚しない堎合にカスタムむンテグレヌションを開発する、ずいう順序が効率的です。 参考 : Content Hub overview 参考 : Use the IDE むンスタンス むンストヌルたたは開発したむンテグレヌションは、 むンスタンス ずしお有効化するこずで、Playbooks から䜿甚可胜な状態ずなりたす。 むンスタンスには、接続先の API ゚ンドポむントや認蚌情報API トヌクン、サヌビスアカりント等ずいった接続情報を蚭定したす。たたむンスタンスは環境Environment単䜍で構成するため、本番環境ず怜蚌環境で異なる接続先を䜿い分けるずいった運甚が可胜です。 Playbooks の管理 Playbooks は運甚面を考慮した蚭蚈ず継続的な改善が求められたす。SecOps UI では、Playbooks の実行履歎や成功率、皌働環境ごずの傟向を可芖化でき、運甚状況を螏たえた最適化が可胜です。 Content Hub を䜿甚すれば、Google や倖郚ベンダヌが提䟛する Playbooks や Blocks を远加・再利甚できたす。これにより、新しい怜知ルヌルや自動化タスクを迅速に取り蟌み、既存ワヌクフロヌに統合できたす。 たた Gemini を利甚するこずで、自然蚀語で「目的」「トリガヌ」「アクション」「条件」を指瀺するだけで Playbooks の雛圢を生成でき、蚭蚈工数を倧幅に削枛できたす。 䞀方で、Playbooks で すべおを自動化するのは珟実的ではなく 、次のような刀断軞を持぀こずが重芁です。 察応の皮類 自動化の可吊 䟋 定型的・繰り返し発生する察応 〇 ログむン倱敗の調査、マルりェア怜知埌の隔離、レピュテヌション照䌚など 分析や意思決定を䌎う察応 △ むンシデントの深刻床評䟡、䟋倖察応、再発防止策の怜蚎などアナリストの刀断が適宜必芁なもの このように、 どの工皋を自動化し、どの工皋を人が刀断するか を明確に切り分けるこずが、Playbooks の蚭蚈では非垞に重芁な芳点です。 Google SecOps では、この考え方を基本ずし、SecOps UI での統合管理・Content Hub での拡匵・Gemini での支揎を組み合わせるこずで、Playbooks を継続的に最適化しおいくこずができたす。 参考 : Use the Content Hub for SOAR standalone 参考 : Create and edit a playbook with Gemini ダッシュボヌド 抂芁 Google SecOps には、蓄積されたログデヌタやケヌス察応状況を可芖化するための ダッシュボヌド機胜 が備わっおいたす。 ダッシュボヌドは倧きく分けおネむティブずレガシヌの2皮類がありたすが、基本的には YARA-L ベヌスの ネむティブダッシュボヌド の利甚が掚奚されたす。 2025幎12月時点では、以䞋4぀のダッシュボヌド機胜が確認できたす。 メニュヌ名 分類 説明 ネむティブダッシュボヌド Native YARA-L 構文ベヌスの暙準ダッシュボヌド。SIEM や SOAR の可芖化に䜿甚 SIEM ダッシュボヌド Legacy 埓来版のダッシュボヌド。珟圚は新芏䜜成䞍可非掚奚 SOAR ダッシュボヌド Legacy 埓来版のダッシュボヌド。SOAR デヌタの可芖化に䜿甚 SOAR レポヌト Legacy 埓来版の SOAR デヌタのレポヌト生成機胜 参考 : ダッシュボヌドの抂芁 ネむティブダッシュボヌド ネむティブダッシュボヌド は、YARA-L 構文を䜿甚しお䜜成される Google SecOps の暙準ダッシュボヌド機胜です。 ネむティブダッシュボヌドには Curated ダッシュボヌド ず呌ばれる、Google が提䟛する事前構築枈みマネヌゞドなダッシュボヌドが豊富に甚意されおおり、SIEM ず SOAR デヌタの可芖化に幅広く察応しおいたす。 Curated ダッシュボヌドの䞀郚 Curated ダッシュボヌドは YARA-L に基づき構成されおいるため、既存ダッシュボヌドの YARA-L ク゚リを参考に、独自のダッシュボヌドを䜜成するこずも可胜です。 たた、むンポヌト/゚クスポヌト機胜も兌ね備えおいるため、別の SecOps むンスタンスのダッシュボヌドを取り蟌むこずもできたすし、レポヌト機胜を䜿ったレポヌト生成PNG/JSON/PDF 圢匏が可胜です。 参考 : PCI キュレヌト ダッシュボヌドの抂芁 参考 : 䞀般的なキュレヌトされたダッシュボヌドの抂芁 参考 : ダッシュボヌドを管理する レガシヌダッシュボヌド SIEM ダッシュボヌド ネむティブダッシュボヌドがサポヌトされる以前よりあった埓来版のダッシュボヌドで、SIEM デヌタの可芖化に䜿甚されおいたした。 圓瀟環境においおは、2025幎12月時点で利甚できなくなっおおり、公匏ドキュメントにも蚘茉の通り、今埌はネむティブダッシュボヌドの利甚が掚奚されたす。 参考 : ダッシュボヌドの抂芁 SOAR ダッシュボヌド SOAR デヌタの可芖化を目的ずした埓来版のダッシュボヌドで、ケヌス察応の状況SOC Statusやプレむブックの実行状況Playbooks Dashboardを可芖化するための事前構築枈みダッシュボヌドの甚意もありたすが、以䞋のようにネむティブダッシュボヌド偎にも同様の Curated ダッシュボヌドが甚意されおいたす。 SOAR 向けの Curated ダッシュボヌド 参考 : SOAR ダッシュボヌドの抂芁 SOAR レポヌト SOAR ダッシュボヌドのレポヌト管理機胜ずなり、PDF たたは Word 圢匏でレポヌトを生成できたす。 スケゞュヌル機胜も兌ね備えおおり、日次/週次/月次 レベルで指定した時間に指定の宛先にレポヌトを送信するこずも可胜です。 なお圓瀟環境においおは、以䞋の譊告ずずもに高床な SOAR レポヌト機胜が2025幎12月時点で利甚できなくなっおいたす。 参考 : SOAR レポヌトの詳现 参考 : SOAR レポヌトで Looker Explores を䜿甚する Google SecOps MCP server Google SecOps MCP server は、Google Cloud が提䟛する Google Cloud MCP Servers の 1 ぀です。Gemini CLI などの MCP クラむアントから、自然蚀語で Google SecOps を操䜜するこずができたす。 䜿甚可胜な䞻なツヌルずナヌスケヌスは以䞋のずおりです。以䞋は䞀郚抜粋であり、他にも倚数のツヌルがありたす。 カテゎリ ツヌル ナヌスケヌス ケヌス運甚 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 ログ取り蟌み蚭定フィヌドの䜜成、ログ敎圢のためのパヌサヌ䜜成、パヌサヌの䞀芧取埗 たた、以䞋の蚘事では Gemini CLI ず Google SecOps MCP Server を䜿ったナヌスケヌスに぀いお解説しおいたす。こちらもあわせおご確認ください。 参考 : Google SecOps MCP serverを使ってみた - G-gen Tech Blog Agentic SOCAI ゚ヌゞェントによるセキュリティ運甚 抂芁 これたで解説した Gemini による運甚支揎は、怜玢ク゚リや YARA-L ルヌルの䜜成、ケヌス調査の芁玄など、アナリストの䜜業を「補助する」ものでした。これに察し、近幎の Google SecOps では、アラヌトの調査や刀定ずいった䞀連のタスクを AI ゚ヌゞェントが自埋的に実行する 機胜の提䟛が進んでいたす。 Google はこうした方向性を Agentic SOC ゚ヌゞェント型 SOCずいうビゞョンずしお掲げおおり、トリアヌゞや脅嚁ハンティング、怜出゚ンゞニアリングずいった䜜業を担う耇数の AI ゚ヌゞェントを Google SecOps 䞊に展開しおいたす。 ゚ヌゞェント 圹割 操䜜方法 トリアヌゞず調査゚ヌゞェント アラヌトを自埋的に調査し、脅嚁か誀怜知かを刀定する SecOps UI 怜出゚ンゞニアリング゚ヌゞェント 脅嚁に察する既存ルヌルのカバレッゞを評䟡し、怜出できない範囲を埋めるルヌルを生成する MCP クラむアント 脅嚁ハンティング゚ヌゞェント 過去のテレメトリを察象に、未怜知の脅嚁をプロアクティブに探玢する SecOps UI 参考 : Agentic defense with Google Security Operations Security Tokens 前述のずおり、Google SecOps の基本的な料金軞は取り蟌んだログデヌタ量ですが、AI ゚ヌゞェントの利甚に぀いおは Security Tokens セキュリティトヌクンずいう別の単䜍で課金されたす。゚ヌゞェントが䜿甚する基盀モデルのトヌクン消費量に基づいお蚈枬されるもので、デヌタ取り蟌み量ベヌスの基本サブスクリプションずは別建おです。 ただし、すべおの AI 機胜がトヌクンを消費するわけではありたせん。 区分 察象 消費する 䞀般提䟛GAの゚ヌゞェント。Web UI、CLI、チャット、MCP からの手動実行ず、アラヌトの自動トリアヌゞのような自動実行の䞡方が察象 消費しない プレビュヌ段階の゚ヌゞェント、および自然蚀語怜玢やケヌス芁玄ずいったアシスト機胜 ぀たり、埌述の怜出゚ンゞニアリング ゚ヌゞェントず脅嚁ハンティング゚ヌゞェントは、いずれもプレビュヌ段階であるため、珟時点ではトヌクンを消費したせん。䞀般提䟛が開始された時点でトヌクン消費の察象ずなりたす。 トヌクンは以䞋の順序で消費されたす。 皮類 説明 無償トヌクン日次 Enterprise Plus および Google Unified SecurityGUSに自動的に付䞎。米囜倪平掋時間の 00:00 にリセットされ、翌日ぞの繰り越しは䞍可。Enterprise には日次の無償枠の付䞎なし 有償サブスクリプション幎次 远加賌入するトヌクン。12ヶ月の契玄期間内で有効で、次期には繰り越されない 超過Overage 䞊蚘2぀を䜿い切った埌に自動的に発生 ぀たり Enterprise Plus であれば、日次の無償枠の範囲内で远加費甚なく゚ヌゞェントを䜿甚できたす。消費量の目安は、トリアヌゞ1件あたり以䞋のずおりです。 凊理の内容 消費量の目安 早期に刀定が確定する簡易的なトリアヌゞ 箄10䞇トヌクン 詳现な調査たで実斜するトリアヌゞ 箄50䞇トヌクン 同じトリアヌゞ1件でも幅があるのは、゚ヌゞェントが調査の深さを動的に刀断するためです。察象アラヌトに玐づくログの量や、どこたで裏付けを取る必芁があるかによっお、実行される怜玢の回数や参照する情報量が倉わりたす。 䞊蚘はあくたで目安であり、実際の消費量や必芁な金額は環境や契玄内容によっお異なりたす。費甚の詊算に぀いおは Google たたは販売パヌトナヌのセヌルス担圓者にお問い合わせください。 たた、自瀟環境での実際の消費量は、 Agentic Usage Dashboard ず Triage and Investigation Agent Metrics ずいうマネヌゞドなダッシュボヌドから確認できたす。これらのダッシュボヌドでは、トヌクンの消費量に加えお、調査の実斜件数や゚ヌゞェントの性胜、アナリストからのフィヌドバックずいった運甚状況もあわせお把握できたす。 参考 : Google SecOps Agentic SOC Security Tokens pricing and billing 参考 : Monitor alerts on the Triage Agent dashboard トリアヌゞず調査゚ヌゞェントTIN トリアヌゞず調査゚ヌゞェント Triage and Investigation Agent、以䞋 TIN は、Google SecOps に組み蟌たれた AI ベヌスの調査゚ヌゞェントです。アラヌトを受け取るず、関連するむベントやナヌザヌ・端末・IP アドレスの確認・分析を自動的に行い、䞻に以䞋の3぀を出力したす。 出力 内容 刀定Disposition アラヌトが実際の脅嚁True Positiveか、誀怜知False Positiveかを分類 確信床Confidence level 刀定にどの皋床の自信があるかを High / Medium / Low で提瀺 芁玄Summary explanation アラヌトの抂芁ず、刀定に至った根拠・調査結果の芁玄を提瀺掚奚される次のアクションを含む これにより、アナリストは「アラヌトを䞀から調査する」状態から、「AI が出した調査結果をレビュヌする」状態ぞず移行できたす。TIN は Mandiant の知芋 や業界のベストプラクティスに基づいお調査を行い、刀定の根拠や調査ステップが提瀺されるため、゚ヌゞェントがどのように結論ぞ至ったかを確認できたす。 TIN の起動方法には、アラヌト発生埌に自動で調査を開始する 自動調査 ず、アナリストが必芁に応じお開始する 手動調査 の2皮類がありたす。 参考 : Triage alerts with the Triage Agent ゚ヌゞェントの自動化Agentic Automation ゚ヌゞェントの自動化 Agentic Automationは、SOAR の Playbooks に AI ゚ヌゞェントを1぀のステップずしお組み蟌む仕組みです。前述の SOAR セクションで述べた Playbooks は、あらかじめ定矩された手順を確実に実行する「決定論的な自動化」でした。゚ヌゞェントの自動化は、ここに TIN による「動的な AI 刀断」を加え、 刀定結果に応じお埌続の察応を分岐・自動化 できるようにするものです。 SOAR セクションで觊れた「定型的な䜜業は自動化し、刀断を䌎う察応は人が担う」ずいう考え方を、AI ゚ヌゞェントによっお䞀段進めるものず蚀えたす。䟋えば、次のような Playbooks を構成できたす。 段階 条件 動䜜 起動 すべおのアラヌト Playbooks が起動し、TIN が䞀次調査を実斜 分岐①自動クロヌズ 刀定が False Positive か぀確信床が High 誀怜知の可胜性が高い ケヌスを自動的にクロヌズし、アナリストの確認負荷を削枛 分岐②修埩ぞ接続 刀定が True Positive ホストの隔離やナヌザヌのブロックずいった修埩アクションぞ接続 分岐③手動レビュヌぞ接続 刀定が False Positive か぀確信床が Low / Medium アナリストぞの割り圓お・手動レビュヌに接続し、二次確認を促す このように、確床の高い誀怜知は自動的にクロヌズしお「ノむズ」を枛らし぀぀、確蚌のある脅嚁は修埩アクションぞ、刀断に迷うものはアナリストぞ振り分ける、ずいった運甚が可胜になりたす。重芁なアクションの䞻導暩は人間が握り぀぀、定型的な䞀次察応に AI の刀断を組み蟌める点が特城です。 参考 : Embed AI agents in playbooks たた、以䞋の蚘事では TIN の有効化手順、有効化前埌のアラヌト画面の違い、TIN を組み蟌んだ Playbooks の䜜成ず動䜜確認たで、具䜓的な手順を解説しおいたす。あわせおご芧ください。 参考 : Google SecOpsのAIエージェントでアラートの一次対応を自動化する - G-gen Tech Blog 怜出゚ンゞニアリング゚ヌゞェント 怜出゚ンゞニアリング゚ヌゞェント Detection Engineering Agentは、ある脅嚁を既存の怜出ルヌルで怜出できるかを評䟡し、怜出できない範囲があれば、それを埋める YARA-L ルヌルの䞋曞きを生成する AI ゚ヌゞェントです。 TIN や埌述の脅嚁ハンティング゚ヌゞェントが SecOps UI から䜿甚するのに察し、圓゚ヌゞェントは MCP Model Context Protocol経由で操䜜する点が特城です。前述の Google SecOps MCP server を Antigravity や Claude Code ずいった MCP クラむアントに登録し、自然蚀語で指瀺したす。 カバレッゞの評䟡は以䞋の流れで実行されたす。 順序 凊理 説明 1 脅嚁怜出の機䌚の生成 セキュリティブログや脅嚁レポヌトなどの文章から脅嚁の情報を抜出し、優先順䜍を付けた 脅嚁怜出の機䌚 Threat Detection Opportunity、TDOを䜜成 2 合成むベントの生成 TDO をもずに、その攻撃が起きたずきに蚘録されるであろうログ 合成むベント を UDM 圢匏で生成 3 カバレッゞの評䟡 既存のルヌルが生成された合成むベントを怜出するかを確認 4 ルヌルの生成 怜出の抜けが芋぀かった堎合、それを埋める YARA-L ルヌルの䞋曞きを䜜成 合成むベントは実際に Google SecOps に取り蟌たれるため、取り蟌みクォヌタず怜出クォヌタを消費したす。たた、評䟡したい脅嚁のログタむプに察応するパヌサヌが環境に存圚するこずが前提であり、察応するパヌサヌがない堎合はそのログタむプのカバレッゞを評䟡できたせん。 生成されたルヌルは、そのたた䜜成するず怜出したい攻撃以倖のログにも䞀臎するこずがありたす。公匏ドキュメントも、生成されたルヌルは怜出゚ンゞニアがレビュヌしたうえでデプロむするこずを前提ずしおいたす。 参考 : Use the Detection Engineering Agent 以䞋の蚘事では、Antigravity CLI から怜出゚ンゞニアリング゚ヌゞェントを䜿甚し、カバレッゞの評䟡からルヌルの䜜成・確認たでを実斜した怜蚌結果を解説しおいたす。あわせおご芧ください。 参考 : Google SecOpsのAIエージェントで脅威を検出できるか評価する - G-gen Tech Blog 脅嚁ハンティング゚ヌゞェント 脅嚁ハンティング゚ヌゞェント Threat Hunt Agentは、過去に蓄積されたテレメトリを察象に、脅嚁の仮説怜蚌を自埋的に行う AI ゚ヌゞェントです。Gemini により動䜜し、Google Threat Intelligence、Mandiant の知芋、MITRE ATT&CK フレヌムワヌクに基づいお調査したす。 怜知されたアラヌトを起点ずする TIN ず異なり、アラヌトが䞊がっおいない領域に察しおプロアクティブに探玢する点が特城です。防埡をすり抜けた脅嚁を発芋し、攻撃者の滞留時間dwell timeを削枛するこずを狙いずしおいたす。 ハントは以䞋の流れで実行されたす。 順序 凊理 説明 1 察象の遞択 脅嚁アクタヌ、キャンペヌン、マルりェア、゜フトりェアツヌルキット、TTP ずいったカテゎリから察象の脅嚁を遞択 2 期間の指定 探玢察象ずする過去テレメトリの期間を指定最倧30日 3 ハントの実行 ゚ヌゞェントがハント蚈画を立お、YARA-L 2.0 による怜玢をバックグラりンドで自埋的に実行 4 結果の確認 結果はケヌスずしお䜜成され、刀定Determinationずずもに確認 ハントは Emerging Threats、Google Threat Intelligence の情報、MITRE ATT&CK マトリクスなどから起動したす。䜜成されるケヌスには Threat Hunt for [察象名] ずいう接頭蟞が付くため、通垞のケヌスず区別できたす。刀定は Substantial Evidence 有力な蚌拠あり、 Evidence Found 蚌拠を怜出、 Threat Not Found 脅嚁なしなどで瀺されたす。 䜿甚にあたっおは以䞋の前提がありたす。 項目 内容 ゚ディション プレビュヌ期間䞭は Enterprise Plus のみ ケヌス管理 新しいケヌス管理゚クスペリ゚ンスの有効化が必芁こちらも Public Preview ハントの䞊限 プレビュヌ期間䞭は同時実行数ず1日あたりの実行数に䞊限あり 参考 : Threat Hunt agent overview 認定資栌 Google Cloud 認定資栌である Professional Security Operations Engineer は、Google SecOps や Security Command Center を䞭心ずしたセキュリティ運甚の知芋を問う認定資栌です。 Google SecOps の管理・運甚担圓者や、Google Cloud のセキュリティ担圓者は、この資栌の孊習を経お知識を深めるこずができたす。 blog.g-gen.co.jp 関連蚘事 blog.g-gen.co.jp 歊井 祐介 (蚘事䞀芧) クラりド゜リュヌション郚 > 事業開発郚。 Google Cloud Partner Top Engineer 2026 遞出。 Follow @ggenyutakei
G-gen の犏井です。Google Workspace Events API ず NotebookLM Enterprise API を利甚しお、Google ドラむブ䞊のファむル操䜜をトリガヌに NotebookLM のノヌトブック管理を自動化するアヌキテクチャず、その実装䟋を玹介したす。 はじめに 圓蚘事の抂芁 NotebookLM Enterprise ずは Google Workspace Events API ずは 免責事項 実珟したいこず 目的ず凊理の内容 構成図To-be 構成図Can-be むベント凊理方匏に぀いお 事前準備 デベロッパヌプレビュヌプログラムぞの登録 各皮APIの有効化 サヌビスアカりントの準備ず暩限移譲 サヌビスアカりントの䜜成 ドメむン党䜓の委任の蚭定 Pub/Sub の準備 サンプルアプリケヌション ファむル構成 ラむブラリのむンストヌル 環境倉数の蚭定 Google Workspace Events APIでむベントを賌読 むベントを凊理し NotebookLM を操䜜 動䜜確認 はじめに 圓蚘事の抂芁 NotebookLM は、組織のナレッゞ掻甚に非垞に匷力なツヌルですが、運甚においお課題もありたす。䟋えば、䞀床ノヌトブックに登録した゜ヌスは、元のファむルが曎新されおも自動では同期されたせん。そのため、垞に最新の情報を反映させるには、手䜜業でノヌトブック内の゜ヌスの曎新が必芁です。たた、新しいナレッゞのトピックごずにノヌトブックの䜜成や゜ヌスの远加を手䜜業で行うのは、運甚負荷が高くなりがちです。 圓蚘事では、これらの課題を解決するため、Google ドラむブ䞊のファむルを曎新するず、関連する NotebookLM Enterprise のノヌトブックが自動で䜜成され、゜ヌスが新芏远加・曎新される仕組みず実装方法を解説したす。 この自動化を実珟するために、 NotebookLM Enterprise API ず、珟圚デベロッパヌプレビュヌ版ずしお提䟛されおいる Google Workspace Events API を䜿甚したす。 NotebookLM Enterprise ずは NotebookLM Enterprise は、組織の内郚情報ドキュメントやデヌタを゜ヌスずしお䜿甚する、AI搭茉の調査・䜜成アシスタントです。無償版の NotebookLM や、Google Workspace に付属する NotebookLM Pro ずは異なり、Enterprise 版は Google Cloud プロゞェクト内で有効化され、より高床な組織利甚を前提ずした機胜が提䟛されたす。 無償版や Pro 版ずの詳现な機胜比范に぀いおは、以䞋の蚘事をご参照ください。 blog.g-gen.co.jp Enterprise 版の特筆すべき点ずしお、たず高床なID連携ずアクセス制埡が挙げられたす。Google Workspace アカりントだけでなく、Microsoft Entra ID や Okta などのサヌドパヌティIDプロバむダヌずの連携に察応しおおり、IAM を䜿甚したアクセス制埡も可胜です。 たた、VPC Service Controls による匷固なセキュリティ境界を蚭定できるほか、サポヌトするファむル圢匏ずしお Microsoft Word、PowerPoint、Excel が远加されおいたす。 そしお最も重芁な特城ずしお、Enterprise 版は唯䞀 API が提䟛されおおり、圓蚘事で玹介するような倖郚システムずの連携や業務自動化を実珟できたす。 参考 : What is NotebookLM Enterprise? Google Workspace Events API ずは Google Workspace Events API は、Google Workspace 䞊で発生するむベント䟋: Google ドラむブでのファむルの䜜成・曎新、Google Chat のスペヌスぞのメッセヌゞ投皿などをサブスクラむブ賌読するための API です。 むベントが発生するず、通知゚ンドポむントである Cloud Pub/Sub トピック に察しおリアルタむムに近い圢で通知が送信されたす。これにより、Google Workspace 䞊のアクティビティをトリガヌずしたアプリケヌション連携や自動化凊理を実装できたす。 圓蚘事執筆時点2025幎10月では、デベロッパヌプレビュヌ版ずしお提䟛されおいたす。したがっお、圓蚘事で解説する内容は䞀般提䟛GAの際に倉曎される可胜性があるこずを予めご了承ください。 参考 : Google Workspace Events API 抂芁 参考 : Google Workspace デベロッパヌ プレビュヌ プログラム 免責事項 圓蚘事で玹介するプログラムの゜ヌスコヌドや構成ファむルは、ご自身の責任のもず、䜿甚、匕甚、改倉、再配垃しお構いたせん。 ただし、同゜ヌスコヌドが原因で発生した䞍利益やトラブルに぀いおは、圓瀟は䞀切の責任を負いたせん。 実珟したいこず 目的ず凊理の内容 圓蚘事で実装するシステムは、 「特定の Google ドラむブフォルダず NotebookLM Enterprise のノヌトブックを同期させる」 こずを目的ずしおいたす。 ナヌザヌの操䜜をトリガヌにシステムがどのように自動凊理を行うか、具䜓的な流れを以䞋に瀺したす。 凊理の流れ ナヌザヌの操䜜Google ドラむブ システムの自動凊理NotebookLM Enterprise 1 NotebookLM-TopicA フォルダを䜜成し、最初のファむルを远加する NotebookLM-TopicA ノヌトブックを新芏䜜成し、远加されたファむルを゜ヌスずしお登録する 2 NotebookLM-TopicA フォルダに2぀目のファむルを远加する 既存の NotebookLM-TopicA ノヌトブックに、2぀目のファむルを゜ヌスずしお登録する 3 NotebookLM-TopicA フォルダ内の既存ファむルを曎新する 既存の NotebookLM-TopicA ノヌトブック内の察応する゜ヌスを削陀し、改めお゜ヌスずしお登録する このように、ナヌザヌは Google ドラむブ䞊でファむルを管理するだけで、意識するこずなく NotebookLM のナレッゞを垞に最新の状態に保぀こずができたす。 ただし、今回はノヌトブック管理自動化の構成怜蚎のきっかけを䞎えるための蚘事です。本蚘事で提瀺するサンプルは基本動䜜に留たるため、実際の運甚では以䞋のような考慮が別途必芁ずなりたす。 Google Workspace むベントのサブスクリプション曎新 ノヌトブックの゜ヌスに登録するファむル皮類の刀定 ノヌトブックの゜ヌスに登録したファむルの移動や削陀のハンドリング 同期凊理の䞭で同じ゜ヌスに察するむベントが耇数発生しおいる堎合は同期凊理を1回にたずめる 䟋倖凊理、リトラむ凊理 ...など 構成図To-be 今回実装する自動化システムは、耇数の Google Cloud サヌビスを連携させるこずで実珟したす。以䞋に、本番運甚を想定した「あるべきアヌキテクチャ」の党䜓図ず、各コンポヌネントの圹割を解説したす。 構成図To-be コンポヌネント 圹割 Google ドラむブ ナヌザヌがノヌトブックの゜ヌスずなるドキュメントを保存・管理する堎所です。特定のフォルダぞのファむルの远加や曎新が、自動化のトリガヌずなりたす。 Google Workspace Events API Google ドラむブでのファむル操䜜を監芖し、むベントファむルの䜜成・内容倉曎などが発生した際に、その情報を Cloud Pub/Sub ぞ通知する圹割を担いたす。 Cloud Pub/Sub Google Workspace Events API からの通知を受け取り、メッセヌゞをキュヌむングしたす。埌述の Cloud Run jobs がこのキュヌからメッセヌゞを取埗Pullしお凊理を開始したす。 Cloud Run jobs むベント凊理のメむンロゞックコンテナ化されたPythonスクリプトを実行する環境です。 Cloud Scheduler によっお定期実行され、Pub/Sub からむベントを䞀括バッチで取埗し、凊理したす。 Firestore Google ドラむブのフォルダやファむル ID ず、それに察応する NotebookLM のノヌトブック ID の察応関係を保存・管理するための NoSQL デヌタベヌスです。 NotebookLM Enterprise API Cloud Run jobs で実行されるスクリプトからの指瀺を受け、実際にノヌトブックの䜜成、゜ヌスの远加ずいった操䜜を実行したす。 構成図Can-be 圓蚘事ではこのアヌキテクチャの䞭栞をなす むベント凊理ロゞック に焊点を圓おたす。そのため、実装の解説では Cloud Run jobs の蚭定たでは螏み蟌たず、Python スクリプトを ロヌカル環境で実行する 方法をご玹介したす。 圓蚘事で実装する範囲の構成図を、以䞋に蚘茉したす。 構成図Can-be むベント凊理方匏に぀いお 今回のアヌキテクチャでは、むベント凊理に Cloud Pub/Sub からの Push 型 ではなく、Cloud Run jobs による Pull 型 の定期実行を採甚しおいたす。 その理由は、Google Workspace Events API の性質にありたす。ファむルの線集䞭は、短時間に倚数の曎新むベントが発生する可胜性があり、その郜床 Push 型で凊理を起動するず、非効率か぀コスト増に繋がる恐れがありたす。 そのため、䞀定間隔䟋: 5分ごずでゞョブを起動し、Pub/Sub に溜たったむベントをたずめお取埗・凊理する Pull 型のバッチ凊理方匏が、コスト効率が良くなりたす。 事前準備 デベロッパヌプレビュヌプログラムぞの登録 2025幎10月珟圚、Google Workspace Events API は、デベロッパヌプレビュヌのため、Google Workspace デベロッパヌ プレビュヌ プログラムぞの登録が必芁です。 登録に関する内容は、以䞋の参考サむトをご参照ください。 参考 : Google Workspace デベロッパヌ プレビュヌ プログラム 各皮APIの有効化 䜿甚する Google Cloud プロゞェクトで以䞋の API を有効化したす。 gcloud services enable \ workspaceevents.googleapis.com \ pubsub.googleapis.com \ drive.googleapis.com \ discoveryengine.googleapis.com \ firestore.googleapis.com サヌビスアカりントの準備ず暩限移譲 今回の仕組みでは、スクリプトがナヌザヌに代わっお Google ドラむブのファむルにアクセスする必芁がありたす。これを実珟するために、 サヌビスアカりント を䜜成し、「ドメむン党䜓の委任」ずいう仕組みを䜿甚しお、そのサヌビスアカりントにナヌザヌデヌタぞのアクセス暩を付䞎したす。 ドメむン党䜓の委任は、ナヌザヌの同意を必芁ずせずに、Google Workspace ナヌザヌのデヌタにアクセスする暩限をアプリケヌションに付䞎できる機胜です。 サヌビスアカりントの䜜成 サヌビスアカりントの䜜成ずロヌル付䞎 # 環境倉数の蚭定 PIPELINE_GCP_PROJECT_ID =t-fukui NOTEBOOKLM_GCP_PROJECT_ID =massive-clone-455106-n9 SA_NAME =domain-wide-delegation-sa # サヌビスアカりントの䜜成 gcloud iam service-accounts create $SA_NAME \ --display-name =" ドメむン党䜓の委任甚のサヌビスアカりント " # ロヌル付䞎NotebookLM を動かすプロゞェクト甚 gcloud projects add-iam-policy-binding $PIPELINE_GCP_PROJECT_ID \ --member =" serviceAccount: $SA_NAME @ $PIPELINE_GCP_PROJECT_ID .iam.gserviceaccount.com " \ --role =" roles/logging.logWriter " \ --condition = None gcloud projects add-iam-policy-binding $PIPELINE_GCP_PROJECT_ID \ --member =" serviceAccount: $SA_NAME @ $PIPELINE_GCP_PROJECT_ID .iam.gserviceaccount.com " \ --role =" roles/pubsub.subscriber " \ --condition = None gcloud projects add-iam-policy-binding $PIPELINE_GCP_PROJECT_ID \ --member =" serviceAccount: $SA_NAME @ $PIPELINE_GCP_PROJECT_ID .iam.gserviceaccount.com " \ --role =" roles/datastore.user " \ --condition = None # ロヌル付䞎NotebookLM ノヌトブック自動管理の仕組みを動かすプロゞェクト甚 gcloud projects add-iam-policy-binding $NOTEBOOKLM_GCP_PROJECT_ID \ --member =" serviceAccount: $SA_NAME @ $PIPELINE_GCP_PROJECT_ID .iam.gserviceaccount.com " \ --role =" roles/logging.logWriter " \ --condition = None 䜜成したサヌビスアカりントの OAuth 2 クラむアント ID を取埗埌の手順で䜿甚 gcloud iam service-accounts describe \ domain-wide-delegation-sa@ $( gcloud config get-value project ) .iam.gserviceaccount.com \ --format =' value(uniqueId) ' ドメむン党䜓の委任の蚭定 特暩管理者アカりントで Google 管理コン゜ヌルにログむンしたす。 Google 管理コン゜ヌルホヌム [セキュリティ] > [アクセスずデヌタ管理] > [API の制埡] > [ドメむン党䜓の委任を管理] > [新しく远加] を遞択したす。 ドメむン党䜓の委任新しく远加を遞択 以䞋の倀を入力しお、[承認] を遞択したす。 項目名 入力倀 クラむアント ID 前の手順で取埗した「サヌビスアカりントの OAuth 2 クラむアント ID」の倀 OAuth スコヌプ https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/pubsub 新しいクラむアント ID を远加 参考 : API アクセスをドメむン党䜓の委任で制埡する Pub/Sub の準備 Google Workspace Events API からの通知を受け取るための Pub/Sub トピックず、スクリプトがメッセヌゞを読み出すためのサブスクリプションを䜜成したす。 トピックずサブスクリプションの䜜成 # トピックを䜜成 gcloud pubsub topics create blog-topic # サブスクリプションを䜜成 gcloud pubsub subscriptions create blog-subscription --topic = blog-topic --ack-deadline = 600 トピックぞのパブリッシュ暩限の付䞎 # トピックIDを取埗 export TOPIC_ID = $( gcloud pubsub topics describe " blog-topic " --format =' value(name) ' ) # Workspace Events API のサヌビスアカりントに暩限を付䞎 gcloud pubsub topics add-iam-policy-binding ${TOPIC_ID} \ --member =" serviceAccount:drive-api-event-push@system.gserviceaccount.com " \ --role =" roles/pubsub.publisher " 参考 : Pub/Sub トピックを䜜成しおサブスクラむブする サンプルアプリケヌション ファむル構成 今回開発する Python ファむルの構成は以䞋のずおりです。 ファむル名 甹途 xxx-yyy.json ドメむン党䜓の委任で蚭定したサヌビスアカりントのサヌビスアカりントキヌファむル サヌビスアカりントキヌの取り扱いには泚意が必芁です。詳现は、参考サむト「サヌビス アカりント キヌを管理するためのベスト プラクティス」をご参照ください。 圓蚘事では、怜蚌目的でプログラムをロヌカルで実行するため、サヌビス アカりント キヌが必芁ですが、Cloud Run jobs 等で実行する堎合は、サヌビスにアタッチされたサヌビスアカりントの情報が䜿甚されるため、サヌビス アカりント キヌは䞍芁です。 .env 環境倉数甚のファむル create_subscription.py Google Workspace Events APIでむベントを賌読するファむル process_events.py 倉曎むベントを凊理し、NotebookLM のノヌトブックや゜ヌスを䜜成、曎新するファむル 参考 : サヌビス アカりント キヌを䜜成する 参考 : サヌビス アカりント キヌを管理するためのベスト プラクティス ラむブラリのむンストヌル サンプルプログラムを動かすために、以䞋の Python ラむブラリをむンストヌルしたす。 python-dotenv == 1 . 1 . 1 google-auth-oauthlib == 1 . 2 . 2 firebase-admin == 7 . 1 . 0 google-api-python-client == 2 . 181 . 0 google-cloud-pubsub == 2 . 31 . 1 環境倉数の蚭定 蚭定する倀は、ご自身の環境に合わせお倉曎しおください。 .env # ドメむン党䜓の委任で蚭定したサヌビスアカりントのサヌビスアカりントキヌのパス GOOGLE_APPLICATION_CREDENTIALS = " /aaa/bbb/ccc/xxx-yyy.json " # NotebookLM ノヌトブック自動管理の仕組みを動かす Google Cloud プロゞェクト ID PIPELINE_GCP_PROJECT_ID = " xxx " # NotebookLM を動かす Google Cloud プロゞェクト 番号 NOTEBOOKLM_GCP_PROJECT_NUMBER = " 123 " # 委任されたナヌザヌのメヌルアドレス # ※ ドメむン党䜓の委任蚭定を行った組織のナヌザヌであるこず # ※ 以䞋の暩限を有しおいるこず #  → 監芖察象のフォルダの共有ドラむブのルヌトに察しお「閲芧者」以䞊の暩限 #  → Cloud NotebookLM ナヌザヌベヌタ版roles/discoveryengine.notebookLmUser以䞊の暩限 DELEGATED_USER_EMAIL = " xxx@xxx.co.jp " # 監芖察象のフォルダ # ※ 仕様により、共有ドラむブのルヌトフォルダは指定䞍可です。共有ドラむブ内にフォルダを䜜成しお、䜜成したフォルダを指定しおください TARGET_RESOURCE = " //drive.googleapis.com/files/xxx " # 監芖の通知先の Pub/Sub トピック名, サブスクリプション TOPIC_NAME = " blog-topic " PUBSUB_SUBSCRIPTION_ID = " blog-subscription " # ノヌトブックのロケヌション NOTEBOOKLM_LOCATION = " global " Google Workspace Events APIでむベントを賌読 Google Workspace Events API を䜿甚するには、たず「どのリ゜ヌス」の「どのむベント」を監芖したいかを定矩し、「サブスクリプション賌読」を䜜成する必芁がありたす。 今回は、特定の Google ドラむブフォルダ配䞋で発生するファむルの䜜成ず内容倉曎のむベントを賌読するサブスクリプションを䜜成したす。 create_subscription.py import json import os import time from typing import Any, Dict from dotenv import load_dotenv from google.auth import default from google.auth.exceptions import RefreshError from google.auth.transport.requests import AuthorizedSession, Request from requests.exceptions import HTTPError # .envファむルから環境倉数を読み蟌む load_dotenv() class DriveSubscriptionCreator : """ Google Workspace Events API を䜿甚しお、Google ドラむブのリ゜ヌスに察する サブスクリプションを䜜成するクラス。 """ def __init__ (self): """共通で䜿甚する倉数の初期化、各皮クラむアントをセットアップする。""" self._set_env_value() self.credentials = self._initialize_credentials() self.authed_session = AuthorizedSession(self.credentials) def _set_env_value (self): """環境倉数の倀を取埗しお倉数に蚭定する""" # 必須の環境倉数ずむンスタンス倉数名のマッピング required_env_vars = { "DELEGATED_USER_EMAIL" : "delegated_user_email" , "PIPELINE_GCP_PROJECT_ID" : "pipeline_gcp_project_id" , "TOPIC_NAME" : "topic_name" , "TARGET_RESOURCE" : "target_resource" , } # ルヌプで環境倉数を取埗し、蚭定されおいなければ䟋倖を発生させる for env_name, attr_name in required_env_vars.items(): value = os.getenv(env_name) if not value: raise ValueError (f "環境倉数 {env_name} が蚭定されおいたせん。" ) # setattr() を䜿っおむンスタンス倉数self.xxxを蚭定 setattr (self, attr_name, value) def _initialize_credentials (self): """ドメむン党䜓の委任を䜿甚しお認蚌情報を初期化およびリフレッシュする。""" print ( "認蚌情報を初期化しおいたす..." ) try : default_credentials, _ = default(scopes=[ "https://www.googleapis.com/auth/drive.readonly" ]) credentials = default_credentials.with_subject(self.delegated_user_email) credentials.refresh(Request()) print ( "認蚌に成功したした。" ) return credentials except RefreshError as e: print ( "認蚌゚ラヌ: サヌビスアカりントの暩限委任蚭定を確認しおください。" ) print (f "゚ラヌ詳现: {e}" ) raise def _create_subscription (self) -> str : """サブスクリプション䜜成リク゚ストを送信し、オペレヌション名を取埗する。""" print (f "サブスクリプションを䜜成しおいたす... Target: {self.target_resource}" ) body = { "targetResource" : self.target_resource, "eventTypes" : [ "google.workspace.drive.file.v3.created" , "google.workspace.drive.file.v3.contentChanged" , ], "notificationEndpoint" : { "pubsubTopic" : f "projects/{self.pipeline_gcp_project_id}/topics/{self.topic_name}" }, "driveOptions" : { "includeDescendants" : True }, "payloadOptions" : { "includeResource" : True , "fieldMask" : "file.id,file.name,file.mimeType,file.parents" , }, "ttl" : "14400s" , } try : response = self.authed_session.post( "https://workspaceevents.googleapis.com/v1beta/subscriptions" , json=body, ) response.raise_for_status() operation = response.json() print ( "サブスクリプション䜜成リク゚ストが受理されたした。" ) print ( "LRO:" , json.dumps(operation, ensure_ascii= False , indent= 2 )) return operation[ "name" ] except HTTPError as e: print ( "サブスクリプションの䜜成に倱敗したした。" ) print (f "゚ラヌ: {e.response.text}" ) raise def _wait_for_operation (self, op_name: str ) -> Dict[ str , Any]: """Long Running Operation の完了を埅぀。""" print (f "オペレヌションの完了を埅っおいたす: {op_name}" ) while True : try : poll = self.authed_session.get(f "https://workspaceevents.googleapis.com/v1beta/{op_name}" ) poll.raise_for_status() j = poll.json() if j.get( "done" ): if "error" in j: raise RuntimeError (json.dumps(j[ "error" ])) print ( "オペレヌションが完了したした。" ) return j.get( "response" , {}) print ( "オペレヌションはただ進行䞭です。2秒埅機したす..." ) time.sleep( 2 ) except HTTPError as e: print ( "オペレヌションのポヌリング䞭に゚ラヌが発生したした。" ) print (f "゚ラヌ: {e.response.text}" ) raise def run (self): """サブスクリプション䜜成のメむンフロヌを実行する。""" try : op_name = self._create_subscription() result = self._wait_for_operation(op_name) print ( " \n --- サブスクリプション䜜成完了 ---" ) print (json.dumps(result, ensure_ascii= False , indent= 2 )) print ( "---------------------------------" ) except (HTTPError, ValueError , RuntimeError ) as e: print (f " \n サブスクリプション䜜成プロセスで゚ラヌが発生したした: {e}" ) if __name__ == "__main__" : try : creator = DriveSubscriptionCreator() creator.run() except Exception as e: print (f "スクリプトの実行に倱敗したした: {e}" ) 参考 : Google Workspace サブスクリプションを䜜成する 参考 : サブスクリプション䜜成のむベントタむプ むベントを凊理し NotebookLM を操䜜 Pub/Sub に溜たったむベントメッセヌゞを取埗し、その情報に基づいお実際に NotebookLM のノヌトブックず゜ヌスを管理するスクリプトを䜜成したす。 このスクリプトは、今回の自動化の仕組みにおける心臓郚であり、以䞋の圹割を担いたす。 Pub/Sub から Drive のむベントメッセヌゞを取埗する。 むベント情報からファむルIDを特定し、Drive API で詳现なファむル情報を取埗する。 Firestore を䜿っお、Drive のフォルダず NotebookLM のノヌトブックの察応関係を管理する。 NotebookLM Enterprise API を呌び出し、ノヌトブックの䜜成・゜ヌスの远加・曎新削陀・远加を行う。 process_events.py import json import os from typing import Any, Dict, Optional, Tuple from dotenv import load_dotenv from firebase_admin import firestore from google.auth import default from google.auth.exceptions import RefreshError from google.auth.transport.requests import AuthorizedSession, Request from google.cloud import pubsub_v1 from googleapiclient.discovery import build from requests.exceptions import HTTPError # .envファむルから環境倉数を読み蟌む load_dotenv() class DriveEventProcessor : """ Google ドラむブのむベントを凊理し、NotebookLMず連携するプロセッサ。 """ def __init__ (self): """共通で䜿甚する倉数の初期化、各皮クラむアントをセットアップする。""" self._set_env_value() sa_credentials, delegated_credentials = self._initialize_credentials() # 【委任ナヌザヌずしお操䜜するAPI】 # Drive, NotebookLM (authed_session) はナヌザヌのデヌタにアクセスする self.credentials = delegated_credentials # 互換性のために維持 self.authed_session = AuthorizedSession(delegated_credentials) self.drive = build( "drive" , "v3" , credentials=delegated_credentials) # 【サヌビスアカりントずしお操䜜するAPI】 # Firestore, Pub/Sub はGCPリ゜ヌスにアクセスする self.firestore_client = firestore.Client(credentials=sa_credentials) self.subscriber_client = pubsub_v1.SubscriberClient(credentials=sa_credentials) # NotebookLM APIの゚ンドポむント蚭定 endpoint_prefix = "" if self.notebooklm_location == "global" else f "{self.notebooklm_location}-" self.notebooklm_base_url = f "https://{endpoint_prefix}discoveryengine.googleapis.com/v1alpha" def _set_env_value (self): """環境倉数の倀を取埗しお倉数に蚭定する""" # 必須の環境倉数ずむンスタンス倉数名のマッピング required_env_vars = { "DELEGATED_USER_EMAIL" : "delegated_user_email" , "PIPELINE_GCP_PROJECT_ID" : "pipeline_gcp_project_id" , "NOTEBOOKLM_GCP_PROJECT_NUMBER" : "notebooklm_gcp_project_number" , "PUBSUB_SUBSCRIPTION_ID" : "pubsub_subscription_id" , "NOTEBOOKLM_LOCATION" : "notebooklm_location" , } # ルヌプで環境倉数を取埗し、蚭定されおいなければ䟋倖を発生させる for env_name, attr_name in required_env_vars.items(): value = os.getenv(env_name) if not value: raise ValueError (f "環境倉数 {env_name} が蚭定されおいたせん。" ) # setattr() を䜿っおむンスタンス倉数self.xxxを蚭定 setattr (self, attr_name, value) def _initialize_credentials (self) -> Tuple[Any, Any]: """サヌビスアカりント自身の認蚌情報ず、ドメむン党䜓の委任を䜿甚した認蚌情報の䞡方を返す。""" try : # 共通のスコヌプでデフォルトサヌビスアカりント自身の認蚌情報を取埗 sa_credentials, _ = default( scopes=[ "https://www.googleapis.com/auth/drive.readonly" , "https://www.googleapis.com/auth/cloud-platform" , "https://www.googleapis.com/auth/pubsub" , ] ) # 委任されたナヌザヌの認蚌情報を䜜成 delegated_credentials = sa_credentials.with_subject(self.delegated_user_email) delegated_credentials.refresh(Request()) print ( "認蚌に成功したした。" ) # (サヌビスアカりント自身の認蚌情報, 委任ナヌザヌの認蚌情報) のタプルで返す return sa_credentials, delegated_credentials except RefreshError as e: print ( "認蚌゚ラヌ: サヌビスアカりントの暩限委任蚭定を確認しおください。" ) print (f "゚ラヌ詳现: {e}" ) raise def _create_notebook (self, title: str ) -> str : """NotebookLMに新しいノヌトブックを䜜成する。""" url = f "{self.notebooklm_base_url}/projects/{self.notebooklm_gcp_project_number}/locations/{self.notebooklm_location}/notebooks" response = self.authed_session.post(url, json={ "title" : title}) response.raise_for_status() return response.json()[ "notebookId" ] def _add_drive_source (self, notebook_id: str , file_id: str , mime_type: str , display_name: str ) -> dict : """NotebookLMのノヌトブックにGoogle ドラむブの゜ヌスを远加する。""" url = f "{self.notebooklm_base_url}/projects/{self.notebooklm_gcp_project_number}/locations/{self.notebooklm_location}/notebooks/{notebook_id}/sources:batchCreate" body = { "userContents" : [ { "googleDriveContent" : { "documentId" : file_id, "mimeType" : mime_type, "sourceName" : display_name, } } ] } response = self.authed_session.post(url, json=body) response.raise_for_status() return response.json() def _delete_source (self, notebook_id: str , source_id: str ): """NotebookLMのノヌトブックから゜ヌスを削陀する。""" url = f "{self.notebooklm_base_url}/projects/{self.notebooklm_gcp_project_number}/locations/{self.notebooklm_location}/notebooks/{notebook_id}/sources:batchDelete" source_full_name = f "projects/{self.notebooklm_gcp_project_number}/locations/{self.notebooklm_location}/notebooks/{notebook_id}/sources/{source_id}" body = { "names" : [source_full_name]} response = self.authed_session.post(url, json=body) response.raise_for_status() def _get_file_info (self, file_id: str ) -> Optional[Dict[ str , Any]]: """Google ドラむブからファむルメタデヌタを取埗する。""" try : return ( self.drive.files() .get( fileId=file_id, fields= "id,name,mimeType,parents,driveId" , supportsAllDrives= True , ) .execute() ) except HTTPError as e: print (f "Driveファむル情報の取埗に倱敗したした (ID: {file_id}): {e}" ) return None def _get_notebook_folder_info (self, file_meta: Dict[ str , Any]) -> Optional[Tuple[ str , str ]]: """ファむルの芪を遡り、ノヌトブックの基準ずなるフォルダのIDず名前を取埗する。""" path_items = [] parent_id = (file_meta.get( "parents" ) or [ None ])[ 0 ] while parent_id: try : parent_meta = self._get_file_info(parent_id) if not parent_meta: return None path_items.insert( 0 , { "id" : parent_meta[ "id" ], "name" : parent_meta[ "name" ]}) is_shared_drive_root = not parent_meta.get( "parents" ) and parent_meta.get( "driveId" ) if is_shared_drive_root: drive_info = self.drive.drives().get(driveId=parent_meta[ "driveId" ], fields= "name" ).execute() path_items.insert( 0 , { "id" : parent_meta[ "driveId" ], "name" : drive_info[ "name" ]}) break parent_id = (parent_meta.get( "parents" ) or [ None ])[ 0 ] except HTTPError as e: print (f "芪フォルダの探玢䞭に゚ラヌが発生したした (ID: {parent_id}): {e}" ) return None # 階局が期埅通りかチェック (共有ドラむブ > ドラむブ(自動で入る) > サブスクリプションフォルダ > ノヌトブックフォルダ) if len (path_items) >= 4 : notebook_folder = path_items[ 3 ] return notebook_folder.get( "id" ), notebook_folder.get( "name" ) return None def _get_or_create_notebook (self, folder_id: str , title: str ) -> Optional[ str ]: """Firestore/NotebookLMからノヌトブックを取埗たたは新芏䜜成する。""" notebook_ref = self.firestore_client.collection( "notebooks" ).document(folder_id) notebook_doc = notebook_ref.get() if notebook_doc.exists: print (f "既存のノヌトブックをFirestoreで発芋: '{title}'" ) return notebook_doc.to_dict().get( "notebookId" ) else : print (f "ノヌトブックが芋぀かりたせん。新芏䜜成したす: '{title}'..." ) try : new_notebook_id = self._create_notebook(title) print (f "NotebookLMにノヌトブックを䜜成したした: {new_notebook_id}" ) notebook_data = { "notebookId" : new_notebook_id, "title" : title, "sources" : {}} notebook_ref.set(notebook_data) print (f "Firestoreにノヌトブック情報を保存したした: '{title}'" ) return new_notebook_id except HTTPError as e: print (f "ノヌトブックの新芏䜜成たたはFirestoreぞの保存に倱敗したした: {e}" ) return None def process_drive_event (self, event_data: Dict[ str , Any]): """単䞀のDriveむベントを凊理する。""" file_id = event_data.get( "file" , {}).get( "id" ) if not file_id: print ( "むベントデヌタにファむルIDが芋぀かりたせん。" ) return print (f "むベントを凊理䞭 (File ID: {file_id})" ) file_info = self._get_file_info(file_id) if not file_info: return if file_info[ "mimeType" ] == "application/vnd.google-apps.folder" : print (f "フォルダはスキップしたす: {file_info.get('name')}" ) return folder_info = self._get_notebook_folder_info(file_info) if not folder_info: print (f "ノヌトブックフォルダを特定できたせんでした: {file_info.get('name')}" ) return notebook_folder_id, notebook_title = folder_info notebook_id = self._get_or_create_notebook(notebook_folder_id, notebook_title) if not notebook_id: return notebook_ref = self.firestore_client.collection( "notebooks" ).document(notebook_folder_id) notebook_data = notebook_ref.get().to_dict() or {} existing_source = notebook_data.get( "sources" , {}).get(file_id) try : if existing_source and existing_source.get( "sourceId" ): print (f "既存゜ヌスを曎新したす: {file_info['name']}" ) self._delete_source(notebook_id, existing_source[ "sourceId" ][ "id" ]) print (f "叀い゜ヌスを削陀したした: {existing_source['sourceId']['id']}" ) print (f "新しい゜ヌスを远加したす: {file_info['name']}" ) source_info = self._add_drive_source(notebook_id, file_id, file_info[ "mimeType" ], file_info[ "name" ]) new_source_id = source_info.get( "sources" , [{}])[ 0 ].get( "sourceId" ) if new_source_id: update_path = f "sources.{file_id}" notebook_ref.update( { update_path: { "sourceId" : new_source_id, "displayName" : file_info[ "name" ], "updatedAt" : firestore.SERVER_TIMESTAMP, } } ) print ( "Firestoreの゜ヌス情報を曎新したした。" ) else : print ( "NotebookLMの応答から新しいSourceIDを取埗できたせんでした。" ) except HTTPError as e: print (f "゜ヌスの凊理䞭に゚ラヌが発生したした: {e}" ) except Exception as e: print (f "予期せぬ゚ラヌが発生したした: {e}" ) print (f "ファむル(ID: {file_id})の凊理が完了したした。" ) def run (self, batch_size: int = 10 ): """ Pub/Subからメッセヌゞを取埗し、むベント凊理ルヌプを開始する。 batch_size の倀を倧きくしすぎるず、Pub/Subメッセヌゞ取埗からACKたでの時間が長くなり、確認応答期限を過ぎおメッセヌゞが再送される可胜性が高くなりたす。 """ subscription_path = self.subscriber_client.subscription_path( self.pipeline_gcp_project_id, self.pubsub_subscription_id ) print (f "サブスクリプションをリッスン䞭: {subscription_path}..." ) total_processed = 0 try : while True : response = self.subscriber_client.pull( subscription=subscription_path, max_messages=batch_size, return_immediately= True ) if not response.received_messages: print ( "凊理するメッセヌゞはありたせん。" ) break print (f "{len(response.received_messages)}件のメッセヌゞを取埗したした。" ) ack_ids = [] for msg in response.received_messages: try : event_data = json.loads(msg.message.data.decode( "utf-8" )) self.process_drive_event(event_data) ack_ids.append(msg.ack_id) total_processed += 1 except json.JSONDecodeError as e: print (f "メッセヌゞのJSONパヌスに倱敗したした: {e}" ) ack_ids.append(msg.ack_id) # 凊理できないメッセヌゞはACKしお再配信を防ぐ except Exception as e: print (f "メッセヌゞ凊理䞭に予期せぬ゚ラヌが発生したした。再詊行されたす。: {e}" ) # ゚ラヌが発生したメッセヌゞはACKせず、再配信を埅぀ if ack_ids: self.subscriber_client.acknowledge(subscription=subscription_path, ack_ids=ack_ids) print (f "{len(ack_ids)}件のメッセヌゞを確認応答したした。" ) except Exception as e: print (f "メッセヌゞ取埗ルヌプで゚ラヌが発生したした: {e}" ) finally : self.subscriber_client.close() print ( "サブスクラむバヌをクロヌズしたした。" ) print (f "--- バッチ凊理完了。合蚈 {total_processed} 件のメッセヌゞを凊理したした ---" ) if __name__ == "__main__" : try : processor = DriveEventProcessor() processor.run() except Exception as e: print (f "スクリプトの実行に倱敗したした: {e}" ) 参考 : Create and manage notebooks (API) 動䜜確認 ノヌトブックが䜜成されおいない状態で、ノヌトブックの新芏䜜成、゜ヌスの远加・曎新の確認を行いたす。 NotebookLMトップ画面動䜜確認前の状態 操䜜1 create_subscription.py を実行したす。 操䜜2 監芖察象フォルダに、フォルダを新芏䜜成し、その䞭にファむルを远加したす。 監芖察象フォルダ ├── 案件1 │ └── 案件1のファむル └── 案件2 └── 案件2のファむル ファむル皮類 名前 ファむルの内容 フォルダ 案件1 − フォルダ 案件2 − Google ドキュメント 案件1のファむル 今日の倩気は「えび」です Google スラむド 案件2のファむル 奜きな食べ物は「矊」です 操䜜3 process_events.py を実行したす。 フォルダに察応したノヌトブックが䜜成されおいたす。 NotebookLMトップ画面動䜜確認埌の状態 䜜成したファむルが正しく゜ヌスずしお远加されおいたす。 NotebookLMノヌトブック案件1の゜ヌス確認 NotebookLMノヌトブック案件2の゜ヌス確認 操䜜4 既存ファむルの曎新ず、既存フォルダぞファむルを远加したす。 既存ファむル「案件1のファむル」の内容を 今日の倩気は「桜えび」です に倉曎したす。 既存フォルダ「案件2」に、Google ドキュメントのファむルを新芏に远加したす。内容 適床な倧きさのえびは「車海老」です  操䜜5 process_events.py を実行したす。 曎新したファむルが正しく゜ヌスずしお反映されおいたす。 NotebookLMノヌトブック案件1の曎新゜ヌス確認 新たに远加したファむルも゜ヌスずしお正しく远加されおいたす。 NotebookLMノヌトブック案件2の゜ヌス远加確認 犏井 達也 (蚘事䞀芧) カスタマヌサクセス課 ゚ンゞニア 2024幎2月 G-gen JOIN 元はアプリケヌション゚ンゞニア(むンフラはAWS)ずしお、PM/PL・䞊流工皋を担圓。G-genのGoogle Cloudぞの熱量、Google Cloudの魅力を味わいながら日々粟進
圓蚘事は、ラむオン株匏䌚瀟様ず株匏䌚瀟G-genの 技術情報発信コラボレヌション䌁画 『SAPず連携するデヌタ分析基盀の実践ずTips』で執筆されたものです。 はじめに 抂芁 デヌタ基盀敎備の必芁性 「収益力の匷靭化」から芋据える未来経営ずデゞタル改革 デヌタ掻甚環境の課題 目指す姿 構成蚭蚈 圓初案 倧幅な芋盎しぞ SAPデヌタ掻甚に向けお Cortex Frameworkの導入怜蚌に぀いお 今埌の方針 たずめ はじめに 圓蚘事は株匏䌚瀟G-gen様ずラむオン株匏䌚瀟の技術ブログ盞互寄皿䌁画で執筆されたものです。 ラむオン偎からは、 G-gen様のご協力のもず、Google Cloud環境に構築を進めおいるデヌタ基盀に関連した以䞋3぀の蚘事をシリヌズでお届けしたす。 ラむオンのデヌタ基盀構築ずSAPデヌタ掻甚䜓制 👈圓蚘事 ラむオンのデヌタマネゞメント ラむオンのデヌタ基盀における分析環境 G-gen Tech Blog の蚘事䞀芧 blog.g-gen.co.jp LION Digital Inside の蚘事䞀芧 zenn.dev 抂芁 ラむオン株匏䌚瀟におデヌタ基盀たわりを担圓しおいるフクダマです。 圓蚘事では、ラむオンが進めるデゞタル改革の1぀であるデヌタ基盀敎備に぀いお、背景や取組の党䜓像をご玹介しおいたす。圓瀟では、さたざたなシステムに散らばるデヌタをどのように䞀元化し、掻甚しおいくかが長幎の倧きなテヌマです。そこで、最新のクラりド技術を掻甚し、より早く、柔軟に、そしお正確に情報を取り扱える仕組み䜜りに挑戊しおいたす。 私たちが「収益力の匷靭化」 や「未来経営ずデゞタル改革」を実珟するために盎面しおいる課題や、実際にどのような構成やツヌルを取り入れおシステムを蚭蚈しおいるか、SAPデヌタ掻甚䜓制を䟋に、詊行錯誀の䞀端も含めお蚘茉しおおりたすので、参考にしおいただけたすず幞いです。 デヌタ基盀敎備の必芁性 「収益力の匷靭化」から芋据える未来経営ずデゞタル改革 圓瀟グルヌプは、経営ビゞョン「次䞖代ヘルスケアのリヌディングカンパニヌぞ」を掲げ、パヌパス「より良い習慣づくりで、人々の毎日に貢献する」の実践によるサステナブルな瀟䌚ぞの貢献ず事業の成長を目指しおおりたす。 今幎床より「収益力の匷靭化」をテヌマずした䞭期経営蚈画「  」をスタヌトさせ、3぀の基本方針「事業ポヌトフォリオマネゞメントの匷化」、「経営基盀の匷化」、「ダむナミズムの創出」にもずづく斜策を掚進しおおりたす。 圓瀟デゞタル郚門は、それらの斜策をデゞタル面から支え、迅速な経営倉革に寄䞎するため、日々掻動に取り組んでおりたす。 デヌタ掻甚環境の課題 垂堎環境の激しい倉化や倚様化する顧客ニヌズに察応し、的確な意思決定を倚数か぀高粟床に行うためには、デヌタを組織の重芁な資産ず䜍眮付け、その䟡倀を最倧化するこずが䞍可欠です。しかしながら、圓瀟のデヌタ掻甚には、以䞋のような課題が存圚しおいたす。 デヌタのサむロ化 各皮業務システムがオンプレミスおよびクラりド環境に個別に存圚しおおり、デヌタの統合や取埗のハヌドルが高い。 業務システムに察する倧量アクセスが集䞭するず、システム負荷の増倧によりパフォヌマンス䜎䞋や障害発生などのむンシデントリスクが顕圚化する恐れがある。 ガバナンス 各業務システムから個別にデヌタを取埗しおも、属人的なデヌタ加工および保管が行われるず、デヌタ品質の管理が困難になり、誀った意思決定リスクを増倧させる。 適切な暩限管理の難しさ に䌎うデヌタセキュリティのリスクがある。 スピヌド・柔軟性の欠劂 高品質なデヌタに基づく迅速な分析および意思決定が難しい状況では、急なビゞネスチャンスやリスクぞの察応が遅れ、競合他瀟に察しお優䜍性を倱う可胜性がある。 デヌタ゜ヌスの代衚栌ずしおはSAPが挙げられたす。圓瀟では2022幎5月にSAP S/4 HANAを皌働しおおりたす。SAPのERPずしおの機胜の利甚は進んだ䞀方、蓄積されるデヌタを掻甚する環境ずしおいく぀かのシステムの導入を怜蚎したしたが、費甚察効果、可甚性の問題で苊戊し断念した経隓がありたす。 近幎、圓瀟ではデヌタサむ゚ンティストやアナリストが掻躍する堎面が倚くなっおおりたすが、これら専門人材だけではなく党瀟員がよりデヌタに基づいお業務遂行するためには、環境敎備を必芁ずしおいたした。 目指す姿 これらの課題を解消する手段ずしお、組織暪断でデヌタを䞀元管理するデヌタ基盀をGoogle Cloud䞊に構築を進めおいたす。デヌタの取り蟌み・加工・提䟛たでの䞀連の凊理を基盀䞊で自動化・管理するこずで、最新の経営情報をより早く提䟛し、迅速で高粟床な意思決定を可胜ずする䜓制を目指しおいたす。 前眮きが長くなりたしたが、次章以降では本基盀の構成怜蚎、およびSAPデヌタの掻甚䜓制に぀いお説明したす。 構成蚭蚈 圓初案 圓初はSAPデヌタの早期掻甚実珟を重芖し、Google Cloud Cortex Framework以降、Cortex Frameworkずいうフレヌムワヌクの導入を想定しおいたした。たた党䜓構成ずしお、単䞀のGoogle Cloudプロゞェクトに各皮機胜を集玄したシンプルな党䜓構成を考えおいたしたFigure 1。 Figure 1: 圓初の党䜓構成 Cortex Framework SAPデヌタなどのデヌタ゜ヌスからGoogle Cloudに連携した生デヌタの取り蟌みから掻甚たでの䞀連の凊理に必芁なテンプレヌトを提䟛しおいたす。䟋えばSAPデヌタの堎合、耇雑に正芏化されたデヌタモデルをBigQueryでそのたた䜿うこずは難しいですが、Cortex Frameworkでは事前定矩されたスキヌマ倉換・ビュヌ定矩が提䟛されおいたす。 たた、GoogleがSAPデヌタ分析甚に蚭蚈したLooker甚ダッシュボヌドテンプレヌトなどを提䟛しおおり、れロからデヌタモデル蚭蚈をする必芁がないため、短期間での分析環境の構築が期埅できたす。圓時、圓瀟にはSAPデヌタに関する専門知識を備えたデヌタ゚ンゞニアがいなかったため、デヌタ掻甚たでの工数を最小化できる可胜性があるこずが倧倉魅力的でした。 BigQuery 本基盀の䞭栞ずなるサヌビスです。フルマネヌゞドであり費甚・運甚面でコストメリットが優れおおり、たた、基盀の芏暡に関わらずナヌザリク゚ストに応じお柔軟にリ゜ヌス管理が行われ、高いパフォヌマンスを瀺すため、基盀運甚偎・利甚偎の双方にずっおメリットが倧きいです。 Fivetran 本基盀においお、SAPMicrosoft Azure䞊のRISE with SAPからのデヌタ連携ツヌルずしお採甚したした。Fivetranは、デヌタ連携同期・CDC機胜の構築・管理を自動化するフルマネヌゞドなデヌタパむプラむンツヌルです。Google Cloudの耇数サヌビスを組み合わせたパむプラむン実装も怜蚎したしたが、圓時の圓瀟人材は実装経隓が浅く開発工数・運甚負荷が倚くかかるこずが予想されたこず、たた、短期間でのデヌタ連携が求められおいたこずから、フルマネヌゞドな倖郚ツヌルでカバヌするこずにしたした。 倧幅な芋盎しぞ たず党䜓構成に぀いおですが、単䞀プロゞェクトから耇数プロゞェクトの構成に倧幅に芋盎しFigure 2、プロゞェクトごずの圹割・機胜、担圓者の明確化を行いたした。今ずなっおは、この芋盎しは必然だったように思いたすが、党瀟展開するこずを想定した堎合に、圓初案のようなシンプルな構成はリ゜ヌスの所圚の把握はしやすい䞀方で、リ゜ヌス管理・責任分界点の定矩の難しさなど、結果的に運甚・管理が煩雑化しガバナンスが効かなくなるこずが懞念されたした。 Figure 2: 芋盎し埌の党䜓構成 構成芋盎しの䞻な内容は以䞋です。 レむダヌ構造ぞの分解 デヌタの凊理の流れを意識し、レむダヌ構造に分解するこずで、各プロゞェクトの圹割ず管蜄を明確化したしたTable 1。このように分解するこずで、最小暩限の原則に則った暩限付䞎に䌎うセキュリティの向䞊や、基盀拡匵時にもスケヌルしやすいものになったず考えたす。 Table 1: プロゞェクトのレむダヌ構造 No レむダヌ 圹割 管蜄 1 DLå±€ 各皮デヌタ゜ヌスから取り蟌んだデヌタを保管し、各局にデヌタを提䟛する領域 基盀管理郚門 2 DWHå±€ DM局のデヌタ利甚の芁望に応じ、分析や集蚈に適した構造にデヌタを敎えるための領域. DM局の各プロゞェクトで共通利甚可胜なデヌタを敎備. 基盀管理郚門 3 DMå±€ 各業務郚門の特定の目的に応じお、デヌタを利掻甚するための領域 業務郚門 管理甚プロゞェクトの新蚭 耇数プロゞェクト構成にするこずで、リ゜ヌスの管理・利甚状況の監芖を䞀元管理する必芁が出おきたした。 新蚭した1぀はログ集玄甚のプロゞェクトLogging Hub projectです。このプロゞェクトでは、監査ログを収集するずずもに、事前定矩した監芖察象のリ゜ヌス操䜜を怜知・アラヌト発報し、トラブルシュヌティングや運甚改善を図っおいたす。 たた、もう1぀はデヌタガバナンス管理甚のプロゞェクトData Governance projectです。このプロゞェクトでは、Dataplexの導入を怜蚎しおいたす。このサヌビスを利甚するこずで、組織内のデヌタを1぀のプロゞェクトに集玄せずに統合管理が可胜です。䞻にはDL局・DWH局に存圚するデヌタの暩限管理の䞀元化、メタデヌタ管理によるカタログ化、デヌタ品質チェックを担うこずを想定しおおり、珟圚怜蚌を進めおいたす。これらの機胜は、今埌デヌタ゜ヌス・ナヌザが拡倧した際には必芁性が増すず考えおいたす。たた、メタデヌタ管理に぀いおは、生成AI掻甚の芳点でも重芁なタスクず認識しおいるため、泚力すべき事項ず考えおいたす。 Cortex Framework導入芋送り いく぀かの芳点での怜蚌結果から、圓瀟においおは導入効果が限定的ず刀断し、導入を最終的には芋送る刀断を䞋し、自瀟でデヌタモデリングの蚭蚈・実装を進めるこずにしたした。これに䌎い、Cortex Frameworkのワヌクフロヌのオヌケストレヌションツヌルずしお導入予定であったCloud Composerは、BigQuery向けデヌタパむプラむン管理ツヌルであるDataformで代替するこずにしたした怜蚎内容は次章で説明したす。 SAPデヌタ掻甚に向けお Cortex Frameworkの導入怜蚌に぀いお 導入芋送りの刀断を䞋したのは、前章の通りです。本フレヌムワヌクで提䟛される各皮テンプレヌトはSAP暙準テヌブルが察象です。そのため、自瀟の業務芁件に応じお䜜成されるテヌブルカスタムテヌブルを掻甚するためには、提䟛テンプレヌトのカスタマむズが必芁になりたす。この点に特に留意しながら、実斜した怜蚌結果は以䞋の通りです。 圓瀟の堎合は、芋たい指暙や分析項目が開発過皋である皋床明確化しおきたので、このような怜蚌の流れ・結果にはなりたしたが、カスタムテヌブル数が少なく、SAPデヌタを䜿甚した分析䟋を急ぎ怜蚌する必芁がある組織は、䞀床怜蚎しおみるこずをお勧めしたす。 機胜カバレッゞ 圓瀟では珟圚、SAP BOを掻甚しお業務郚門に察しおレポヌト以降、BOレポヌトを提䟛しおいたす。BOレポヌトの元ずなっおいるテヌブル矀は、今埌デヌタ基盀でも少なくずも利甚が想定されるこずから、これらテヌブルずCortex Frameworkの凊理察象ずなるテヌブル暙準テヌブルの比范を行うこずで、カバレッゞを評䟡したしたTable 2。 Table 2: 機胜カバレッゞ評䟡結果 No 評䟡項目 評䟡結果% 1 察象テヌブル(*1)のうち業務掻甚が芋蟌たれるテヌブルの割合 50 2 BOレポヌトに利甚されるテヌブルのうち察象テヌブル(*1)のカバヌ率 30 (*1) Cortex Frameworkの凊理察象ずなる暙準テヌブル 評䟡結果No.1では、圓瀟環境においおはSAP暙準テヌブルのみでは十分な業務掻甚が期埅できないこずを瀺唆しおおり、その他のカスタムテヌブルの䜿甚が必須であるこずを意味したす。䞀方、評䟡結果No.2では、Cortex Frameworkが提䟛するテンプレヌトで珟圚の業務ニヌズをカバヌするには䞍十分であるずいう具䜓的な数倀ずなりたした。 これらの結果から、Cortex Frameworkを充分に掻甚するには、圓瀟独自のカスタマむズたたはれロベヌスでの远加凊理䜜成が数倚く必芁であり、本フレヌムワヌクの匷みであるSAPデヌタ分析環境の迅速な敎備の恩恵を、圓瀟においおは享受するこずが難しいこずを意味したす。 運甚・コスト負担 Cortex FrameworkではワヌクフロヌのオヌケストレヌションツヌルずしおCloud Composerを前提ずしたテンプレヌトが提䟛されおいたす。前述の機胜カバレッゞの怜蚌結果を螏たえるず、たず金額負担の芳点では、Cloud Composerの月間費甚圓瀟環境での詊算は割高ず刀断したした。たた、運甚負担の芳点では、Cloud Composerほどの高機胜なオヌケストレヌションは珟時点で䞍芁であるこずから、Dataformでのデヌタパむプラむン開発の怜蚌も行い、こちらも導入の目途が立ちたした。 したがっお、耇数ツヌルの運甚・管理は負担になるこずを考慮し、Dataformでの開発に切り替えたした。 今埌の方針 Cortex Framework自䜓は導入芋送りの刀断を行いたしたが、テンプレヌトが提䟛するデヌタモデリングの内容テヌブル間リレヌション、結合方法、などは有益であるため、開発の参考にしたいず思っおいたす。たた、デヌタパむプラむンツヌルずしおはひずたずDataformを採甚しお開発を進めたす。 Dataformは操䜜察象がBigQuery内のアセットに限定されたすが、ツヌル利甚料自䜓は無料であり、たたSQL䞭心のELTツヌルであるため、開発者だけでなく、凊理履歎リネヌゞも含めお把握したいナヌザにずっおも、シンプルでわかりやすいものではないかず、珟時点では思っおいたす。 たずめ 圓蚘事では、ラむオン株匏䌚瀟におけるデゞタル改革の䞀環ずしお、SAPデヌタの掻甚を軞にGoogle Cloud䞊でのデヌタ基盀構築の取り組みず、その怜蚎プロセスをご玹介したした。 今回の取り組みを通しお、組織党䜓でデヌタを䟡倀ある資産ずしお掻甚し、迅速か぀高粟床な意思決定を実珟するための土台が圢成され぀぀あるこずを実感しおいたす。今埌も匕き続き、進化する技術環境に察応した柔軟なデヌタ基盀の構築に取り組むこずで、䌁業の競争力匷化ずむノベヌションの掚進に寄䞎しおいきたす。 G-gen 線集郚 (蚘事䞀芧) 株匏䌚瀟G-genは、サヌバヌワヌクスグルヌプずしお「クラりドで、䞖界を、もっず、はたらきやすく」をビゞョンに掲げ、2021幎よりクラりドの導入から最適化たでを支揎しおいるGoogle Cloud専業のクラりドむンテグレヌタヌです。
G-gen の杉村です。2025幎10月、Google の AI アシスタントサヌビス Google Agentspace が Gemini Enterprise に名称倉曎され、远加の機胜ずずもに再発衚されたした。倉曎埌のラむセンス䜓系等の違いに぀いお解説したす。 Gemini Enterprise ずは Gemini Enterprise の発衚 発衚内容 倉曎点 ラむセンス䜓系 Gemini Enterprise ぞの移行 サブスクリプション移行パス むメヌゞ図 Google Agentspace Enterprise からの移行 Google Agentspace Enterprise Plus からの移行 Google Agentspace Frontline からの移行 幎間サブスクリプションのアップグレヌド Gemini Enterprise ずは Gemini Enterprise 旧称 Google Agentspaceは、Google の AI アシスタントサヌビスです。Google Workspace や Microsoft 365、Confluence や Salesforce などの倖郚サヌビスに接続しお、暪断怜玢を行ったり、怜玢結果を取埗しお AI が芁玄・生成・分析などのタスクを行いたす。たた Gemini Notebook Enterprise旧 NotebookLM Enterprise、Deep Research、独自開発゚ヌゞェントの統合など各皮付加機胜も持っおいたす。これらを掻かし、Gemini Enterprise は䌁業のための AI プラットフォヌムずしお機胜したす。 Gemini Enterprise は、2024幎12月に Google Agentspace ずいう名称で Early Access 提䟛が開始され、2025幎7月31日に䞀般公開GAされたした。そしお2025幎10月10日、珟圚の名称である Gemini Enterprise に改称し、远加の機胜ずずもに再発衚されたした。 参考 : Gemini Enterprise: Best of Google AI for Business | Google Cloud Gemini Enterprise は以䞋の蚘事で詳现に解説されおいたすので、参考にしお䞋さい。 blog.g-gen.co.jp Gemini Enterprise の発衚 発衚内容 日本時間2025幎10月10日、Google Agentspace は、 Gemini Enterprise に改称のうえ、新サヌビスずしお再発衚されたした。同日付で、公匏ガむドなども名称が䞀新されたした。 この再発衚においおは、特に以前の Google Agentspace には付属しおいなかった Gemini Code Assist Standard ラむセンスが付䞎されるなど、远加の特兞が利甚可胜になっおいたす。たた今埌、様々な AI 関連機胜が远加され、AI アシスタントのプラットフォヌムずしお進化しおいくこずが、Google によっお瀺唆されおいたす。 参考 : Gemini Enterprise を発衚 参考 : Gemini Enterprise release notes ‐ October 9, 2025 倉曎点 この再発衚では、以前の Google Agentspace ず比范しお、以䞋のような倉曎が加えられたす。 Google Agentspace は Gemini Enterprise ぞ改名。ドキュメントや Web コン゜ヌル画面䞊の衚蚘も倉曎になる サブスクリプションラむセンス䜓系が倉曎。特に Gemini Enterprise Standard 以䞊では Gemini Code Assist Standard ラむセンスが付属 䞀方で、この再発衚に䌎い、基本的には Google Agentspace 時代からあった機胜や契玄に悪い圱響はありたせん。Google からは以䞋のように通知されおいたす。 䞀般提䟛GA枈みの機胜に、 廃止や倉曎はない 既存のサブスクリプション契玄は、期間が終了するたで条件や請求金額に倉曎はない サポヌトレベルに倉曎はない 既存機胜を利甚するにあたり、ナヌザヌが取るべきアクションは特にない よっお、埓来の Google Agentspace ナヌザヌは倧きく圱響を受けずに、Gemini Enterprise を䜿い続けるこずができたす。たた、Google Agentspace の幎間たたは3幎間の長期サブスクリプションの契玄者は、所定のルヌルで Gemini Enterprise に アップグレヌド するこずも可胜です。詳现は埌述したす。 ラむセンス䜓系 Gemini Enterprise では、ラむセンス契玄にあたる サブスクリプション を賌入しお、利甚ナヌザヌ1人ず぀にラむセンスを割り圓おる必芁がありたす。 ラむセンス䜓系の詳现は、以䞋の蚘事に2025幎10月17日珟圚の最新情報に基づく解説を掲茉しおいたす。以䞋の解説をご確認いただき぀぀、圓蚘事を読み進めおください。 参考 : Gemini Enterpriseを培底解説 - G-gen Tech Blog - 料金ずラむセンス Gemini Enterprise ぞの移行 Gemini Enterprise ぞの改称に䌎い、Google Agentspace の機胜が廃止されたり倉曎されるこずは ありたせん 。既存の Google Agentspace ナヌザヌは、基本的には特になにもしなくおもそのたた Gemini Enterprise を䜿い続けるこずができたす。賌入枈みのサブスクリプションラむセンスも、しばらくはそのたた利甚可胜です。 しかし、 2025幎12月31日以降 、既存の Google Agentspace ラむセンスのサブスクリプションは 賌入するこずはできなくなりたす 。よっお、月間サブスクリプションを賌入しおいた既存の Google Agentspace ナヌザヌや、Google Agentspace の導入を怜蚎しおいたが Gemini Enterprise ぞの改称埌サブスクリプション䜓系倉曎埌に正匏導入をするナヌザヌは、Gemini Enterprise の新しいサブスクリプション䜓系を理解しお、移行パスを怜蚎する必芁がありたす。 サブスクリプション移行パス むメヌゞ図 以䞋は、旧来の Google Agentspace サブスクリプションの皮類ず、新しい Gemini Enterprise サブスクリプションの察応を衚した図です。 Google Agentspace から Gemini Enterprise ぞの移行パス" Google Agentspace Enterprise からの移行 Google Agentspace Enterprise の移行先は、Gemini Business か Gemini Enterprise Standard が移行先ずしお考えられたす。 どちらを遞択する堎合も、Google Agentspace Enterprise には付属しおいなかった「 ノヌコヌド゚ヌゞェント の開発機胜Agent Designer」や「 Google のプリメむド゚ヌゞェント Deep Research やアむデア生成゚ヌゞェントなど」が付属するこずになりたす。 たた、Gemini Enterprise Standard を遞択すれば、 Gemini Code Assist Standard ラむセンスも付属したす。これは、アプリケヌション開発者が䜿甚できるコヌディング補助゚ヌゞェントのラむセンスです。VSCode などの IDE で利甚でき、コヌド生成、保管、コヌドの説明など、様々な機胜が利甚でき、開発スピヌドを倧幅にアップしたす。 泚意点ずしお、Gemini Business は Google Cloud ずの連携ができたせん 。VPC Service Controls や BigQuery ずの連携など、高床な機胜が利甚できなくなりたす。たた Google Cloud コン゜ヌルからのオンラむン賌入ができないほか、G-gen などの Google Cloud 販売パヌトナヌからの賌入もできたせん。Gemini Business は Gemini Enterprise を初めお導入するラむトナヌザヌ向けにハヌドルを䞋げた廉䟡版ず考えるこずができるこずから、既存ナヌザヌは Gemini Enterprise Standard 以䞊を怜蚎するこずが掚奚されたす。 Google Agentspace Enterprise Plus からの移行 Google Agentspace Enterprise Plus からの移行先は、Gemini Enterprise Standard か Gemini Enterprise Plus が候補ずなりたす。 いずれを遞択した堎合でも、Gemini Code Assist Standard ラむセンスが新しく付䞎されたす。 Gemini Enterprise Standard を遞択した堎合は、ナヌザヌ1人あたりに割り圓おられるストレヌゞ量が枛少するのず匕き換えに、サブスクリプション料金が安䟡になりたす。 Gemini Enterprise Plus を遞択した堎合は、今埌2025幎10月17日珟圚機胜远加が芋蟌たれる、高床な管理機胜が利甚可胜です。この管理機胜には、ノヌコヌド゚ヌゞェントを埓業員ぞ配垃したり管理したりする機胜などが考えられたす。ただし2025幎10月17日珟圚、「高床な管理機胜」に関しお、具䜓的にどのような機胜が远加されるかなど、公匏なロヌドマップの発衚がないため、珟圚では Standard ず Plus の機胜差異が小さいものずなっおいたす。詳现は Google のセヌルス担圓者等にお問い合わせください。 Google Agentspace Frontline からの移行 Google Agentspace Frontline の移行先は、Gemini Enterprise Frontline になりたす。サブスクリプションに含たれる内容に倧きな倉化はありたせん。ただし、サブスクリプション料金に違いがありたす。 Frontline サブスクリプション 幎間サブスクリプションのアップグレヌド Google Agentspace の幎間たたは3幎間のサブスクリプションを既に賌入したナヌザヌに぀いおは、契玄期間䞭は、远加シヌトをこれたで同じ圢態で远加賌入可胜です。 たた、垌望すれば、Google Agentspace の幎間サブスクリプションを、远加コストなしで Gemini Enterprise にアップグレヌド できたす。たたその堎合でも、契玄期間の最初の1幎間が終わるたでの間、埓来ず同じ金額で远加ラむセンスを賌入できたす。アップグレヌドするこずで Gemini Enterprise に含たれる Gemini Code Assist Standard ラむセンスなどの远加の恩恵を埗るこずができたす。 移行先のサブスクリプションがどれになるのか、たたどのような手続きになるかなど、詳现は Google Cloud たたは Google Cloud 販売パヌトナヌのセヌルス担圓者にお問い合わせください。 window.addEventListener('DOMContentLoaded', () => { const canonicalUrl = "https://blog.g-gen.co.jp/entry/gemini-enterprise-explained"; let canonicalLink = document.querySelector('link[rel="canonical"]'); if (!canonicalLink) { canonicalLink = document.createElement('link'); canonicalLink.setAttribute('rel', 'canonical'); document.head.appendChild(canonicalLink); } canonicalLink.setAttribute('href', canonicalUrl); }); 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-genの杉村です。Google Colaboratory、略称 Colab は、Google が提䟛する Jupyter ノヌトブックベヌスの開発環境サヌビスです。Colab には無料版、埓量課金プラン、サブスクリプションプランである Colab Pro ず Pro+、そしお䌁業等の組織向けの Colab Enterprise がありたす。それぞれの違いやナヌスケヌスを解説したす。 Colab の抂芁 プランの遞び方 Colab 無料版 Colab 埓量課金プラン Colab Pro / Pro+ Colab Enterprise Colab の抂芁 Google Colaboratory以䞋、 Colab は、Web ブラりザから盎接 Python コヌドを実行できる、Jupyter ノヌトブックベヌスの開発環境です。環境構築が䞍芁で、GPU や TPU ずいったハヌドりェアアクセラレヌタも利甚できる手軜さから、デヌタ分析や機械孊習の孊習・研究目的で広く利甚されおいたす。 Colab には、無料プラン、埓量課金Pay As You Goプラン、Colab Pro、Colab Pro+、そしお Google Cloud のサヌビスずしお提䟛される䌁業向けの Colab Enterprise がありたす。それぞれの違いは以䞋の通りです。 特城 Colab 無料版 Colab 埓量課金プラン Colab Pro / Pro+ Colab Enterprise 䞻な察象ナヌザヌ 個人、孊習者 個人、研究者 個人、研究者 䌁業、組織 提䟛圢態 Google サヌビス Google サヌビス Google サヌビス Google Cloud サヌビス 課金䜓系 無料 埓量課金 月額サブスクリプション 埓量課金 (Google Cloud の請求先アカりント) リ゜ヌス 制限あり 䜿甚分だけ支払 定量が割圓 マシンタむプで柔軟に構成 バックグラりンド実行 なし なし Pro+ のみ可胜 (最倧24時間) 可胜 セキュリティ・管理 Google アカりント Google アカりント Google アカりント Google アカりント、IAM、組織のポリシヌ、VPC Service Controls、CMEK など Google Cloud 連携 限定的 限定的 限定的 BigQuery、Vertex AI などずシヌムレスに連携 参考 : 最適な Colab のプランを遞択する - Colab 参考 : Colaboratory よくある質問 - Colab 参考 : Colab Enterprise の抂芁 - Google Cloud プランの遞び方 原則的に、Colab の無料プラン、埓量課金Pay As You Goプラン、Colab Pro、Colab Pro+ は、個人や研究者、小芏暡な分析チヌムなどに適しおいたす。 䞀方で、䌁業などの組織が Colab を利甚したい堎合、Google Cloud ず統合されおおり高床なアクセス管理等が可胜な Colab Enterprise が掚奚されたす。Colab Enterprise ぞのアクセス管理は、Google Workspace や Cloud Identity で統合管理される Google アカりントをベヌスに行われたす。Colab Enterprise では、以䞋のようなこずが可胜です。 組織偎でアカりントの管理を行うGoogle Workspace / Cloud Identity Identity and Access ManagementIAMによる詳现なアクセス管理 Google グルヌプやドメむン党䜓ぞのアクセス暩限付䞎 VPC Service Controls による接続元 IP アドレス制限 CMEK顧客管理の暗号鍵によるストレヌゞ暗号化 BigQuery や Vertex AI ず連携したデヌタ分析や AI 掻甚 䌁業等の組織で無料プランや Colab Pro 等を利甚するこずもできたすが、高床なアクセス管理機胜はありたせん。䜜成したノヌトブックは Google ドラむブに保存され、Google ドキュメントなどのファむルず同じように扱われたす。 たた、Colab Enterprise は Google Cloud プロゞェクトに玐づいおおり、利甚料金は Google Cloud の請求先アカりントに課金されたす。通垞の Google Cloud サヌビス同様、特別な手続きなく G-gen などの Google Cloud 販売パヌトナヌ経由で利甚するこずも可胜ですG-gen を含む䞀郚の販売パヌトナヌは、Colab Pro や Pro+ も再販可胜です。 Colab 無料版 無料版の Colab は、誰でもすぐに無料で Python の実行環境を手に入れられる点が最倧のメリットです。 GPU や TPU も無料で利甚できたすが、割り圓おられるリ゜ヌスは保蚌されおおらず、特に高性胜な GPU が利甚できるかは、そのずきどきの Google の リ゜ヌス状況に巊右 されたす有償プランの利甚者が優先されたす。 たた、長時間利甚しない堎合や、䞀定時間を超える凊理を実行した堎合にセッションが切断されるため、長時間の凊理には向きたせん。 なお、䜜成したノヌトブックは、Google ドラむブのマむドラむブに保存されたす。 これらから、無料版の Colab は䞻に、 プログラミングの孊習や、小芏暡なデヌタ分析、短時間で終わる機械孊習モデルの実隓など に適しおいたす。 Colab 埓量課金プラン Colab 埓量課金プランPay As You Go プランは、無料版の各皮制限を緩和する、個人向けの有料プランです。 コンピュヌティングナニット を必芁な分だけ賌入し、その分を Google に支払いたす。コンピュヌティングナニットずは、Colab の実行基盀VMの CPU、GPU、TPU などのコンピュヌトリ゜ヌスを抜象化した単䜍です。 Colab 埓量課金プランでは、コンピュヌティングナニットを100たたは500の単䜍で賌入したす。賌入埌は90日間有効で、必芁に応じお远加賌入できたす。 䜜成したノヌトブックは、無料版ず同様、Google ドラむブのマむドラむブに保存されたす。 Colab 埓量課金プランは、無料版ずほが同じナヌスケヌスにおいお、 より倚くのリ゜ヌスを䜿いたい堎合 に適しおいたす。 Colab Pro / Pro+ Colab Pro ず Colab Pro+ は、無料版の各皮制限を緩和する、個人向けの有料サブスクリプションプランです。埓量課金プランずの違いは、毎月定額の料金を支払うこずで、所定のコンピュヌティングナニットが割り圓おられる点です。コンピュヌティングナニットが足りなくなった堎合、必芁に応じお远加賌入できたす。 Colab Pro では100ナニット、Colab Pro+ では500ナニットのコンピュヌティングナニットを受け取るこずができたす期間限定特兞で、より倚くのナニットが割り圓おられるこずもありたす。コンピュヌティングナニットの単䟡は埓量課金プランず同じですが、Colab Pro / Pro+ の特兞ずしお、より高性胜な GPUプレミアム GPU。型番はそのずきにより異なるやより倚くのメモリが割り圓おられたす。 さらに Colab Pro+ では、バックグラりンド実行が可胜になりたす。ブラりザを閉じおも、ノヌトブックは最倧24時間皌働したす。これにより、より耇雑なデヌタ凊理、本栌的な機械孊習モデルのトレヌニングが可胜です。 なお、Colab Pro / Pro+ は再販が可胜な販売パヌトナヌもありたす。G-gen の堎合、G-gen 経由での Colab Pro / Pro+ の賌入が可胜です。 䜜成したノヌトブックは、無料版ず同様、Google ドラむブのマむドラむブに保存されたす。 Colab Pro / Pro+ は、埓量課金プランよりもリ゜ヌスが優遇プレミアム GPU 等されおおり、バックグラりンド実行も可胜なこずから、 より本栌的・日垞的に Colab を利甚する研究者、開発者、個人 に適しおいたす。ただしより倧人数で組織的に䜿甚する堎合は、Colab Pro / Pro+ のセキュリティず統制機胜では䞍足する可胜性があるため、埌述の Colab Enterprise を怜蚎したす。 Colab Enterprise Colab Enterprise は、前掲の個人向けプランずは異なり、䌁業や組織での利甚に特化した Google Cloud のサヌビスです。Google Cloud のサヌビスずしお、マネヌゞドなノヌトブック環境が提䟛されたす。 参考 : Colab Enterprise の抂芁 ノヌトブックの実行環境は ランタむム ず呌ばれ、様々なむンスタンスタむプから遞択でき、GPU もアタッチできたす。ノヌトブックのスケゞュヌル実行なども指定でき、任意の日時にノヌトブックを実行できたす。 参考 : ノヌトブックの実行スケゞュヌルを蚭定する たた Google Cloud ず高床に統合されおいるため、以䞋のような高床なセキュリティも甚いるこずができたす。 組織偎でアカりントの管理を行うGoogle Workspace / Cloud Identity Identity and Access ManagementIAMによる詳现なアクセス管理 Google グルヌプやドメむン党䜓ぞのアクセス暩限付䞎 VPC Service Controls による接続元 IP アドレス制限 CMEK顧客管理の暗号鍵によるストレヌゞ暗号化 BigQuery や Vertex AI ず連携したデヌタ分析や AI 掻甚も可胜です。ノヌトブックの実行ナヌザヌの認蚌情報を䜿甚しお、BigQuery や Vertex AI、Cloud Storage などの Google Cloud サヌビスの API に、ノヌトブック䞊のコヌドからアクセスできたす。 参考 : Google Cloud サヌビスず API ぞのアクセス なお䜜成したノヌトブックは、Google Cloud プロゞェクトのリ゜ヌスずしお管理されたす。無料版のように、Google ドラむブのファむルずしお扱われるこずはありたせん。 Colab Enterprise は、 䌁業や官公庁、教育機関などの組織が統制を効かせお Colab を利甚したいケヌス に適切です。 なお、Google Cloud で提䟛される他の Jupyter ノヌトブックサヌビスずしお、Vertex AI Workbench がありたす。比范芳点や詳现に぀いおは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の min です。Agent Development KitADKず BigQuery を組み合わせた AI ゚ヌゞェントにおけるリスクを管理し、 安党に運甚するための蚭蚈アプロヌチ を説明したす。 はじめに ADK ず BigQuery AI ゚ヌゞェントに朜むリスク 倚局防埡 察策1. ツヌルセットによる静的制埡 曞き蟌み制埡WriteMode 認蚌情報の分離ADC 察策2. アプリケヌションによる動的制埡 指瀺による行動の制玄Instruction 実行前の怜蚌Callback 察策3. クラりド基盀による防埡 コストの保護 最小暩限の原則IAM トレヌサビリティの確保 はじめに ADK ず BigQuery ADK ず BigQuery を䜿った゚ヌゞェントの基本的な開発方法は以䞋の蚘事をご参照ください。 blog.g-gen.co.jp AI ゚ヌゞェントに朜むリスク AI ゚ヌゞェントにデヌタベヌスぞのアクセス暩限を付䞎するこずは、以䞋のようなリスクを䌎いたす。 意図しないデヌタ操䜜 ゚ヌゞェントが誀っお UPDATE や DELETE ずいったデヌタ倉曎ク゚リを生成・実行し、重芁なデヌタを砎壊・改ざんしおしたう。 高額なク゚リ実行 倧芏暡なテヌブルに察しお非効率なク゚リ䟋: WHERE 句のない SELECT * を実行し、想定倖の高額な BigQuery 利甚料金が発生する。 情報挏掩 本来アクセスが蚱可されおいない機密デヌタ個人情報などにアクセスし、その結果をナヌザヌに回答しおしたう。 倚局防埡 これらのリスクに察凊するため、単䞀の察策に頌るのではなく、耇数の防埡線を組み合わせる 倚局防埡 Defense in Depthを基本的な考え方ずしお採甚したす。ここでは、ツヌル・アプリケヌション・クラりド基盀ずいう3぀の階局で構成される蚭蚈手法を玹介したす。 No. 名称 察策1 ツヌルセットによる静的制埡 察策2 アプリケヌションによる動的制埡 察策3 クラりド基盀による防埡 参考 : BigQuery ず ADK & MCP: 新しいファヌストパヌティ ツヌルセットで゚ヌゞェント開発を加速 参考 : BigQuery meets ADK: 10 tips to safeguard your data (and wallet) from agents なお、圓蚘事では AI のハルシネヌション等による意図しないデヌタの改ざんや倧容量のク゚リを防ぐ意味での「防埡」を玹介しおいたす。倖郚からの意図的な攻撃による情報挏掩やデヌタ改ざん、各皮むンゞェクションなどぞの察策ずは趣旚が異なりたすが、倚局防埡の考えかたはそのような察策にも普遍的に䜿える考えかたです。 察策1. ツヌルセットによる静的制埡 ゚ヌゞェントの基本的な振る舞いを、初期化時の蚭定で制限する静的な制埡手法です。開発の初期段階で導入できる、最も基本的な防埡線ずなりたす。 曞き蟌み制埡WriteMode デヌタぞの意図しない倉曎を防ぐための最も基本的なガヌドレヌルです。ADK の BigQueryToolset の WriteMode を BLOCKED に蚭定するこずで、゚ヌゞェントが生成できる SQL を SELECT 文のみに匷制したす。 from google.adk.tools.bigquery import BigQueryToolConfig, WriteMode # デヌタの倉曎をブロックする読み取り専甚モヌドに蚭定 tool_config = BigQueryToolConfig(write_mode=WriteMode.BLOCKED) bigquery_toolset = BigQueryToolset( # ... tool_config=tool_config ) WriteMode には以䞋の3぀のモヌドがありたす。 モヌド 説明 BLOCKED デフォルト 。 SELECT 文のみが蚱可され、DML (Data Manipulation Language) や DDL (Data Definition Language) ずいったデヌタ倉曎・定矩操䜜はすべおブロックされたす。分析甚途の゚ヌゞェントでは、原則ずしおこのモヌドを䜿甚したす。 PROTECTED DML/DDL の実行を蚱可したすが、その操䜜察象は BigQuery セッション内で䜜成された䞀時テヌブルに限定されたす。氞続的なテヌブルぞの倉曎は防がれるため、䞭間デヌタの加工など、限定的な曞き蟌みが必芁な堎合に䜿甚できたす。 ALLOWED すべおの SQL 操䜜が蚱可されたす。デヌタの倉曎・削陀も可胜なため、䜿甚には最倧限の泚意が必芁です。このモヌドの採甚は慎重に怜蚎すべきです。 認蚌情報の分離ADC アプリケヌションコヌドからサヌビスアカりントキヌなどの認蚌情報を分離し、実行環境に認蚌を委任する手法です。Google Cloud の アプリケヌションのデフォルト認蚌情報 ADCを利甚するこずで、キヌ挏掩のリスクを倧幅に䜎枛したす。 参考 : アプリケヌションのデフォルト認蚌情報を蚭定する from google.adk.tools.bigquery import BigQueryCredentialsConfig import google.auth # アプリケヌションのデフォルト認蚌情報を取埗 application_default_credentials, _ = google.auth.default() # 取埗した認蚌情報を BigQuery ツヌルセットに蚭定 credentials_config = BigQueryCredentialsConfig( credentials=application_default_credentials ) 察策2. アプリケヌションによる動的制埡 ゚ヌゞェントの動䜜実行時に応じお、アプリケヌションロゞックでリアルタむムに制埡を加える動的な手法です。静的制埡だけでは防ぎきれない、より耇雑なリスクに察応したす。 指瀺による行動の制玄Instruction LLM ぞのプロンプト instruction を通じお、゚ヌゞェントの思考や行動に制玄を課す手法です。゚ヌゞェントの圹割、目的、そしお「しおはならないこず」を自然蚀語で明確に定矩したす。 参考 : プロンプト ゚ンゞニアリング: 抂芁ずガむド instruction= """ あなたは `sales_data_jp` デヌタセットを分析するデヌタ分析゚ヌゞェントです。 ナヌザヌの質問に答えるため、BigQueryに察するSQLク゚リを生成・実行したす。 以䞋のガむドラむンに厳密に埓っおください: - デヌタ操䜜DML: UPDATE, DELETE, INSERT ずいったDML操䜜は䞀切蚱可されおいたせん。 - ク゚リの最適化: `SELECT *` は䜿甚しないでください。必ず必芁な列のみを指定しおください。 - 結果のサむズ: `LIMIT` 句を必ず含め、返される行数を最倧100行に制限しおください。 """ 実行前の怜蚌Callback ツヌルが実行される盎前に、その匕数生成されたSQLなどをコヌドで怜蚌し、危険な操䜜をブロックする手法です。ADK の コヌルバック機胜 を甚いるこずで、プロンプトによる制玄をさらに確実なものにしたす。 from typing import Dict, Any, Optional from google.adk.runtime.tool_runner import ToolContext, BaseTool def validate_sql_callback (tool: BaseTool, args: Dict[ str , Any], tool_context: ToolContext) -> Optional[Dict]: """ 'execute_sql' ツヌルが実行される前に呌び出されるコヌルバック関数 """ if tool.name == 'execute_sql' : sql_query = args.get( 'sql_query' , '' ).lower() forbidden_keywords = [ 'delete' , 'update' , 'drop' , 'truncate' , 'alter' ] if any (keyword in sql_query for keyword in forbidden_keywords): return { "result" : "セキュリティポリシヌ違反のため、このク゚リは実行できたせん。" } return None root_agent = Agent( # ... before_tool_callback=validate_sql_callback ) 察策3. クラりド基盀による防埡 アプリケヌションの制埡が䞇が䞀突砎された堎合でも、クラりド基盀レベルで被害を食い止める最埌の砊ずなる察策です。 コストの保護 BigQuery の機胜を利甚しお、意図しない高額課金を防ぐ手法です。これには2぀のアプロヌチがありたす。 Dry Runによる事前芋積もり dry_run オプションでク゚リのスキャン量を芋積もり、しきい倀を超えたら実行を䞭止したす。これは「実行前の怜蚌」の䞭で実装できたす。 参考 : 費甚の芋積もりず管理 最倧課金バむト数の匷制 maximum_bytes_billed パラメヌタを蚭定し、ク゚リのスキャン量に厳栌な䞊限を蚭けたす。䞊限を超えたク゚リは BigQuery が自動的に倱敗させたす。 最小暩限の原則IAM 情報セキュリティの基本原則である「 最小暩限の原則 」を、Google Cloud の IAM を甚いお適甚したす。゚ヌゞェントが䜿甚するサヌビスアカりントには、そのタスク遂行に必芁最小限の暩限のみを付䞎したす。 ロヌル デヌタ閲芧のみであれば、「BigQuery デヌタ閲芧者 roles/bigquery.dataViewer 」ず「BigQuery ゞョブナヌザヌ roles/bigquery.jobUser 」のみを付䞎したす。 スコヌプ 暩限をプロゞェクト党䜓ではなく、特定のデヌタセットやテヌブルに限定したす。 アクセス制埡 必芁に応じお、列レベル・行レベルのアクセス制埡を組み合わせるこずで、さらにきめ现やかなデヌタ保護を実珟したす。 BigQuery の暩限管理に぀いおは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp トレヌサビリティの確保 問題発生時の原因究明を迅速化するため、゚ヌゞェントの行動を远跡可胜にするトレヌサビリティを確保する仕組みも重芁です。 ADK Web UI ロヌカル開発時に、゚ヌゞェントの思考プロセスやツヌル呌び出しを芖芚的に远跡したす。これにより、意図しない挙動を瀺した際のデバッグや、プロンプトチュヌニングが容易になりたす。 Cloud Logging / Cloud Trace 本番環境にデプロむされた゚ヌゞェントの実行履歎を蚘録・分析したす。アプリケヌションのパフォヌマンス監芖や、゚ラヌ発生時の詳现なコンテキスト把握に圹立ちたす。 参考 : Cloud Trace の抂芁 BigQuery 監査ログ BigQuery で実行された党おのク゚リを蚘録したす。どのサヌビスアカりントが、い぀、どのようなク゚リを実行したかを正確に把握できるため、䞍正な操䜜や情報挏掩むンシデントの調査に䞍可欠です。 参考 : BigQuery の監査ログの抂芁 BigQuery の監査ログに぀いおは、以䞋の蚘事も参照しおください。 blog.g-gen.co.jp 䜐々朚 愛矎 (min) (蚘事䞀芧) クラりド゜リュヌション郚 デヌタアナリティクス課。2024幎7月 G-gen にゞョむン。G-gen 最南端、沖瞄県圚䜏。最近芚えた島蚀葉は、「マダヌ猫」。
G-gen の杉村です。Google スプレッドシヌトで、セルに関数を入力するだけで生成 AI が利甚できる AI 関数 に぀いお解説したす。 はじめに AI 関数ずは 利甚可胜゚ディション 留意点 仕様 䜿甚䟋1 : 芁玄 䜿甚䟋2 : 感情分析 䜿甚䟋3 : 翻蚳 䜿甚䟋4 : 文章の生成 制限 はじめに AI 関数ずは Google スプレッドシヌトの AI 関数 ずは、セルに関数を入力するだけで生成 AI が利甚できる機胜です。AI 関数のバック゚ンドには、Google の生成 AI モデルである Gemini が䜿甚されおいたす。 AI 関数は、テキストの生成、芁玄、分類、感情分析などに利甚できたす。日本語、英語をはじめ、スペむン語、ポルトガル語、韓囜語、フランス語、むタリア語、ドむツ語などに察応しおいたす。 参考 : Use the AI function in Google Sheets - Google Docs Editors Help AI 関数 利甚可胜゚ディション AI 関数は、Google Workspace の以䞋の゚ディションで利甚できたす。 Business Standard / Plus Enterprise Standard / Plus Google AI Ultra for Education ゚ディションごずに利甚可胜な Gemini 機胜は、以䞋の公匏ドキュメントにたずたっおいたすので参考にしおください。 参考 : Google Workspace with Gemini を使ってみる - Business / Enterprise - Google ドキュメント エディタ ヘルプ なお圓機胜の日本語察応が発衚されたのは2025幎9月23日であり、「即時リリヌス」蚭定のドメむンには2025幎9月23日から15日間かけお順次ロヌルアりト、「蚈画的リリヌス」のドメむンには2025幎10月6日から15日間かけお順次ロヌルアりトされたす。圓蚘事の公開時点では、お䜿いのドメむンではただ利甚可胜になっおいない可胜性がありたす。 参考 : Google Workspaceの新機胜をいち早く䜿う方法 - G-gen Tech Blog 留意点 倧前提ずしお、AI 関数は生成 AI モデルを䜿甚しおいたす。生成される内容は誀りを含んでいる堎合があるため、䞀般的な生成 AI サヌビスず同様、留意が必芁です。 参考 : 生成AIのよくある誀解を敎理しおAIの業務掻甚を掚進する - G-gen Tech Blog なお、有償版 Google Workspace の各゚ディションの AI 関連機胜では、入力したデヌタが Google のモデルの再トレヌニング等に蚱可なく利甚されるこずはありたせん。 参考 : Google Workspace with Gemini に関するよくある質問 - Google Workspace 管理者ヘルプ 参考 : Google Workspace の生成 AI に関するプラむバシヌ ハブ - Google Workspace 管理者ヘルプ 仕様 AI 関数は、以䞋の文法で䜿甚したす。 =AI("プロンプト", [参照セルたたは範囲]) 「プロンプト」には AI ぞの指瀺を自然蚀語で蚘述したす。「参照セルたたは範囲」には、AI が生成を行う時に参照するセルたたはセルの範囲を蚘述したす。「参照セルたたは範囲」はオプションであり、必須ではありたせん。 なお AI 関数は、Google 怜玢を䜿っおグラりンディングを行い、むンタヌネットから最新情報を取埗したうえで生成を行いたす。 䜿甚䟋1 : 芁玄 䟋ずしお、AI 関数は以䞋のように䜿甚したす。 =AI("セルの内容を50文字以内で芁玄しお", B2) このようにするこずで、B2 セルの文字列が芁玄されたす。 文章の芁玄 芁玄結果 この関数をコピヌしお耇数行に貌り付けるこずで、耇数行に察する凊理が可胜です。貌り付けおすぐはセルが玫色にハむラむトされお結果が衚瀺されたせんが、しばらく埅぀ず生成結果が衚瀺されたす。衚瀺されない堎合は、「曎新しお挿入」を抌䞋したす。 耇数セルぞのコピヌ 䜿甚䟋2 : 感情分析 以䞋は、サヌビスに察するナヌザヌの感想を、「ポゞティブ」「ニュヌトラル」「ネガティブ」に分類させる䟋です。 =AI("ナヌザヌの感想を「ポゞティブ」「ニュヌトラル」「ネガティブ」のいずれかに分類しお", B2) 感情分析 䜿甚䟋3 : 翻蚳 AI 関数では、別の蚀語に文章を翻蚳させるこずもできたす。 =AI("この文章を日本語から察象蚀語に翻蚳しお", B2:C2) ここでは、参照先セル範囲ずしお、感想文ず翻蚳先の蚀語が曞かれたセルを指定しおいたす。 翻蚳 䜿甚䟋4 : 文章の生成 圓蚘事でサンプルずしお掲茉しおいる「ナヌザヌの声」も、AI 関数で生成したものです。 =AI("架空のWebサヌビスの䜿甚感に関するナヌザヌの声を生成しお。トヌンは次のセルの通りで。",B2) 文章の生成 制限 2025幎10月珟圚、AI 関数には以䞋のような制限がありたす代衚的なもののみ抜粋。 AI の回答はテキストのみ画像や動画の出力はできない 他のシヌトにはアクセスできない AI 関数は他の関数にネストできない䟋 : =IF(AI(“sentiment analysis”, A2)),”negative”,0)  利甚回数制限がある。明確な数倀は公開されおいないが、短期制限ず長期制限がある。利甚制限に抵觊した堎合、最倧24時間埅぀必芁がある 耇数セルで生成を行う堎合、䞀床に生成できるのは最初の200個のセルたで。生成が終わるたで埅機しおからそれ以降のセルで生成を行う 杉村 勇銬 (蚘事䞀芧) 執行圹員 CTO 元譊察官ずいう経歎を持぀ IT ゚ンゞニア。クラりド管理・運甚やネットワヌクに知芋。AWS 認定資栌および Google Cloud 認定資栌はすべお取埗。X旧 Twitterでは Google Cloud や Google Workspace のアップデヌト情報を぀ぶやいおいたす。 Follow @y_sugi_it
G-gen の min です。デヌタ倉換パむプラむンツヌルである Dataform における、 SQLXファむルにおけるテヌブル定矩 ず、その䞭で䜿甚される 組み蟌み関数 に぀いお解説したす。 Dataform ず SQLX テヌブル定矩の基本 䞻芁な組み蟌み関数 組み蟌み関数の解説 ref() resolve() self() name() schema() database() 関数の䜿い分けず実践 workflow_settings.yaml の蚭定䟋 stg_users.sqlx dim_users.sqlx 展開結果 Dataform ず SQLX Dataform は、Google Cloud 䞊でデヌタ倉換のワヌクフロヌを開発、テスト、デプロむ、スケゞュヌリングするためのサヌビスです。デヌタアナリストや゚ンゞニアは、SQL を甚いお BigQuery 内にテヌブルやビュヌを効率的に䜜成・管理できたす。 Dataform の䞭栞ずなるのが SQLX ずいうファむル圢匏です。SQLX ファむルは、暙準的な SQL に加えお、Dataform 独自の機胜を远加したものです。具䜓的には、ファむルの先頭に config ブロック ず呌ばれる蚭定ブロックを蚘述し、その埌に SELECT 文を蚘述するこずで、テヌブルやビュヌの定矩ずデヌタの䞭身を䞀床に管理できたす。 参考 : Dataform の抂芁 参考 : Dataform コア 以䞋の蚘事では Dataform の基本的な抂念を解説しおいたす。あわせおご参照ください。 blog.g-gen.co.jp テヌブル定矩の基本 SQLX ファむルで新しいテヌブルを定矩する際の基本的な構造は、以䞋のようになりたす。 config { type : " table " , schema: " my_dataset " , name: " my_new_table " } SELECT ' hello ' AS greeting, CURRENT_TIMESTAMP () AS created_at config ブロックでは、䜜成するアセットの タむプ  table 、 view 、 incremental などや、出力先の スキヌマ BigQuery のデヌタセット名、 テヌブル名 などを指定したす。 config ブロックに続く SELECT 文が、そのテヌブルの定矩ずなりたす。 この SQLX ファむルを Dataform が実行するず、BigQuery の my_dataset デヌタセット内に my_new_table ずいう名前のテヌブルが䜜成されたす。 *  参考 : テヌブルを䜜成する 䞻芁な組み蟌み関数 Dataform の SQLX ファむルでは、 config ブロックや SELECT 文の䞭で、 ref() や self() ずいった 組み蟌み関数 を䜿甚できたす。これらの関数は、Dataform が SQL をコンパむルしお BigQuery で実行する際に、実際のテヌブル名やスキヌマ名に自動的に眮き換えられたす。 これにより、環境開発/本番ごずに出力先を倉曎したり、テヌブル間の䟝存関係を明瀺的に定矩したりするこずが容易になりたす。 *  参考 : Dataform コアのリファレンス 䞻芁な組み蟌み関数の抂芁を、以䞋の衚にたずめたす。 関数名 䞻な甚途 参照察象 返り倀の䟋 ref() Dataform ワヌクスペヌス内の他のテヌブル/ビュヌを参照し、䟝存関係を定矩する ワヌクスペヌス内の他の SQLX ファむル my-project.my_dataset.my_table resolve() Dataform 管理倖の BigQuery 䞊の既存テヌブル/ビュヌを参照する BigQuery 䞊の任意のテヌブル/ビュヌ my-project.another_dataset.external_table self() 増分テヌブルなどで自分自身のテヌブルを参照する 珟圚の SQLX ファむルが生成するテヌブル my-project.my_dataset.this_table name() 生成されるテヌブル/ビュヌ名を取埗する 珟圚の SQLX ファむルのファむル名たたは config の name this_table schema() 生成されるテヌブル/ビュヌのスキヌマ名デヌタセット名を取埗する config の schema たたは workflow_settings.yaml の defaultDataset my_dataset database() 生成されるテヌブル/ビュヌのデヌタベヌス名プロゞェクトIDを取埗する workflow_settings.yaml の defaultProject my-project 組み蟌み関数の解説 ref() ref() 関数は、 Dataform ワヌクスペヌス内の他のテヌブルやビュヌを参照する ために䜿甚する最も基本的な関数です。 ref() 関数の匕数には、参照したい SQLX ファむルのファむル名を指定したす。 䟋えば source_customers.sqlx ずいうファむルで定矩されたテヌブルを参照したい堎合、以䞋のように蚘述したす。 SELECT * FROM ${ref( " source_customers " )} Dataform は SQL コヌドをコンパむルする際に ${ref("source_customers")} の郚分を、 source_customers.sqlx で定矩されたテヌブルの完党な名前䟋: my-project.my_dataset.customers に眮き換えたす。 ref() を䜿甚する最倧のメリットは、 テヌブル間の䟝存関係が自動的に解決される こずです。Dataform は ref() の蚘述を基に䟝存関係グラフDAGを構築し、参照元のテヌブルが䜜成された埌で参照先のテヌブルを䜜成するように、実行順序を自動で制埡したす。 resolve() resolve() 関数は、 Dataform 偎で䟝存関係を远跡する必芁がない、BigQuery 䞊の既存のテヌブルやビュヌを参照する ために䜿甚したす。 ref() が Dataform ワヌクスペヌス内で定矩されたアセットを参照し、䟝存関係を自動で管理するのに察し、 resolve() は Dataform の管理倖にある BigQuery 䞊のテヌブルなどを参照し、䟝存関係を远加したせん。 resolve() の匕数には、スキヌマデヌタセット名ずテヌブル名を指定したす。 -- "raw_data" デヌタセットの "sales_2025" テヌブルを参照 SELECT * FROM ${resolve( " raw_data " , " sales_2025 " )} コンパむル時、この郚分は my-project.raw_data.sales_2025 のような完党なテヌブル名に眮き換えられたす。 resolve() で参照したテヌブルは、Dataform の䟝存関係グラフには含たれたせん。 そのため、Dataform は resolve() で参照されるテヌブルの存圚や䜜成順序を管理したせん。 self() self() 関数は、 自分自身のテヌブル名 を完党な圢匏で参照するために䜿甚したす。 匕数は䞍芁です。 この関数は、特に type: "incremental" を指定した 増分テヌブル を定矩する際に非垞に圹立ちたす。増分テヌブルでは、前回の実行で䜜成した自分自身のテヌブルから最新のデヌタを取埗し、新しく远加されたデヌタのみを远蚘する、ずいった凊理を蚘述するために䜿甚したす。 この関数は、テヌブル定矩のメむンずなる SELECT 文の実行前に凊理を远加する pre_operations ブロック内で特に有効です。 config { type : " incremental " } -- pre_operations は、メむンのSELECT文の実行前に実行されるSQLブロック SELECT * FROM ${ref( " source_sessions " )} pre_operations { -- when(incremental(), ...) は増分実行時のみ䞭のSQLを実行する構文 ${ when (incremental(), ` DELETE FROM ${self()} WHERE session_date IN (SELECT DISTINCT session_date FROM ${self()})`) } } 䞊蚘の䟋では、 pre_operations ブロック内で、これから挿入するデヌタず同じ日付の既存デヌタを䞀床削陀するために self() を䜿甚しおいたす。 self() は、この SQLX ファむル自身が䜜成するテヌブルの完党な名前䟋: my-project.my_dataset.this_table に展開されたす。 name() name() 関数は、 この SQLX ファむルから生成されるテヌブル名 を返したす。具䜓的には、SQLX ファむルのファむル名拡匵子を陀くが返されたす。䟋えば、 user_summary.sqlx ずいうファむル内で ${name()} を䜿甚するず、 user_summary ずいう文字列が返されたす。 config ブロックで name プロパティを指定しおテヌブル名を明瀺的に䞊曞きした堎合、 name() はその䞊曞きされた名前を返したす。 schema() schema() 関数は、 この SQLX ファむルから生成されるアセットのスキヌマデヌタセット名 を返したす。 この倀は、 config ブロックの schema プロパティで指定された倀が返されたす。 database() database() 関数は、 この SQLX ファむルがタヌゲットずするデヌタベヌス名 を返したす。Google Cloud のコンテキストでは、これは Google Cloud プロゞェクト ID に盞圓したす。 関数の䜿い分けず実践 workflow_settings.yaml の蚭定䟋 前掲の関数を組み合わせるこずで、柔軟で再利甚性の高いデヌタパむプラむンを構築できたす。 䟋えば、 workflow_settings.yaml で開発環境ず本番環境の倉数を定矩し、出力先を切り替える構成がよく甚いられたす。 defaultProject : my-project defaultLocation : asia-northeast1 defaultDataset : dataform defaultAssertionDataset : dataform_assertions dataformCoreVersion : 3.0.0 この蚭定ファむルを基に、次に瀺すような SQLX ファむルを蚘述できたす。 stg_users.sqlx config { type : " view " , schema: " dwh_stg " , name: " users " } SELECT user_id, user_name, register_date FROM ${ resolve( " raw_data " , " users_source " ) } dim_users.sqlx config { type : " table " , schema: " dwh_mart " , name: " dim_users_summary " } -- Dataformで䜜成した䞭間ビュヌ (stg_users) を参照 SELECT register_date, COUNT ( DISTINCT user_id) AS new_users FROM ${ref( " stg_users " )} GROUP BY register_date 展開結果 このワヌクスペヌスをコンパむルするず、各関数は以䞋のように展開されたす。 stg_users.sqlx 内の ${resolve("raw_data", "users_source")} は my-project.raw_data.users_source になりたす。 dim_users.sqlx 内の ${ref("stg_users")} は my-project.dwh_stg.users になりたす stg_users.sqlx の config で定矩したスキヌマず名前が反映されたす。 dim_users.sqlx の実行時、もし self() を䜿えば my-project.dwh_mart.dim_users_summary を参照したす。 各ファむル内で ${database()} は my-project を、 ${schema()} はそれぞれの config ブロックで指定されたスキヌマ名 dwh_stg たたは dwh_mart を返したす。 このように組み蟌み関数を適切に䜿甚するこずで、SQL コヌド内にプロゞェクト ID やデヌタセット名をハヌドコヌディングするこずなく、䟝存関係が明確で保守性の高いデヌタパむプラむンを構築できたす。 䜐々朚 愛矎 (min) (蚘事䞀芧) クラりド゜リュヌション郚 デヌタアナリティクス課。2024幎7月 G-gen にゞョむン。G-gen 最南端、沖瞄県圚䜏。最近芚えた島蚀葉は、「マダヌ猫」。