[{"data":1,"prerenderedAt":809},["ShallowReactive",2],{"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab":3,"navigation-ja-jp":35,"banner-ja-jp":446,"footer-ja-jp":456,"blog-post-authors-ja-jp-Regnard Raquedan":692,"blog-related-posts-ja-jp-fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab":706,"blog-promotions-ja-jp":748,"next-steps-ja-jp":800},{"id":4,"title":5,"authorSlugs":6,"authors":8,"body":10,"category":11,"categorySlug":11,"config":12,"content":16,"date":20,"description":17,"extension":23,"externalUrl":24,"featured":13,"heroImage":19,"isFeatured":13,"meta":25,"navigation":26,"path":27,"publishedDate":20,"rawbody":28,"seo":29,"slug":15,"stem":31,"tagSlugs":32,"tags":33,"template":14,"updatedDate":24,"__hash__":34},"blogPosts/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.yml","GitLabで自律型AIをGoogle Cloudに安全・高速デプロイ",[7],"regnard-raquedan",[9],"Regnard Raquedan","[自律型AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)の登場により、インテリジェントなアプリケーションの構築方法は大きく変わりつつありますが、\nAIエージェントを安全かつ効率的にデプロイするのは簡単ではありません。\nこのチュートリアルでは、\nGoogleのAgent Development Kit（[ADK](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-development-kit/quickstart)）で構築したAIエージェントを、\n[GitLabのネイティブインテグレーション](https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration)と[CI/CDコンポーネント](https://docs.gitlab.com/ja-jp/ci/components/)を使って\nCloud Runにデプロイする方法を\n学びます。\n\n## AIエージェントの基礎知識と注目される理由\n\n自律型AIは、人工知能の分野における大きな進化と言えるでしょう。従来の生成AIツールが常に人間からの指示を必要とするのに対し、AIエージェントは高度な言語モデルや自然言語処理を活用して、自律的に行動を起こします。自律型AIはリクエストを理解し、意思決定を行い、複数のステップからなる計画を実行して、目標を自ら達成できます。\n\nこのチュートリアルでは、GoogleのADKを使用します。ADKは、AIエージェントの開発とデプロイに対応した、柔軟でモジュール化されたフレームワークです。GeminiやGoogleのエコシステム向けに最適化されていますが、モデルやデプロイ方法に依存せず、他のフレームワークとの互換性も考慮して設計されています。\n\n## デモアプリの紹介：Canada City Advisor\n\nデプロイプロセスを実演するための実用的な例として「Canada City Advisor」を使います。ユーザーの希望や条件に基づいて、理想的なカナダの都市を提案するAIエージェントです。\n\nその仕組みは以下の通りです。\n\n* ユーザーが予算条件やライフスタイルの希望を入力します。\n* ルートエージェントが以下2つのサブエージェントを統括します。\n\n  * 経済的な制約を評価する予算分析エージェント。カナダ住宅金融公社から取得したデータを使用します。\n  * ユーザーの希望に合う都市を提案するライフスタイル分析エージェント。[Open-Meteo](https://open-meteo.com/)から取得した適切な都市情報に基づく天気情報サービスも提供します。\n* システムがユーザーに合った都市の候補を生成します。\n\n異なる専門性を持つAIエージェントが連動して複雑な問題を解決するこのマルチエージェント構成により、自律型AIの強みが活かされます。サブエージェントは、ルートエージェントが予算やライフスタイルの分析が必要と判断したときにのみ呼び出されます。\n\n![自律型AIを活用したデモアプリ開発のマルチエージェント構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1751576568/obgxpxvlnxtzifddrrz1.png)\n\n## 前提条件\n\n始める前に、以下のものが準備できていることを確認してください。\n\n* 以下のAPIが有効になっているGoogle Cloudプロジェクト\n\n  * Cloud Run API  \n  * Artifact Registry API  \n  * Vertex AI API  \n* ソースコード用のGitLabプロジェクト\n* GitLabとGoogle Cloudの両方に対する適切な権限\n\n**ステップ1：ワークロードアイデンティティフェデレーションによるIAMインテグレーションを設定する**\n\n最初のステップでは、[Workload Identity連携](https://cloud.google.com/iam/docs/workload-identity-federation)を使用して、GitLabとGoogle Cloudの間で安全なキーレス認証を確立します。これにより、サービスアカウントキーが不要となり、セキュリティが向上します。\n\nGitLabプロジェクトでの手順は以下のとおりです。\n\n1. **設定 > インテグレーション > Google Cloud IAM**の順に移動します。\n2. 以下の情報を入力します。\n\n   * **プロジェクトID**：使用しているGoogle CloudプロジェクトのID\n   * **プロジェクト番号**：Google Cloudコンソールで確認できるプロジェクト番号\n     Workload Identityプールの固有識別子\n   * **プロバイダーID**：アイデンティティプロバイダーの固有識別子\n\nGitLabがスクリプトを生成します。このスクリプトをコピーして、Google Cloud Shellで実行し、Workload Identity連携を作成します。\n\n**ステップ2：Google Artifact Registryのインテグレーションを設定する**\n\n次に、コンテナイメージを保存するGoogle Artifact Registryとの接続を設定します。\n\n1. GitLabで、**設定 > インテグレーション > Google Artifact Registry**の順に移動します。\n2. 以下の情報を入力します。\n\n   * **Google CloudプロジェクトID**：ステップ1と同じプロジェクトID\n   * **リポジトリ名**：既存のArtifact Registryリポジトリの名前\n   * **場所**：リポジトリが存在するリージョン\n\n**重要**：リポジトリはすでにArtifact Registryに存在している必要があります。この設定操作では、GitLabが新しいリポジトリを自動で作成することはありません。\n\nGitLabは、必要な権限を設定するためのコマンドを生成します。これをGoogle Cloud Shellで実行します。\n\nさらに、Cloud Runへのデプロイのために、サービスプリンシパルに以下のロールを追加します。\n\n* `roles/run.admin`\n* `roles/iam.serviceAccountUser`\n* `roles/cloudbuild.builds.editor`\n\n以下のgcloudコマンドを使用して、これらのロールを追加できます。\n\n```shell\nGCP_PROJECT_ID=\"\u003Cyour-project-id>\" #replace\n\nGCP_PROJECT_NUMBER=\"\u003Cyour-project-number>\" #replace\n\nGCP_WORKLOAD_IDENTITY_POOL=\"\u003Cyour-pool-id>\" #replace\n\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/run.admin'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/iam.serviceAccountUser'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/cloudbuild.builds.editor'\n\n```\n\n**ステップ3：CI/CDパイプラインを作成する**\n\nここからが本番です。デプロイ用のパイプラインを構築しましょう！GitLabのCI/CDコンポーネントを使用すると、非常に簡単に作成できます。\n\nプロジェクトのルートに `.gitlab-ci.yml` ファイルを作成します。\n\n```yaml\nstages:\n  - build\n  - test\n  - upload\n  - deploy\n\nvariables:\n  GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n  AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n\nbuild:\n  image: docker:24.0.5\n  stage: build\n  services:\n    - docker:24.0.5-dind\n  before_script:\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n  script:\n    - docker build -t $GITLAB_IMAGE .\n    - docker push $GITLAB_IMAGE\n\ninclude:\n  - template: Jobs/Dependency-Scanning.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml\n  - template: Jobs/SAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml\n  - template: Jobs/Secret-Detection.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml\n  - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n    inputs:\n      stage: upload\n      source: $GITLAB_IMAGE\n      target: $AR_IMAGE\n  - component: gitlab.com/google-gitlab-components/cloud-run/deploy-cloud-run@main\n    inputs:\n      stage: deploy\n      project_id: \"\u003Cyour-project-id>\" #replace\n      service: \"canadian-city\"\n      region: \"us-central1\"\n      image: $AR_IMAGE\n\n```\n\nこのパイプラインは、以下の4つのステージで構成されています。\n\n1. **Build**：AIエージェントを使用してDockerコンテナを作成します\n2. **Test**：セキュリティスキャン（コンテナスキャン、依存関係スキャン、SAST）を実行します\n3. **Upload**：コンテナをArtifact Registryにプッシュします\n4. **Deploy**：Cloud Runにデプロイします\n\n[GitLabのCI/CDコンポーネント](https://docs.gitlab.com/ja-jp/ci/components/)を使う大きなメリットは、いくつかのパラメーターを指定するだけで、認証やデプロイの複雑な処理をすべてコンポーネント側が自動で行ってくれる点です。\n\n**ステップ4：デプロイとテスト**\n\nすべての設定が完了したら、いよいよデプロイの実行です。\n\n1. コードと `.gitlab-ci.yml` をGitLabリポジトリにコミットします。\n2. パイプラインは自動的に実行されます。\n3. GitLabのCI/CDインターフェースでパイプラインの進行状況を確認します。\n4. 完了後、Google CloudコンソールでCloud RunのURLを確認できます。\n\n各ステージが順番に実行される様子を確認できます。\n\n* Buildステージでコンテナが作成されます。\n* Testステージで包括的なセキュリティスキャンが実行されます。\n* UploadステージでArtifact Registryにプッシュされます。\n* DeployステージでCloud Runのサービスが作成または更新されます。\n\n## セキュリティ上のメリット\n\nこの手法には、以下のようなセキュリティ上の利点があります。\n\n* **長期間有効な認証情報が不要**：Workload identity連携により、サービスアカウントキーが不要になります。\n* **自動セキュリティスキャン**：すべてのデプロイで脆弱性がスキャンされます。\n* **監査証跡**：誰が何をいつデプロイしたのかを完全に可視化します。\n* **最小権限の原則**：きめ細かなIAMロールによりアクセスが制限されます。\n\n## まとめ\n\nGitLabのセキュリティ機能とGoogle Cloudの強力なAIおよびサーバーレスプラットフォームを組み合わせることで、安全でスケーラブルなAIエージェントをデプロイできます。GitLabとGoogle Cloudのインテグレーションによって、従来こうしたデプロイに伴っていた複雑さの多くが解消されます。\n\n> このチュートリアルの[サンプルコード\n> 全文](https://gitlab.com/gitlab-partners-public/google-cloud/demos/ai-agent-deployment)を使えば、\n> すぐに始められます。GitLabをまだご利用でない場合は、ぜひ[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)でDevSecOpsプラットフォームをご体験ください。\n\n\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)*\n\n*（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n","ai-ml",{"featured":13,"template":14,"slug":15},false,"BlogPost","fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"title":5,"description":17,"authors":18,"heroImage":19,"date":20,"body":10,"category":11,"tags":21},"デモアプリ付きの詳細なガイドに従って、自律型AIの使い方を、GitLabのネイティブインテグレーションやCI/CDコンポーネントとあわせて学びましょう。",[9],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","2025-07-07",[22],"google","yml",null,{},true,"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab","seo:\n  noIndex: false\n  title: GitLabで自律型AIをGoogle Cloudに安全・高速デプロイ\n  description: デモアプリ付きの詳細なガイドに従って、自律型AIの使い方を、GitLabのネイティブインテグレーションやCI/CDコンポーネントとあわせて学びましょう。\n  ogImage: https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,w_1640,h_1000,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg\ncontent:\n  title: GitLabで自律型AIをGoogle Cloudに安全・高速デプロイ\n  description: デモアプリ付きの詳細なガイドに従って、自律型AIの使い方を、GitLabのネイティブインテグレーションやCI/CDコンポーネントとあわせて学びましょう。\n  authors:\n    - Regnard Raquedan\n  heroImage: https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg\n  date: 2025-07-07\n  body: >\n    [自律型AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)の登場により、インテリジェントなアプリケーションの構築方法は大きく変わりつつありますが、\n\n    AIエージェントを安全かつ効率的にデプロイするのは簡単ではありません。\n\n    このチュートリアルでは、\n\n    GoogleのAgent Development Kit（[ADK](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-development-kit/quickstart)）で構築したAIエージェントを、\n\n    [GitLabのネイティブインテグレーション](https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration)と[CI/CDコンポーネント](https://docs.gitlab.com/ja-jp/ci/components/)を使って\n\n    Cloud Runにデプロイする方法を\n\n    学びます。\n\n\n    ## AIエージェントの基礎知識と注目される理由\n\n\n    自律型AIは、人工知能の分野における大きな進化と言えるでしょう。従来の生成AIツールが常に人間からの指示を必要とするのに対し、AIエージェントは高度な言語モデルや自然言語処理を活用して、自律的に行動を起こします。自律型AIはリクエストを理解し、意思決定を行い、複数のステップからなる計画を実行して、目標を自ら達成できます。\n\n\n    このチュートリアルでは、GoogleのADKを使用します。ADKは、AIエージェントの開発とデプロイに対応した、柔軟でモジュール化されたフレームワークです。GeminiやGoogleのエコシステム向けに最適化されていますが、モデルやデプロイ方法に依存せず、他のフレームワークとの互換性も考慮して設計されています。\n\n\n    ## デモアプリの紹介：Canada City Advisor\n\n\n    デプロイプロセスを実演するための実用的な例として「Canada City Advisor」を使います。ユーザーの希望や条件に基づいて、理想的なカナダの都市を提案するAIエージェントです。\n\n\n    その仕組みは以下の通りです。\n\n\n    * ユーザーが予算条件やライフスタイルの希望を入力します。\n\n    * ルートエージェントが以下2つのサブエージェントを統括します。\n\n      * 経済的な制約を評価する予算分析エージェント。カナダ住宅金融公社から取得したデータを使用します。\n      * ユーザーの希望に合う都市を提案するライフスタイル分析エージェント。[Open-Meteo](https://open-meteo.com/)から取得した適切な都市情報に基づく天気情報サービスも提供します。\n    * システムがユーザーに合った都市の候補を生成します。\n\n\n    異なる専門性を持つAIエージェントが連動して複雑な問題を解決するこのマルチエージェント構成により、自律型AIの強みが活かされます。サブエージェントは、ルートエージェントが予算やライフスタイルの分析が必要と判断したときにのみ呼び出されます。\n\n\n    ![自律型AIを活用したデモアプリ開発のマルチエージェント構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1751576568/obgxpxvlnxtzifddrrz1.png)\n\n\n    ## 前提条件\n\n\n    始める前に、以下のものが準備できていることを確認してください。\n\n\n    * 以下のAPIが有効になっているGoogle Cloudプロジェクト\n\n      * Cloud Run API  \n      * Artifact Registry API  \n      * Vertex AI API  \n    * ソースコード用のGitLabプロジェクト\n\n    * GitLabとGoogle Cloudの両方に対する適切な権限\n\n\n    **ステップ1：ワークロードアイデンティティフェデレーションによるIAMインテグレーションを設定する**\n\n\n    最初のステップでは、[Workload Identity連携](https://cloud.google.com/iam/docs/workload-identity-federation)を使用して、GitLabとGoogle Cloudの間で安全なキーレス認証を確立します。これにより、サービスアカウントキーが不要となり、セキュリティが向上します。\n\n\n    GitLabプロジェクトでの手順は以下のとおりです。\n\n\n    1. **設定 > インテグレーション > Google Cloud IAM**の順に移動します。\n\n    2. 以下の情報を入力します。\n\n       * **プロジェクトID**：使用しているGoogle CloudプロジェクトのID\n       * **プロジェクト番号**：Google Cloudコンソールで確認できるプロジェクト番号\n         Workload Identityプールの固有識別子\n       * **プロバイダーID**：アイデンティティプロバイダーの固有識別子\n\n    GitLabがスクリプトを生成します。このスクリプトをコピーして、Google Cloud Shellで実行し、Workload Identity連携を作成します。\n\n\n    **ステップ2：Google Artifact Registryのインテグレーションを設定する**\n\n\n    次に、コンテナイメージを保存するGoogle Artifact Registryとの接続を設定します。\n\n\n    1. GitLabで、**設定 > インテグレーション > Google Artifact Registry**の順に移動します。\n\n    2. 以下の情報を入力します。\n\n       * **Google CloudプロジェクトID**：ステップ1と同じプロジェクトID\n       * **リポジトリ名**：既存のArtifact Registryリポジトリの名前\n       * **場所**：リポジトリが存在するリージョン\n\n    **重要**：リポジトリはすでにArtifact Registryに存在している必要があります。この設定操作では、GitLabが新しいリポジトリを自動で作成することはありません。\n\n\n    GitLabは、必要な権限を設定するためのコマンドを生成します。これをGoogle Cloud Shellで実行します。\n\n\n    さらに、Cloud Runへのデプロイのために、サービスプリンシパルに以下のロールを追加します。\n\n\n    * `roles/run.admin`\n\n    * `roles/iam.serviceAccountUser`\n\n    * `roles/cloudbuild.builds.editor`\n\n\n    以下のgcloudコマンドを使用して、これらのロールを追加できます。\n\n\n    ```shell\n\n    GCP_PROJECT_ID=\"\u003Cyour-project-id>\" #replace\n\n\n    GCP_PROJECT_NUMBER=\"\u003Cyour-project-number>\" #replace\n\n\n    GCP_WORKLOAD_IDENTITY_POOL=\"\u003Cyour-pool-id>\" #replace\n\n\n\n    gcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n      --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n      --role='roles/run.admin'\n\n    gcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n      --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n      --role='roles/iam.serviceAccountUser'\n\n    gcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n      --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n      --role='roles/cloudbuild.builds.editor'\n\n    ```\n\n\n    **ステップ3：CI/CDパイプラインを作成する**\n\n\n    ここからが本番です。デプロイ用のパイプラインを構築しましょう！GitLabのCI/CDコンポーネントを使用すると、非常に簡単に作成できます。\n\n\n    プロジェクトのルートに `.gitlab-ci.yml` ファイルを作成します。\n\n\n    ```yaml\n\n    stages:\n      - build\n      - test\n      - upload\n      - deploy\n\n    variables:\n      GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n      AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n\n    build:\n      image: docker:24.0.5\n      stage: build\n      services:\n        - docker:24.0.5-dind\n      before_script:\n        - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n      script:\n        - docker build -t $GITLAB_IMAGE .\n        - docker push $GITLAB_IMAGE\n\n    include:\n      - template: Jobs/Dependency-Scanning.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml\n      - template: Jobs/SAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml\n      - template: Jobs/Secret-Detection.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml\n      - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n        inputs:\n          stage: upload\n          source: $GITLAB_IMAGE\n          target: $AR_IMAGE\n      - component: gitlab.com/google-gitlab-components/cloud-run/deploy-cloud-run@main\n        inputs:\n          stage: deploy\n          project_id: \"\u003Cyour-project-id>\" #replace\n          service: \"canadian-city\"\n          region: \"us-central1\"\n          image: $AR_IMAGE\n\n    ```\n\n\n    このパイプラインは、以下の4つのステージで構成されています。\n\n\n    1. **Build**：AIエージェントを使用してDockerコンテナを作成します\n\n    2. **Test**：セキュリティスキャン（コンテナスキャン、依存関係スキャン、SAST）を実行します\n\n    3. **Upload**：コンテナをArtifact Registryにプッシュします\n\n    4. **Deploy**：Cloud Runにデプロイします\n\n\n    [GitLabのCI/CDコンポーネント](https://docs.gitlab.com/ja-jp/ci/components/)を使う大きなメリットは、いくつかのパラメーターを指定するだけで、認証やデプロイの複雑な処理をすべてコンポーネント側が自動で行ってくれる点です。\n\n\n    **ステップ4：デプロイとテスト**\n\n\n    すべての設定が完了したら、いよいよデプロイの実行です。\n\n\n    1. コードと `.gitlab-ci.yml` をGitLabリポジトリにコミットします。\n\n    2. パイプラインは自動的に実行されます。\n\n    3. GitLabのCI/CDインターフェースでパイプラインの進行状況を確認します。\n\n    4. 完了後、Google CloudコンソールでCloud RunのURLを確認できます。\n\n\n    各ステージが順番に実行される様子を確認できます。\n\n\n    * Buildステージでコンテナが作成されます。\n\n    * Testステージで包括的なセキュリティスキャンが実行されます。\n\n    * UploadステージでArtifact Registryにプッシュされます。\n\n    * DeployステージでCloud Runのサービスが作成または更新されます。\n\n\n    ## セキュリティ上のメリット\n\n\n    この手法には、以下のようなセキュリティ上の利点があります。\n\n\n    * **長期間有効な認証情報が不要**：Workload identity連携により、サービスアカウントキーが不要になります。\n\n    * **自動セキュリティスキャン**：すべてのデプロイで脆弱性がスキャンされます。\n\n    * **監査証跡**：誰が何をいつデプロイしたのかを完全に可視化します。\n\n    * **最小権限の原則**：きめ細かなIAMロールによりアクセスが制限されます。\n\n\n    ## まとめ\n\n\n    GitLabのセキュリティ機能とGoogle Cloudの強力なAIおよびサーバーレスプラットフォームを組み合わせることで、安全でスケーラブルなAIエージェントをデプロイできます。GitLabとGoogle Cloudのインテグレーションによって、従来こうしたデプロイに伴っていた複雑さの多くが解消されます。\n\n\n    > このチュートリアルの[サンプルコード\n\n    > 全文](https://gitlab.com/gitlab-partners-public/google-cloud/demos/ai-agent-deployment)を使えば、\n\n    > すぐに始められます。GitLabをまだご利用でない場合は、ぜひ[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)でDevSecOpsプラットフォームをご体験ください。\n\n\n\n\n    *監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)*\n\n\n    *（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n  category: ai-ml\n  tags:\n    - google\nconfig:\n  featured: false\n  template: BlogPost\n  slug: fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab\n",{"noIndex":13,"title":5,"description":17,"ogImage":30},"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,w_1640,h_1000,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",[22],[22],"KN9zNe0zhlEsVcBzrarFqCvOT9nnjjc3hbUAfcSeNmQ",{"data":36},{"logo":37,"freeTrial":42,"sales":47,"login":52,"items":57,"search":366,"minimal":399,"duo":416,"switchNav":425,"pricingDeployment":436},{"config":38},{"href":39,"dataGaName":40,"dataGaLocation":41},"/ja-jp/","gitlab logo","header",{"text":43,"config":44},"無料トライアルを開始",{"href":45,"dataGaName":46,"dataGaLocation":41},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":48,"config":49},"お問い合わせ",{"href":50,"dataGaName":51,"dataGaLocation":41},"/ja-jp/sales/","sales",{"text":53,"config":54},"サインイン",{"href":55,"dataGaName":56,"dataGaLocation":41},"https://gitlab.com/users/sign_in/","sign in",[58,85,182,187,288,348],{"text":59,"config":60,"cards":62},"プラットフォーム",{"dataNavLevelOne":61},"platform",[63,69,77],{"title":59,"description":64,"link":65},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":66,"config":67},"プラットフォームを探索",{"href":68,"dataGaName":61,"dataGaLocation":41},"/ja-jp/platform/",{"title":70,"description":71,"link":72},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":73,"config":74},"GitLab Duoのご紹介",{"href":75,"dataGaName":76,"dataGaLocation":41},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":78,"description":79,"link":80},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":81,"config":82},"詳細はこちら",{"href":83,"dataGaName":84,"dataGaLocation":41},"/ja-jp/why-gitlab/","why gitlab",{"text":86,"left":26,"config":87,"link":89,"lists":93,"footer":164},"製品",{"dataNavLevelOne":88},"solutions",{"text":90,"config":91},"すべてのソリューションを表示",{"href":92,"dataGaName":88,"dataGaLocation":41},"/ja-jp/solutions/",[94,119,142],{"title":95,"description":96,"link":97,"items":102},"自動化","CI/CDと自動化でデプロイを加速",{"config":98},{"icon":99,"href":100,"dataGaName":101,"dataGaLocation":41},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[103,107,110,115],{"text":104,"config":105},"CI/CD",{"href":106,"dataGaLocation":41,"dataGaName":104},"/ja-jp/solutions/continuous-integration/",{"text":70,"config":108},{"href":75,"dataGaLocation":41,"dataGaName":109},"gitlab duo agent platform - product menu",{"text":111,"config":112},"ソースコード管理",{"href":113,"dataGaLocation":41,"dataGaName":114},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":116,"config":117},"自動化されたソフトウェアデリバリー",{"href":100,"dataGaLocation":41,"dataGaName":118},"Automated software delivery",{"title":120,"description":121,"link":122,"items":127},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":123},{"href":124,"dataGaName":125,"dataGaLocation":41,"icon":126},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[128,132,137],{"text":129,"config":130},"アプリケーションセキュリティテスト",{"href":124,"dataGaName":131,"dataGaLocation":41},"Application security testing",{"text":133,"config":134},"ソフトウェアサプライチェーンの安全性",{"href":135,"dataGaLocation":41,"dataGaName":136},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":138,"config":139},"ソフトウェアコンプライアンス",{"href":140,"dataGaName":141,"dataGaLocation":41},"/ja-jp/solutions/software-compliance/","software compliance",{"title":143,"link":144,"items":149},"測定",{"config":145},{"icon":146,"href":147,"dataGaName":148,"dataGaLocation":41},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[150,154,159],{"text":151,"config":152},"可視性と測定",{"href":147,"dataGaLocation":41,"dataGaName":153},"Visibility and Measurement",{"text":155,"config":156},"バリューストリーム管理",{"href":157,"dataGaLocation":41,"dataGaName":158},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":160,"config":161},"分析とインサイト",{"href":162,"dataGaLocation":41,"dataGaName":163},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":165,"items":166},"GitLabが活躍する場所",[167,172,177],{"text":168,"config":169},"大企業",{"href":170,"dataGaLocation":41,"dataGaName":171},"/ja-jp/enterprise/","enterprise",{"text":173,"config":174},"スモールビジネス",{"href":175,"dataGaLocation":41,"dataGaName":176},"/ja-jp/small-business/","small business",{"text":178,"config":179},"公共部門",{"href":180,"dataGaLocation":41,"dataGaName":181},"/ja-jp/solutions/public-sector/","public sector",{"text":183,"config":184},"価格",{"href":185,"dataGaName":186,"dataGaLocation":41,"dataNavLevelOne":186},"/ja-jp/pricing/","pricing",{"text":188,"config":189,"link":191,"lists":195,"feature":275},"リソース",{"dataNavLevelOne":190},"resources",{"text":192,"config":193},"すべてのリソースを表示",{"href":194,"dataGaName":190,"dataGaLocation":41},"/ja-jp/resources/",[196,229,247],{"title":197,"items":198},"はじめに",[199,204,209,214,219,224],{"text":200,"config":201},"インストール",{"href":202,"dataGaName":203,"dataGaLocation":41},"/ja-jp/install/","install",{"text":205,"config":206},"クイックスタートガイド",{"href":207,"dataGaName":208,"dataGaLocation":41},"/ja-jp/get-started/","quick setup checklists",{"text":210,"config":211},"学ぶ",{"href":212,"dataGaLocation":41,"dataGaName":213},"https://university.gitlab.com/","learn",{"text":215,"config":216},"製品ドキュメント",{"href":217,"dataGaName":218,"dataGaLocation":41},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":220,"config":221},"ベストプラクティスビデオ",{"href":222,"dataGaName":223,"dataGaLocation":41},"/ja-jp/getting-started-videos/","best practice videos",{"text":225,"config":226},"インテグレーション",{"href":227,"dataGaName":228,"dataGaLocation":41},"/ja-jp/integrations/","integrations",{"title":230,"items":231},"検索する",[232,237,242],{"text":233,"config":234},"お客様成功事例",{"href":235,"dataGaName":236,"dataGaLocation":41},"/ja-jp/customers/","customer success stories",{"text":238,"config":239},"ブログ",{"href":240,"dataGaName":241,"dataGaLocation":41},"/ja-jp/blog/","blog",{"text":243,"config":244},"リモート",{"href":245,"dataGaName":246,"dataGaLocation":41},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":248,"items":249},"つなげる",[250,255,260,265,270],{"text":251,"config":252},"GitLabサービス",{"href":253,"dataGaName":254,"dataGaLocation":41},"/ja-jp/services/","services",{"text":256,"config":257},"コミュニティ",{"href":258,"dataGaName":259,"dataGaLocation":41},"/community/","community",{"text":261,"config":262},"フォーラム",{"href":263,"dataGaName":264,"dataGaLocation":41},"https://forum.gitlab.com/","forum",{"text":266,"config":267},"イベント",{"href":268,"dataGaName":269,"dataGaLocation":41},"/events/","events",{"text":271,"config":272},"パートナー",{"href":273,"dataGaName":274,"dataGaLocation":41},"/ja-jp/partners/","partners",{"background":276,"textColor":277,"text":278,"image":279,"link":283},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":280,"config":281},"ソースプロモカード",{"src":282},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":284,"config":285},"最新情報を読む",{"href":286,"dataGaName":287,"dataGaLocation":41},"/ja-jp/the-source/","the source",{"text":289,"config":290,"lists":292},"会社情報",{"dataNavLevelOne":291},"company",[293],{"items":294},[295,300,306,308,313,318,323,328,333,338,343],{"text":296,"config":297},"GitLabについて",{"href":298,"dataGaName":299,"dataGaLocation":41},"/ja-jp/company/","about",{"text":301,"config":302,"footerGa":305},"採用情報",{"href":303,"dataGaName":304,"dataGaLocation":41},"/jobs/","jobs",{"dataGaName":304},{"text":266,"config":307},{"href":268,"dataGaName":269,"dataGaLocation":41},{"text":309,"config":310},"経営陣",{"href":311,"dataGaName":312,"dataGaLocation":41},"/company/team/e-group/","leadership",{"text":314,"config":315},"チーム",{"href":316,"dataGaName":317,"dataGaLocation":41},"/company/team/","team",{"text":319,"config":320},"ハンドブック",{"href":321,"dataGaName":322,"dataGaLocation":41},"https://handbook.gitlab.com/","handbook",{"text":324,"config":325},"投資家向け情報",{"href":326,"dataGaName":327,"dataGaLocation":41},"https://ir.gitlab.com/","investor relations",{"text":329,"config":330},"トラストセンター",{"href":331,"dataGaName":332,"dataGaLocation":41},"/ja-jp/security/","trust center",{"text":334,"config":335},"AI Transparency Center",{"href":336,"dataGaName":337,"dataGaLocation":41},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":339,"config":340},"ニュースレター",{"href":341,"dataGaName":342,"dataGaLocation":41},"/company/contact/#contact-forms","newsletter",{"text":344,"config":345},"プレス",{"href":346,"dataGaName":347,"dataGaLocation":41},"/press/","press",{"text":48,"config":349,"lists":350},{"dataNavLevelOne":291},[351],{"items":352},[353,356,361],{"text":48,"config":354},{"href":50,"dataGaName":355,"dataGaLocation":41},"talk to sales",{"text":357,"config":358},"サポートを受ける",{"href":359,"dataGaName":360,"dataGaLocation":41},"https://support.gitlab.com","support portal",{"text":362,"config":363},"カスタマーポータル",{"href":364,"dataGaName":365,"dataGaLocation":41},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":367,"login":368,"suggestions":375},"閉じる",{"text":369,"link":370},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":371,"config":372},"GitLab.com",{"href":55,"dataGaName":373,"dataGaLocation":374},"search login","search",{"text":376,"default":377},"提案",[378,380,385,387,391,395],{"text":70,"config":379},{"href":75,"dataGaName":70,"dataGaLocation":374},{"text":381,"config":382},"コード提案（AI）",{"href":383,"dataGaName":384,"dataGaLocation":374},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":104,"config":386},{"href":106,"dataGaName":104,"dataGaLocation":374},{"text":388,"config":389},"GitLab on AWS",{"href":390,"dataGaName":388,"dataGaLocation":374},"/ja-jp/partners/technology-partners/aws/",{"text":392,"config":393},"GitLab on Google Cloud",{"href":394,"dataGaName":392,"dataGaLocation":374},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":396,"config":397},"GitLabを選ぶ理由",{"href":83,"dataGaName":398,"dataGaLocation":374},"Why GitLab?",{"freeTrial":400,"mobileIcon":404,"desktopIcon":409,"secondaryButton":412},{"text":43,"config":401},{"href":402,"dataGaName":46,"dataGaLocation":403},"https://gitlab.com/-/trials/new/","nav",{"altText":405,"config":406},"GitLabアイコン",{"src":407,"dataGaName":408,"dataGaLocation":403},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":405,"config":410},{"src":411,"dataGaName":408,"dataGaLocation":403},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":197,"config":413},{"href":414,"dataGaName":415,"dataGaLocation":403},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":417,"mobileIcon":421,"desktopIcon":423},{"text":418,"config":419},"GitLab Duoの詳細について",{"href":75,"dataGaName":420,"dataGaLocation":403},"gitlab duo",{"altText":405,"config":422},{"src":407,"dataGaName":408,"dataGaLocation":403},{"altText":405,"config":424},{"src":411,"dataGaName":408,"dataGaLocation":403},{"button":426,"mobileIcon":431,"desktopIcon":433},{"text":427,"config":428},"/switch",{"href":429,"dataGaName":430,"dataGaLocation":403},"#contact","switch",{"altText":405,"config":432},{"src":407,"dataGaName":408,"dataGaLocation":403},{"altText":405,"config":434},{"src":435,"dataGaName":408,"dataGaLocation":403},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":437,"mobileIcon":442,"desktopIcon":444},{"text":438,"config":439},"料金ページに戻る",{"href":185,"dataGaName":440,"dataGaLocation":403,"icon":441},"back to pricing","GoBack",{"altText":405,"config":443},{"src":407,"dataGaName":408,"dataGaLocation":403},{"altText":405,"config":445},{"src":411,"dataGaName":408,"dataGaLocation":403},{"title":447,"button":448,"config":453},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":449,"config":450},"GitLab Transcendを今すぐ視聴",{"href":451,"dataGaName":452,"dataGaLocation":41},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":454,"icon":455,"disabled":26},"release","AiStar",{"data":457},{"text":458,"source":459,"edit":465,"contribute":470,"config":475,"items":480,"minimal":683},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":460,"config":461},"ページのソースを表示",{"href":462,"dataGaName":463,"dataGaLocation":464},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":466,"config":467},"このページを編集",{"href":468,"dataGaName":469,"dataGaLocation":464},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":471,"config":472},"ご協力をお願いします",{"href":473,"dataGaName":474,"dataGaLocation":464},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":476,"facebook":477,"youtube":478,"linkedin":479},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[481,526,579,622,649],{"title":183,"links":482,"subMenu":497},[483,487,492],{"text":484,"config":485},"プランの表示",{"href":185,"dataGaName":486,"dataGaLocation":464},"view plans",{"text":488,"config":489},"Premiumを選ぶ理由",{"href":490,"dataGaName":491,"dataGaLocation":464},"/ja-jp/pricing/premium/","why premium",{"text":493,"config":494},"Ultimateを選ぶ理由",{"href":495,"dataGaName":496,"dataGaLocation":464},"/ja-jp/pricing/ultimate/","why ultimate",[498],{"title":48,"links":499},[500,502,504,506,511,516,521],{"text":48,"config":501},{"href":50,"dataGaName":51,"dataGaLocation":464},{"text":357,"config":503},{"href":359,"dataGaName":360,"dataGaLocation":464},{"text":362,"config":505},{"href":364,"dataGaName":365,"dataGaLocation":464},{"text":507,"config":508},"ステータス",{"href":509,"dataGaName":510,"dataGaLocation":464},"https://status.gitlab.com/","status",{"text":512,"config":513},"利用規約",{"href":514,"dataGaName":515,"dataGaLocation":464},"/terms/","terms of use",{"text":517,"config":518},"プライバシーに関する声明",{"href":519,"dataGaName":520,"dataGaLocation":464},"/ja-jp/privacy/","privacy statement",{"text":522,"config":523},"Cookie 優先設定",{"dataGaName":524,"dataGaLocation":464,"id":525,"isOneTrustButton":26},"cookie preferences","ot-sdk-btn",{"title":86,"links":527,"subMenu":536},[528,532],{"text":529,"config":530},"DevSecOpsプラットフォーム",{"href":68,"dataGaName":531,"dataGaLocation":464},"devsecops platform",{"text":533,"config":534},"AI支援開発",{"href":75,"dataGaName":535,"dataGaLocation":464},"ai-assisted development",[537],{"title":538,"links":539},"トピック",[540,544,549,554,559,564,569,574],{"text":104,"config":541},{"href":542,"dataGaName":543,"dataGaLocation":464},"/ja-jp/topics/ci-cd/","cicd",{"text":545,"config":546},"GitOps",{"href":547,"dataGaName":548,"dataGaLocation":464},"/ja-jp/topics/gitops/","gitops",{"text":550,"config":551},"DevOps",{"href":552,"dataGaName":553,"dataGaLocation":464},"/ja-jp/topics/devops/","devops",{"text":555,"config":556},"バージョン管理",{"href":557,"dataGaName":558,"dataGaLocation":464},"/ja-jp/topics/version-control/","version control",{"text":560,"config":561},"DevSecOps",{"href":562,"dataGaName":563,"dataGaLocation":464},"/ja-jp/topics/devsecops/","devsecops",{"text":565,"config":566},"クラウドネイティブ",{"href":567,"dataGaName":568,"dataGaLocation":464},"/ja-jp/topics/cloud-native/","cloud native",{"text":570,"config":571},"コーディングのためのAI",{"href":572,"dataGaName":573,"dataGaLocation":464},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":575,"config":576},"エージェント型AI",{"href":577,"dataGaName":578,"dataGaLocation":464},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":580,"links":581},"ソリューション",[582,585,587,592,596,599,602,605,607,609,612,617],{"text":129,"config":583},{"href":124,"dataGaName":584,"dataGaLocation":464},"Application Security Testing",{"text":116,"config":586},{"href":100,"dataGaName":101,"dataGaLocation":464},{"text":588,"config":589},"アジャイル開発",{"href":590,"dataGaName":591,"dataGaLocation":464},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":593,"config":594},"SCM",{"href":113,"dataGaName":595,"dataGaLocation":464},"source code management",{"text":104,"config":597},{"href":106,"dataGaName":598,"dataGaLocation":464},"continuous integration & delivery",{"text":155,"config":600},{"href":157,"dataGaName":601,"dataGaLocation":464},"value stream management",{"text":545,"config":603},{"href":604,"dataGaName":548,"dataGaLocation":464},"/ja-jp/solutions/gitops/",{"text":168,"config":606},{"href":170,"dataGaName":171,"dataGaLocation":464},{"text":173,"config":608},{"href":175,"dataGaName":176,"dataGaLocation":464},{"text":610,"config":611},"公共機関",{"href":180,"dataGaName":181,"dataGaLocation":464},{"text":613,"config":614},"教育",{"href":615,"dataGaName":616,"dataGaLocation":464},"/ja-jp/solutions/education/","education",{"text":618,"config":619},"金融サービス",{"href":620,"dataGaName":621,"dataGaLocation":464},"/ja-jp/solutions/finance/","financial services",{"title":188,"links":623},[624,626,628,630,633,635,637,639,641,643,645,647],{"text":200,"config":625},{"href":202,"dataGaName":203,"dataGaLocation":464},{"text":205,"config":627},{"href":207,"dataGaName":208,"dataGaLocation":464},{"text":210,"config":629},{"href":212,"dataGaName":213,"dataGaLocation":464},{"text":215,"config":631},{"href":217,"dataGaName":632,"dataGaLocation":464},"docs",{"text":238,"config":634},{"href":240,"dataGaName":241,"dataGaLocation":464},{"text":233,"config":636},{"href":235,"dataGaName":236,"dataGaLocation":464},{"text":243,"config":638},{"href":245,"dataGaName":246,"dataGaLocation":464},{"text":251,"config":640},{"href":253,"dataGaName":254,"dataGaLocation":464},{"text":256,"config":642},{"href":258,"dataGaName":259,"dataGaLocation":464},{"text":261,"config":644},{"href":263,"dataGaName":264,"dataGaLocation":464},{"text":266,"config":646},{"href":268,"dataGaName":269,"dataGaLocation":464},{"text":271,"config":648},{"href":273,"dataGaName":274,"dataGaLocation":464},{"title":289,"links":650},[651,653,655,657,659,661,663,667,672,674,676,678],{"text":296,"config":652},{"href":298,"dataGaName":291,"dataGaLocation":464},{"text":301,"config":654},{"href":303,"dataGaName":304,"dataGaLocation":464},{"text":309,"config":656},{"href":311,"dataGaName":312,"dataGaLocation":464},{"text":314,"config":658},{"href":316,"dataGaName":317,"dataGaLocation":464},{"text":319,"config":660},{"href":321,"dataGaName":322,"dataGaLocation":464},{"text":324,"config":662},{"href":326,"dataGaName":327,"dataGaLocation":464},{"text":664,"config":665},"Sustainability",{"href":666,"dataGaName":664,"dataGaLocation":464},"/sustainability/",{"text":668,"config":669},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":670,"dataGaName":671,"dataGaLocation":464},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":329,"config":673},{"href":331,"dataGaName":332,"dataGaLocation":464},{"text":339,"config":675},{"href":341,"dataGaName":342,"dataGaLocation":464},{"text":344,"config":677},{"href":346,"dataGaName":347,"dataGaLocation":464},{"text":679,"config":680},"現代奴隷制の透明性に関する声明",{"href":681,"dataGaName":682,"dataGaLocation":464},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":684},[685,687,690],{"text":512,"config":686},{"href":514,"dataGaName":515,"dataGaLocation":464},{"text":688,"config":689},"Cookieの設定",{"dataGaName":524,"dataGaLocation":464,"id":525,"isOneTrustButton":26},{"text":517,"config":691},{"href":519,"dataGaName":520,"dataGaLocation":464},[693],{"id":694,"title":9,"body":24,"config":695,"content":697,"description":24,"extension":23,"meta":701,"navigation":26,"path":702,"seo":703,"stem":704,"__hash__":705},"blogAuthors/en-us/blog/authors/regnard-raquedan.yml",{"template":696},"BlogAuthor",{"name":9,"config":698},{"headshot":699,"ctfId":700},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663118/Blog/Author%20Headshots/regnard_raquedan_headshot.png","rraquedan",{},"/en-us/blog/authors/regnard-raquedan",{},"en-us/blog/authors/regnard-raquedan","1JCF9gTeSA0OaLWrorCsz7_b5_2A2kagAMVhH8r4NcM",[707,721,734],{"content":708,"config":719},{"title":709,"description":710,"authors":711,"heroImage":713,"date":714,"body":715,"category":11,"tags":716},"GitLabとAnthropic：エンタープライズ開発のためのガバナンスAI","GitLabがAnthropicとのClaude統合を強化。ガバナンス・コンプライアンス・監査証跡を組み込んだプラットフォームで、最新Claudeモデルへのアクセス、そしてGoogle CloudやAWSを通じた柔軟なクラウド展開をエンタープライズに提供します。",[712],"Stuart Moncada","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-28","エンタープライズや公共セクターのリーダーにとって、この緊張関係は見慣れたものです。ソフトウェアチームはAIを活用してスピードを上げる必要がある一方、セキュリティ、コンプライアンス、規制上の要求はますます厳しくなっています。GitLabはAnthropicとのClaude統合を強化し、新たにリリースされたClaudeモデルへのアクセスを、ガバナンス・コンプライアンス・監査証跡がすでに組み込まれたGitLabのインテリジェントオーケストレーションプラットフォーム上で提供します。\n\nClaudeはGitLab Duo Agent Platformにおけるデフォルトモデルとして、コード生成・レビューからエージェント型チャット、脆弱性の解消まで、幅広いユースケースで機能を支えています。GitLab Duoをご利用いただいている方は、Duoエージェントがソフトウェア開発ライフサイクル（SDLC）全体にわたってワークフローを自動化する様子をすでにご体験いただいています。\n\nこの統合強化により、ClaudeのコアAI機能をGitLabにより迅速に統合し、エンタープライズが展開できる幅を広げるとともに、GitLabがソフトウェア開発・エンジニアリングプラットフォームとして本質的に異なる点を改めて示します。それは、すべてのAIインタラクションに組み込まれたガバナンス・コンプライアンス・監査証跡です。\n\n> 「GitLab Duoにより、チームの計画・構築・リリースのスピードが格段に上がりました。AnthropicのClaudeとGitLabのプラットフォームを組み合わせることで、働き方やガバナンスの仕組みを変えることなく、より高度なAIを活用できています。」 \\\n> – Mans Booijink氏、オペレーションマネージャー、Cube社\n\n## 真の差別化要因：ガバナンスAI\n\nGitLabでは、ガバナンスコントロールと監査機能がSDLCに組み込まれています。GitLab Duo Agent PlatformでClaudeがコード変更を提案する場合、その提案は他のあらゆる変更と同様に、マージリクエストのプロセス、承認ルール、セキュリティスキャン、そして監査証跡を経由します。AIはコントロールを迂回することはできません。AIはコントロールの枠組みの中で動作します。\n\nGitLabがエージェント型ソフトウェア開発、すなわちAIが明確に定義されたタスクを自律的に処理する開発手法へと深く踏み込む中、ガバナンスレイヤーの重要性はさらに増しています。マージリクエストのオープン、脆弱性の解消支援、サービスのリファクタリングを担えるAIエージェントには、人間の開発者と同様に、監査可能性・帰属明確性・ポリシー適用が求められます。この要件はGitLabが当初から下したアーキテクチャ上の決断であり、AIエージェントが担う責務の範囲が広がるにつれて、その重要性はさらに高まっています。\n\n## エンタープライズ向けデプロイの柔軟性\n\nまた、この統合強化により、組織がGitLabを通じて最新のClaudeモデルにアクセスする方法も広がります。GitLab内でのClaudeはGoogle CloudのVertex AIおよびAWS Bedrockを通じて利用可能であり、企業はすでに導入済みのハイパースケーラーとの契約やクラウドガバナンスフレームワークを通じてAIワークロードをルーティングできます。別途ベンダー契約は不要です。データレジデンシーに関する新たな懸念もありません。既存のGCPまたはAWSの関係がそのままオンランプとなります。\n\nGitLabは[Claude Marketplace](https://claude.com/platform/marketplace)にも参加しました。これにより、お客様はGitLabクレジットを購入してAnthropicへの既存の支出コミットメントに充てることができ、AIコストを一元管理しながら、Anthropicへの投資と並行してGitLabを手軽に見つけ、調達できるようになります。\n\n## エージェント型の未来へ\n\n計画・コーディング・テスト・セキュリティ確保・デプロイにわたり、AIが定義されたタスクを自律的にこなすエージェント型ソフトウェア開発というGitLabのビジョンを実現するには、高度な推論能力・信頼性・安全性を備えたモデルが必要です。そして、それらの自律的アクションが完全にガバナンスされるプラットフォームも不可欠です。\n\nエージェント型ワークフローには、高度な推論能力・信頼性・安全性を備えたモデルが求められます。これらの基準は、GitLabがAIモデルパートナーを選定・統合する際の指針となっています。また、GitLabのガバナンスフレームワークにより、AIエージェントがより高度な開発作業を担うようになっても、エンタープライズはエージェントの行動・実行タイミング・変更の追跡方法について完全な可視性とコントロールを維持できます。\n\n## GitLabをご利用のお客様への意味\n\nすでにGitLab Duo Agent Platformをご利用の方は、ソフトウェア開発ライフサイクル全体にわたってClaudeモデルへのアクセスとより深いAIアシスタンスを、これまで通りのガバナンスフレームワークの中でご活用いただけます。\n\nAI活用型ソフトウェア開発プラットフォームを評価中の方は、高度なAI機能とエンタープライズコントロールのどちらかを選ぶ必要はありません。この戦略的連携は、その両方を実現するために構築されています。\n\n> GitLab Duo Agent Platformについてさらに詳しく知りたい方は、[デモのご依頼または無料トライアルのお申し込みはこちら](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)からどうぞ。",[717,718,274],"AI/ML","product",{"featured":26,"template":14,"slug":720},"gitlab-and-anthropic-governed-ai-for-enterprise-development",{"content":722,"config":732},{"title":723,"description":724,"authors":725,"body":727,"heroImage":728,"date":729,"category":11,"tags":730},"GitLabとVertex AI on Google Cloud：エージェント型ソフトウェア開発の加速","Google CloudのVertex AIとGitLab Duo Agent Platformを組み合わせることで、ファウンデーションモデル、エンタープライズ制御、Model Gardenの豊富なモデルを活用したエージェント型開発が実現します。\n",[9,726],"Rajesh Agadi","GitLab Duo Agent Platformは、組織がソフトウェアをビルド、セキュア化、そして提供する方法を再定義しつつあります。2026年1月の一般提供開始以来、このプラットフォームはソフトウェア開発ライフサイクルのあらゆる段階にエージェント型AIをもたらしています。Duo Agent Platformは、ソフトウェアチームと専門エージェントが連携して計画、コーディング、レビュー、セキュリティ脆弱性の修正を行う、インテリジェントなオーケストレーションレイヤーです。\n\nこのパートナーシップを通じて、[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo-agent-platform/)はVertex AI on Google Cloudとの統合によりソフトウェア開発のオーケストレーションとライフサイクルコンテキストを自動化します。Vertex AIはエージェント呼び出しのモデル層を担い、ソフトウェアチームはすでに定義済みのGoogle Cloudポリシーに従って推論を実行しながら、イシュー、マージリクエスト、パイプライン、セキュリティワークフローの作業を継続できます。\n\nGoogle CloudのVertex AIモデルの進化により、Google CloudユーザーはGitLab Duo Agent Platformをさらに活用できるようになっています。GitLabではAIを活用したDevSecOpsコントロールプレーンを、Vertex AIの急速に進化するAIインフラ基盤と、Duo Agent Platformの柔軟なデプロイ・統合オプションが支えています。この組み合わせにより、エンタープライズスケールで動作する、より高度でガバナンスの効いたエージェント型ワークフローが実現します。\n\n![Google CloudのVertex AIと連携してエージェント型ソフトウェア開発とガバナンスを備えたAIワークフローを実現するGitLab Duo Agent Platformの概念図](https://res.cloudinary.com/about-gitlab-com/image/upload/v1776165990/b7jlux9kydafncwy8spc.png)\n\n## 開発ライフサイクル全体にわたるエージェント\n\n多くのAIツールは、コードをより速く生成するという単一のタスクに集中しています。GitLab Duo Agent Platformはそれをさらに超え、計画からセキュリティレビュー、リリースまで、ソフトウェア開発ライフサイクル（SDLC）全体にわたってAIエージェントをオーケストレーションします。これは、多数のプロジェクトとリリースを抱える多くのチームを対象としています。このスケールにおいて、AIコーディングアシスタントは継続的なイノベーションに必要ではありますが、それだけでは十分ではありません。\n\n単一目的のコーディングアシスタントがプロジェクトの全体像を把握することはほとんどありません。バックログの状況、オープン中のマージリクエスト、失敗したジョブ、セキュリティの検出結果はGitLabに蓄積されていますが、コーディングアシスタント内の別のチャットウィンドウはSDLCのその全体像を引き継ぐことができません。このギャップは、手動によるハンドオフ、コンテキストを持たないAIへの重複した説明、そして一つのシステムとして設計されたわけではないツール間のデータフローをマッピングしようとするガバナンスチームという形で表れます。\n\nGitLab Duo Agent Platformは、エンジニアが日々使用するオブジェクト上でエージェントとフローを動作させることで、このギャップを埋めます。Google Cloudを推論の基盤として選択している場合、Vertex AIはエージェントが呼び出すモデルとサービスを提供し、GitLabのAI Gatewayがアクセスを仲介することで管理者はどこに何が接続されているかを明確に把握できます。例えば、GitLab Duo Planner Agentはバックログを分析し、エピックを構造化タスクに分解し、優先順位付けフレームワークを適用することで、次に何を構築するかをチームが判断するのを支援します。Security Analyst Agentは脆弱性をトリアージし、平易な言葉でリスクを説明し、優先順位に従って修正を推奨します。ビルトインのフローはこれらのエージェントをエンドツーエンドのプロセスへと連結し、開発者がすべてのハンドオフを手動で管理する必要をなくします。\n\nGitLab Duo Agent PlatformのAgentic Chatは、開発者にとって統合された体験を提供します。自然言語でクエリを投げかけることで、プロジェクトのイシュー、マージリクエスト、パイプライン、セキュリティの検出結果、コードベースといった全体像を踏まえた多段階の推論に基づくコンテキスト対応の回答が得られます。GitLabがSDLCの統一データモデルを持つ記録システムとして機能しているため、GitLab Duoエージェントは、スタンドアロンのツール固有AIアシスタントでは到達できないライフサイクルコンテキストをもとに動作します。\n\n### Vertex AIによる能力の拡張\n\nGitLab Duo Agent Platformはモデルフレキシブルな設計となっており、タスクごとに最適なパフォーマンスを発揮するモデルへと異なる機能をルーティングします。このアーキテクチャの選択はGoogle Cloud上で効果を発揮します。Vertex AIはファウンデーションモデルと関連サービスのマネージド環境として機能し、幅広いモデルエコシステムとマネージドインフラを提供することでプラットフォームの能力をさらに引き出します。\n\nVertex AIを通じて利用できる最新世代のAIモデルは、以前のバージョンと比較して推論、ツール使用、長文コンテキスト理解において大幅な改善をもたらします。これらはまさに、GitLabのエージェントが大規模で複雑なコードベースを持つ多くのプロジェクトとチームにわたって依拠するプロパティです。基盤モデルにおけるより長いコンテキストウィンドウと豊富なツール連携により、エージェントが一度のパスで達成できることが広がり、深いバックログ分析やモノレポのセキュリティレビューといったワークロードに特に重要な意味を持ちます。\n\n幅広いファウンデーションモデルへのアクセスを提供する[Vertex AI Model Garden](https://cloud.google.com/model-garden)により、ベンダーロックインではなく、パフォーマンス、コスト、規制要件に基づいてこれらの選択を行う自由がお客様に与えられます。\n\nさらに、GitLabのお客様はDuo Agent PlatformにBYOM（Bring Your Own Model）を利用することで、承認済みのプロバイダーとゲートウェイをセキュリティモデルが期待する場所に配置できます。[18.9リリースにおけるセルフホスト型Duo Agent PlatformとBYOMの解説](https://about.gitlab.com/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/)では、その仕組みが詳しく説明されています。このデプロイオプションにより、お客様はソフトウェア開発プロセスに合わせてカスタマイズできるより広いモデルの選択肢へのアクセスを得られます。適切なワークフローに、適切なモデルを、適切なガードレールとともに。\n\nGitLabがVertex AIを基盤として選択したのは、エンタープライズグレードの信頼性と比類ないモデルの幅広さへのニーズによるものです。Vertex AIとModel Gardenは、LLMホスティングの重労働を完全に抽象化し、迅速なバージョン提供、堅牢なセキュリティ、厳格なガバナンスをシームレスに統合に組み込んでいます。Geminiモデルの提供にとどまらず、Vertex AIはサードパーティおよびオープンソースモデルの豊富なカタログへのグローバルかつ低レイテンシのアクセスを提供します。\n\nGoogleCloudの業界をリードするデータプライバシーとモデル保護へのアプローチと組み合わせることで、Vertex AIはGitLabの次世代デベロッパーエクスペリエンスを支える明確な選択肢として浮上しました。\n\nVertex AI Model GardenをバックエンドへIntegrateすることで、GitLabはDevSecOpsプラットフォームを強化しながら、その複雑さをユーザーに負わせることがありません。開発チームは基盤となるLLMの評価や管理に煩わされることなく、アプリケーション構築のための効率的なAI支援ワークフローを体験できます。\n\nGitLabはクラウドオーケストレーションを完全に抽象化し、開発者が優れたコードの記述に集中できる環境を提供する一方、Vertex AIはその支援となる機能を動かしています。\n\n## Google Cloudをご利用のお客様への意義\n\nGitLab Duo Agent Platformはすでに、一つのガバナンスの効いた記録システムの中でソフトウェアライフサイクル全体にわたって動作するAIエージェントを提供しています。Google Cloud上では、Vertex AIがモデルとインフラ層を継続的に進化させながら、迅速なイノベーションを可能にします。\n\nGoogle Cloudをご利用のお客様にとって、この統合は厳格なエンタープライズガバナンスを維持しながらソフトウェア提供を効率化することを意味します。プラットフォームエンジニアリンググループにとっては、クライアントサイドのツールを数十種類カタログ化するのではなく、GitLab内の提案、分析、修正を担うVertex AI連携モデルを標準化することを意味します。セキュリティプログラムは、エージェントが開発者がすでに検出結果をトリアージしている場所と同じ場所で修正を提案・検証することで、頭の切り替えを減らし、管理されていないチャネルへ流出していた作業を削減できます。\n\nクラウドの費用対効果とポリシーの観点から、GitLab内からVertexへのエージェント推論をまとめることで、Google Cloud上ですでに運用している契約や統制に近い形で使用量を管理でき、調達プロセスを迂回する重複支出やシャドーパスを回避するのに役立ちます。\n\nVertex AIはGitLab Duo Agent Platformの基盤インフラプロバイダーであるため、組織はAIツールチェーンの断片化を管理するオーバーヘッドとリスクなしに、デベロッパーの生産性を大幅に向上させることができます。チームは単一のセキュアな記録システムの中で足並みを揃え、アプリケーションをより速くビルドし、確信を持ってリリースできるようになります。\n\nGitLabとGoogle Cloudのコラボレーションは2018年から続いています。今日、これはAIの実験から、Google Cloud上での完全にガバナンスが効いたエージェント型ソフトウェア開発へと移行する組織にとって、最も包括的なパスの一つとなっています。GitLabがエージェントオーケストレーションとデベロッパーコンテキストを拡充し、Vertex AIがモデル能力とエージェントインフラの限界を押し広げていく中で、共同顧客にとっての価値は今後も成長し続けるでしょう。\n\n> [GitLab Duo Agent Platformの無料トライアルを開始](https://about.gitlab.com/free-trial/)して、Google Cloud上でのGitLabとVertex AIのパワーをぜひご体験ください。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663121/Blog/Hero%20Images/LogoLockupPlusLight.png","2026-04-14",[717,274,22,731,718],"news",{"featured":26,"template":14,"slug":733},"gitlab-and-vertex-ai-on-google-cloud",{"content":735,"config":746},{"heroImage":736,"body":737,"authors":738,"updatedDate":740,"date":741,"title":742,"tags":743,"description":745,"category":11},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643639/sapu29gmlgtwvhggmj6k.png","ソフトウェア開発の管理では、複数のツールを同時に扱うことが求められます。Jiraで課題を追跡し、IDEでコードを記述し、GitLabでコラボレーションするといった具合です。こうしたプラットフォーム間のコンテキストの切り替えは集中力を妨げ、デリバリーを遅らせます。\n\nGitLab Duo Agent Platformの[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)サポートにより、Jiraをはじめ、MCPに対応するあらゆるツールを、AIを活用した開発環境に直接接続できるようになりました。課題の照会、チケットの更新、ワークフローの同期など、すべてを自然言語で、IDEを離れることなく実行できます。\n\n## この記事で学べること\n\nこのチュートリアルでは、以下の内容を解説します。\n\n* **Jira/Atlassian OAuthアプリケーションのセットアップ** — セキュアな認証を設定します\n* **GitLab Duo Agent Platformの設定** — GitLab Duo Agent PlatformをMCPクライアントとして設定します\n* **3つの実践的なユースケース** — 実際のワークフローのデモをご覧ください\n\n## 前提条件\n\n開始する前に、以下の要件を満たしていることをご確認ください。\n\n| 要件 | 詳細 |\n| ---- | ----- |\n| **GitLabインスタンス** | Duo Agent Platformが有効なGitLab 18.8以降 |\n| **Jiraアカウント** | OAuthアプリケーションを作成できる管理者権限を持つJira Cloudインスタンス |\n| **IDE** | GitLab Workflow拡張機能がインストールされたVisual Studio Code |\n| **MCPサポート** | GitLabでMCPサポートが有効化済み |\n\n\n## アーキテクチャの概要\n\nGitLab Duo Agent Platformは**MCPクライアント**として機能し、Atlassian MCPサーバーに接続してJiraのプロジェクト管理データにアクセスします。Atlassian MCPサーバーは認証を処理し、自然言語のリクエストをAPI呼び出しに変換して、構造化されたデータをGitLab Duo Agent Platformに返します。このプロセス全体を通じて、セキュリティと監査管理が維持されます。\n\n## パート1：Jira OAuthアプリケーションの設定\n\nGitLab Duo Agent PlatformをJiraインスタンスに安全に接続するには、Atlassian Developer ConsoleでOAuth 2.0アプリケーションを作成する必要があります。これにより、GitLabのMCPサーバーにJiraデータへの認可されたアクセス権が付与されます。\n\n### セットアップ手順\n\n手動で設定する場合は、以下の手順に従ってください。\n\n1. **Atlassian Developer Consoleへのアクセス**\n\n   * [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps)にアクセスします。\n\n   * Atlassianアカウントでサインインします。\n\n2. **新しいOAuth 2.0アプリの作成**\n\n   * 「**Create**」→「**OAuth 2.0 integration**」をクリックします。\n\n   * アプリ名を入力します（例：「gitlab-dap-mcp」）。\n\n   * 利用規約に同意し、「**Create**」をクリックします。\n\n3. **権限の設定**\n\n   * 左サイドバーの「**Permissions**」に移動します。\n\n   * 「**Jira API**」を追加し、以下のスコープを設定します。\n\n     * `read:jira-work` — 課題、プロジェクト、ボードの読み取り\n\n     * `write:jira-work` — 課題の作成と更新\n\n     * `read:jira-user` — ユーザー情報の読み取り\n\n4. **認可の設定**\n\n   * 左サイドバーの「**Authorization**」に移動します。\n\n   * お使いの環境のコールバックURLを追加します（`https://gitlab.com/oauth/callback`）。\n\n   * 変更を保存します。\n\n5. **認証情報の取得**\n\n   * 「**Settings**」に移動します。\n\n   * 「**Client ID**」と「**Client Secret**」をコピーします。\n\n   * これらの認証情報はMCP設定に必要なため、安全な場所に保管してください。\n\n\n### インタラクティブウォークスルー：Jira OAuthのセットアップ\n\n以下の画像をクリックして開始してください。\n\n\n[![Jira OAuthセットアップツアー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772644850/wnzfoq43nkkfmgdqldmr.png)](https://gitlab.navattic.com/jira-oauth-setup)\n\n\n## パート2：GitLab Duo Agent PlatformのMCPクライアントの設定\n\nOAuth認証情報の準備ができたら、GitLab Duo Agent PlatformをAtlassian MCPサーバーに接続するための設定を行います。\n\n### MCP設定ファイルの作成\n\nGitLabプロジェクトの `.gitlab/duo/mcp.json` にMCP設定ファイルを作成します。\n\n\n```json\n{\n  \"mcpServers\": {\n    \"atlassian\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.atlassian.com/v1/mcp\",\n      \"auth\": {\n        \"type\": \"oauth2\",\n        \"clientId\": \"YOUR_CLIENT_ID\",\n        \"clientSecret\": \"YOUR_CLIENT_SECRET\",\n        \"authorizationUrl\": \"https://auth.atlassian.com/oauth/authorize\",\n        \"tokenUrl\": \"https://auth.atlassian.com/oauth/token\"\n      },\n      \"approvedTools\": true\n    }\n  }\n}\n```\n\n`YOUR_CLIENT_ID` と `YOUR_CLIENT_SECRET` は、パート1で生成した認証情報に置き換えてください。\n\n### GitLabでMCPを有効化\n\n1. 「**グループ設定**」→「**GitLab Duo**」→「**Configuration**」に移動します。\n2. 「Allow external MCP tools」にチェックが入っていることを確認します。\n\n### 接続の確認\n\nVS Codeでプロジェクトを開いてGitLab Duo Agent Platformのチャットで次のように入力してください。\n\n```text\nWhat MCP tools do you have access to?\n```\n\n次に、以下のように入力します。\n\n```text\nTest the MCP JIRA configuration in this project\n```\n\nこの時点で、IDEからAtlassian MCPウェブサイトにリダイレクトされ、アクセスの承認を求められます。\n\n![Atlassian MCPウェブサイトへのリダイレクト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/z5acqjgguh0damnnde9g.png \"MCPのAtlassianウェブサイトへのリダイレクト\")\n\n\u003Cbr>\u003C/br>\n\n![アクセスの承認](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/rwowamm8nsubhpixtn3i.png \"アクセスの承認\")\n\n\u003Cbr>\u003C/br>\n\n![JIRAインスタンスを選択して承認](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/chuzqd0jeptfwvoj7wjr.png \"JIRAインスタンスを選択して承認\")\n\n\u003Cbr>\u003C/br>\n\n![成功！](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/bsgti5iste2bzck19o5y.png \"成功！\")\n\n\u003Cbr>\u003C/br>\n\n### MCPダッシュボードでの確認\n\nGitLabには、IDEに組み込みの**MCPダッシュボード**も用意されています。\n\nVS CodeまたはVSCodiumで、コマンドパレット（macOSでは `Cmd+Shift+P`、Windows/Linuxでは `Ctrl+Shift+P`）を開いて「**GitLab: Show MCP Dashboard**」を検索してください。ダッシュボードは新しいエディタータブで表示され、以下の情報を確認できます。\n\n* 設定済みの各MCPサーバーの**接続ステータス**\n* サーバーが公開している**利用可能なツール**（例：`jira_get_issue`、`jira_create_issue`）\n* **サーバーログ** — リアルタイムで呼び出されているツールを確認可能\n\n![MCPサーバーのダッシュボードとステータス](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/mmvdfchucacsydivowvn.png \"MCPサーバーのダッシュボードとステータス\")\n\n\u003Cbr>\u003C/br>\n\n![サーバーの詳細と権限](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/tcocgdvovp2dl42pvfn8.png \"サーバーの詳細と権限\")\n\n\u003Cbr>\u003C/br>\n\n\n![MCPサーバーログ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643466/mougvqqk1bozchaufsci.png \"MCPサーバーログ\")\n\n\u003Cbr>\u003C/br>\n\n### インタラクティブウォークスルー：MCPのテスト\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005495?badge=0&amp;autopause=0&amp; player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Testing MCP\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## パート3：実践的なユースケース\n\n統合の設定が完了したら、JiraをGitLab Duo Agent Platformへの接続を実現できる3つの実践的なワークフローを見ていきましょう。\n\n### プランニングアシスタント\n\n**シナリオ：** スプリントプランニングの準備として、バックログをすばやく評価し、優先事項を把握し、ブロッカーを特定する必要があります。\n\nこのデモでは以下の操作を紹介します。\n\n* バックログの照会\n* 未割り当ての高優先度課題の特定\n* AIによるスプリント推奨の取得\n\n#### プロンプト例\n\nGitLab Duo Agent Platformのチャットで以下のプロンプトをお試しください。\n\n```text\nList all the unassigned issues in JIRA for project GITLAB\n```\n\n```text\nSuggest the two top issues to prioritize and summarize them. Assign them to me.\n```\n\n### インタラクティブウォークスルー：プロジェクトプランニング\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005462?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Project Planning\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player. js\">\u003C/script>\n\n### コードからの課題トリアージと作成\n\n**シナリオ：** コードレビュー中にバグを発見し、IDEを離れることなく、関連するコンテキストに沿ってJiraの課題を作成したい場合です。\n\nこのデモでは以下の手順を紹介します。\n\n* コーディング中のバグの特定\n* 自然言語を使ったJira課題の詳細な作成\n* コードのコンテキストに沿った課題フィールドの自動入力\n* 現在のブランチへの課題のリンク\n\n#### プロンプト例\n\n```text\nSearch in JIRA for a bug related to: Null pointer exception in PaymentService.processRefund().\nIf it does not exist create it with all the context needed from the code. Find possible blockers that this bug may cause.\n```\n\n```text\nCreate a new branch called issue-gitlab-18, checkout, and link it to the issue we just created. Assign the JIRA issue to me and mark it as in-progress.\n```\n\n### インタラクティブウォークスルー：バグレビューとタスク自動化\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005368?badge=0&amp;autopause=0&amp; player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Bug Review\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### クロスシステムのインシデント調査\n\n**シナリオ：** 本番環境でインシデントが発生し、Jira（インシデントチケット）、GitLabプロジェクト管理、コードベース、マージリクエストからの情報を照合して根本原因を特定する必要があります。\n\nこのデモでは以下を実演します。\n\n* Jiraからのインシデント詳細の取得\n* GitLabの最近のマージリクエストとの照合\n* 関連する可能性のあるコード変更の特定\n* インシデントタイムラインの生成\n* 修正計画の設計とGitLabのワークアイテムとしての作成\n\n#### プロンプト例\n\n```text\n\"We have a production incident INC-1 about checkout failures. Can you help me investigate with all available context?\"\n```\n\n```text\nCreate a timeline of events for incident INC-1 including related Jira issues and recent deployments\n```\n\n```text\nPropose a remediation plan\n```\n\n### インタラクティブウォークスルー：クロスシステムのトラブルシューティングと修正\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005413?badge=0&amp;autopause=0&amp; player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Cross System Investigation\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## トラブルシューティング\n\nよくあるセットアップの問題と解決策を以下にまとめます。\n\n| 問題 | 解決策 |\n| ----- | ----- |\n| 「MCP server not found」 | `mcp.json` ファイルが正しい場所にあり、適切にフォーマットされていることを確認してください。 |\n| 「Authentication failed」 | OAuth認証情報を再確認し、Atlassianでスコープが正しく設定されていることを確認してください。 |\n| 「No Jira tools available」 | `mcp.json` を更新後にVS Codeを再起動し、GitLabでMCPが有効になっていることを確認してください。 |\n| 「Connection timeout」 | `mcp.atlassian.com` へのネットワーク接続を確認してください。 |\n\n\u003Cbr/> 詳細なトラブルシューティングについては、[GitLab MCPクライアントのドキュメント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)をご参照ください。\n\n\n## セキュリティに関する考慮事項\n\nJiraをGitLab Duo Agent Platformと統合する際は、以下の点にご注意ください。\n\n* **OAuthトークン** — 認証情報を安全に管理してください。\n* **最小権限の原則** — Jiraスコープは必要最小限のみ付与してください。\n* **トークンのローテーション** — セキュリティ管理の一環として、OAuth認証情報を定期的にローテーションしてください。\n\n\n## まとめ\n\nMCPを通じてGitLab Duo Agent Platformをさまざまなツールに接続することで、開発ライフサイクルとのインタラクションが大きく変わります。この記事では、以下の方法を学びました。\n\n* **自然言語による課題の照会** — バックログ、スプリント、インシデントについて自然言語で質問できます。\n* **DevSecOps環境全体での課題の作成と更新** — IDEを離れることなくバグを報告し、チケットを更新できます。\n* **システム間の情報照合** — JiraのデータをGitLabのプロジェクト管理、マージリクエスト、パイプラインと組み合わせることで、全体的な可視性が得られます。\n* **コンテキスト切り替えの削減** — プロジェクト管理とのつながりを維持しながら、コードに集中できます。\n\nこの統合は、MCPの可能性を体現するものです。AIを通じてツールへの標準化されたセキュアなアクセスを提供し、ガバナンスやセキュリティを損なうことなく、デベロッパーがより効率的に作業できる環境を実現します。\n\n\n## 関連リソース\n\n* [Model Context Protocol統合](https://about.gitlab.com/ja-jp/blog/duo-agent-platform-with-mcp/)\n\n* [Model Context Protocolとは](https://about.gitlab.com/topics/ai/model-context-protocol/)\n\n* [エージェント型AIに関するガイドとリソース](https://about.gitlab.com/ja-jp/blog/agentic-ai-guides-and-resources/)\n\n* [GitLab MCPクライアントのドキュメント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)\n\n* [GitLab Duo Agent Platformを始める：完全ガイド](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-complete-getting-started-guide/)",[739],"Albert Rabassa","2026-03-30","2026-03-05","MCPであらゆるツールを接続してGitLab Duo Agent Platformを拡張",[718,744],"tutorial","MCPを使用して外部ツールをGitLab Duo Agent Platformに接続する方法を解説します。3つの実践的なワークフローデモを含むステップバイステップのセットアップガイドです。",{"featured":13,"template":14,"slug":747},"extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"promotions":749},[750,763,774,786],{"id":751,"categories":752,"header":753,"text":754,"button":755,"image":760},"ai-modernization",[11],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":756,"config":757},"Get your AI maturity score",{"href":758,"dataGaName":759,"dataGaLocation":241},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":761},{"src":762},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":764,"categories":765,"header":766,"text":754,"button":767,"image":771},"devops-modernization",[718,563],"Are you just managing tools or shipping innovation?",{"text":768,"config":769},"Get your DevOps maturity score",{"href":770,"dataGaName":759,"dataGaLocation":241},"/assessments/devops-modernization-assessment/",{"config":772},{"src":773},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":775,"categories":776,"header":778,"text":754,"button":779,"image":783},"security-modernization",[777],"security","Are you trading speed for security?",{"text":780,"config":781},"Get your security maturity score",{"href":782,"dataGaName":759,"dataGaLocation":241},"/assessments/security-modernization-assessment/",{"config":784},{"src":785},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":787,"paths":788,"header":791,"text":792,"button":793,"image":798},"github-azure-migration",[789,790],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":794,"config":795},"See how GitLab compares to GitHub",{"href":796,"dataGaName":797,"dataGaLocation":241},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":799},{"src":773},{"header":801,"blurb":802,"button":803,"secondaryButton":807},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":43,"config":804},{"href":805,"dataGaName":46,"dataGaLocation":806},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":48,"config":808},{"href":50,"dataGaName":51,"dataGaLocation":806},1777493632446]