[{"data":1,"prerenderedAt":823},["ShallowReactive",2],{"/ja-jp/blog/secure-ai-agent-deployment-to-gke":3,"navigation-ja-jp":42,"banner-ja-jp":463,"footer-ja-jp":473,"blog-post-authors-ja-jp-Regnard Raquedan":708,"blog-related-posts-ja-jp-secure-ai-agent-deployment-to-gke":722,"blog-promotions-ja-jp":762,"next-steps-ja-jp":814},{"id":4,"title":5,"authorSlugs":6,"authors":8,"body":10,"category":11,"categorySlug":11,"config":12,"content":16,"date":20,"description":26,"extension":27,"externalUrl":28,"featured":13,"heroImage":17,"isFeatured":13,"meta":29,"navigation":30,"path":31,"publishedDate":20,"rawbody":32,"seo":33,"slug":15,"stem":36,"tagSlugs":37,"tags":40,"template":14,"updatedDate":19,"__hash__":41},"blogPosts/ja-jp/blog/secure-ai-agent-deployment-to-gke.yml","AIエージェントをGKEに安全にデプロイする方法",[7],"regnard-raquedan",[9],"Regnard Raquedan","[AIエージェント](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)の構築はワクワクするものですが、安全に本番環境にデプロイする作業は複雑であってはなりません。このチュートリアルでは、GitLabの[ネイティブGoogle Cloudインテグレーション](https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration)を使用することで、AIエージェントをGoogle Kubernetes Engine(GKE)に組み込み、スキャン機能込みのサービスアカウントキーなしで簡単にデプロイする方法を学びます。\n\n## AIエージェントのデプロイ先としてGKEを選ぶ理由\n\nGKEは、OIDC認証を通じてGitLab CI/CDパイプラインとシームレスに接続するエンタープライズグレードのオーケストレーションを提供します。開発チームは、クラウドインフラに対する完全な可視性、コンプライアンス、制御を維持しながらAIエージェントをデプロイできます。このガイドでは、GoogleのAgent Development Kit([ADK](https://developers.googleblog.com/en/agent-development-kit-easy-to-build-multi-agent-applications/))を使用してアプリを構築し、GitLabでデプロイされるので、さらにシームレスな体験が期待できます。\n\nこのアプローチの3つの主要なメリット:\n\n**完全なインフラ制御** - データ、ルール、環境のすべてが自社管理となります。AIエージェントの実行場所と設定方法を完全に制御できます。\n\n**ネイティブGitLabインテグレーション** - 複雑な回避策は不要です。GitLabとGoogle Cloudのネイティブインテグレーションにより、既存のパイプラインがそのまま使用できます。\n\n**本番環境レベルのスケーリング** - AIワークロードの拡大に合わせて、GKEがスケーリングと内部オーケストレーションの負荷を自動的に処理します。\n\n重要なのは、GitLabとGKEの組み合わせにより、デベロッパーエクスペリエンスを犠牲にすることなく、AIデプロイメントに必要なエンタープライズレベルの信頼性を提供するということです。\n\n## 前提条件\n\n開始前に、次のAPIが有効化されていることを確認してください：\n\n* GKE API\n* アーティファクトレジストリAPI\n* Vertex AI API\n\nまた、次が用意されていることも確認してください：\n\n* GitLabプロジェクトの作成\n* GKEクラスターのプロビジョニング\n* アーティファクトレジストリのリポジトリの作成\n\n## デプロイプロセス\n\n### 1. GitLabでIAMと権限を設定する\n\nGitLabのインテグレーションページに移動して、Google Cloud認証(IAM)を設定します。\n\n**設定 > インテグレーション**に移動し、Google Cloudインテグレーションを設定します。グループレベルインテグレーションを使用している場合、デフォルト設定がプロジェクトにすでに継承されていることに注意してください。つまり、グループレベルで一度設定すれば、すべてのプロジェクトがこの設定を継承し、機能するようになります。\n\n最初から設定する場合は、次の情報を提供します：\n\n* プロジェクトID\n* プロジェクト番号\n* ワークロードアイデンティティプールID\n* プロバイダーID\n\n設定が完了すると、GitLabはGoogle Cloud ConsoleでCloud Shellを介して実行するスクリプトを提供します。このスクリプトを実行することで、適切なアクセスを有効にするために必要なサービスプリンシパルを備えたワークロードアイデンティティフェデレーションプールが作成されます。\n\n### 2. アーティファクトレジストリインテグレーションを設定する\n\nGitLabのインテグレーション設定画面で、アーティファクト管理を設定します。\n\n1. **アーティファクト管理**をクリックします。\n2. **Googleアーティファクトレジストリ**を選択します。\n3. 次の情報を提供します:\n\n   * プロジェクトID\n   * リポジトリ名(事前に作成)\n   * リポジトリの場所\n\nGitLabは、Google Cloud Consoleで実行する別のスクリプトを提供します。\n\n**重要:** 次の手順に進む前に、ワークロードアイデンティティフェデレーションプールに次のロールを追加します：\n\n* サービスアカウントユーザー\n* Kubernetesデベロッパー\n* Kubernetesクラスタービューアー\n\nこれらの権限により、後続の手順でGitLabがGKEにデプロイできるようになります。\n\n### 3. CI/CDパイプラインの作成\n\nここが重要な部分です。デプロイ用のCI/CDパイプラインの作成です。\n\n**ビルド > パイプラインエディタ**に移動し、4つのステージを持つパイプラインを定義します：\n\n* **Build** - Dockerがコンテナイメージを作成します。\n* **Test** - GitLab Auto DevOpsが組み込みのセキュリティスキャンを提供し、脆弱性がないことを確認します。\n* **Upload** - GitLabの組み込みCI/CDコンポーネントを使用してGoogleアーティファクトレジストリにプッシュします。\n* **Deploy** - Kubernetes定義を使用してGKEにデプロイします。\n\n完全な`.gitlab-ci.yml`は次のとおりです:\n\n```yaml\ndefault:\n  tags: [ saas-linux-2xlarge-amd64 ]\n\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  GCP_PROJECT_ID: \"your-project-id\"\n  GKE_CLUSTER: \"your-cluster\"\n  GKE_REGION: \"us-central1\"\n  KSA_NAME: \"ai-agent-ksa\"\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\n  - template: Jobs/Container-Scanning.gitlab-ci.yml\n  - template: 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\ndeploy:\n  stage: deploy\n  image: google/cloud-sdk:slim\n  identity: google_cloud\n  before_script:\n    - apt-get update && apt-get install -y kubectl google-cloud-sdk-gke-gcloud-auth-plugin\n    - gcloud container clusters get-credentials $GKE_CLUSTER --region $GKE_REGION --project $GCP_PROJECT_ID\n  script:\n    - |\n      kubectl apply -f - \u003C\u003CEOF\n      apiVersion: apps/v1\n      kind: Deployment\n      metadata:\n        name: ai-agent\n        namespace: default\n      spec:\n        replicas: 2\n        selector:\n          matchLabels:\n            app: ai-agent\n        template:\n          metadata:\n            labels:\n              app: ai-agent\n          spec:\n            serviceAccountName: $KSA_NAME\n            containers:\n            - name: ai-agent\n              image: $AR_IMAGE\n              ports:\n              - containerPort: 8080\n              resources:\n                requests: {cpu: 500m, memory: 1Gi}\n                limits: {cpu: 2000m, memory: 4Gi}\n              livenessProbe:\n                httpGet: {path: /health, port: 8080}\n                initialDelaySeconds: 60\n              readinessProbe:\n                httpGet: {path: /health, port: 8080}\n                initialDelaySeconds: 30\n      ---\n      apiVersion: v1\n      kind: Service\n      metadata:\n        name: ai-agent-service\n        namespace: default\n      spec:\n        type: LoadBalancer\n        ports:\n        - port: 80\n          targetPort: 8080\n        selector:\n          app: ai-agent\n      ---\n      apiVersion: autoscaling/v2\n      kind: HorizontalPodAutoscaler\n      metadata:\n        name: ai-agent-hpa\n        namespace: default\n      spec:\n        scaleTargetRef:\n          apiVersion: apps/v1\n          kind: Deployment\n          name: ai-agent\n        minReplicas: 2\n        maxReplicas: 10\n        metrics:\n        - type: Resource\n          resource:\n            name: cpu\n            target: {type: Utilization, averageUtilization: 70}\n      EOF\n      \n      kubectl rollout status deployment/ai-agent -n default --timeout=5m\n      EXTERNAL_IP=$(kubectl get service ai-agent-service -n default -o jsonpath='{.status.loadBalancer.ingress[0].ip}')\n      echo \"Deployed at: http://$EXTERNAL_IP\"\n  only:\n    - main\n```\n\n#### GKEの重要な設定\n\nこれが機能する理由、そしてGKEにこの追加設定が必要な理由は、Vertex AIと連携できるKubernetesサービスアカウントがクラスター内に必要だからです。このサービスアカウントには、Google CloudのAI機能にアクセスする権限が必要です。\n\nこの設定なしでは、アプリケーションはデプロイできますが、AIエージェントが機能しません。Vertex AIにアクセスできるKubernetesサービスアカウントを作成する必要があります。\n\nこの1回限りのセットアップを実行します:\n\n```bash\n#!/bin/bash\n\n\nPROJECT_ID=\"your-project-id\"\n\n\nGSA_NAME=\"ai-agent-vertex\"\n\n\nGSA_EMAIL=\"${GSA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com\"\n\n\nKSA_NAME=\"ai-agent-ksa\"\n\n\nCLUSTER_NAME=\"your-cluster\"\n\n\nREGION=\"us-central1\"\n\n\n\n# GCPサービスアカウントを作成\n\n\ngcloud iam service-accounts create $GSA_NAME \\\n    --display-name=\"AI Agent Vertex AI\" \\\n    --project=$PROJECT_ID\n\n# Vertex AI権限を付与\n\n\ngcloud projects add-iam-policy-binding $PROJECT_ID \\\n    --member=\"serviceAccount:${GSA_EMAIL}\" \\\n    --role=\"roles/aiplatform.user\"\n\n# クラスター認証情報を取得\n\n\ngcloud container clusters get-credentials $CLUSTER_NAME \\\n    --region $REGION --project $PROJECT_ID\n\n# Kubernetesサービスアカウントを作成\n\n\nkubectl create serviceaccount $KSA_NAME -n default\n\n\n\n# アカウントをリンク\n\n\nkubectl annotate serviceaccount $KSA_NAME -n default \\\n    iam.gke.io/gcp-service-account=${GSA_EMAIL}\n\ngcloud iam service-accounts add-iam-policy-binding ${GSA_EMAIL} \\\n    --role=roles/iam.workloadIdentityUser \\\n    --member=\"serviceAccount:${PROJECT_ID}.svc.id.goog[default/${KSA_NAME}]\" \\\n    --project=$PROJECT_ID\n```\n\n### 4. GKEにデプロイする\n\n完了したら、この変更をパイプラインにプッシュすると、準備完了です。\n\nパイプラインがデプロイされたことを確認できます。**CI/CD > パイプライン**に移動すると、4つのステージが表示されます:\n\n* Build\n* Test(定義されたすべてのセキュリティスキャンを含む)\n* アーティファクトレジストリへのUpload(成功)\n* GKEのKubernetesへのDeploy(成功)\n\n## まとめ\n\nGitLabとGoogle Cloudの組み合わせにより、AIエージェントをGKEに簡単かつ安全にデプロイできます。複雑な手順を踏む必要がなかったことが、おわかりいただけたと思います。GitLabのネイティブGoogle Cloudインテグレーションのおかげで実現できたのです。\n\nデモ動画をご覧ください：\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/mc2pCL5Qjus?si=QoH02lvz5KH5Ku9O\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n> このチュートリアルの[完全なコード例](https://gitlab.com/gitlab-partners-public/google-cloud/demos/gke-ai-agent)を使用して、今すぐ始めてみてください。まだGitLabユーザーでない場合は、[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)でDevSecOpsプラットフォームをお試しください。Google Cloudでホストされているスタートアップ企業には、[GitLabをお試しいただける特典](https://about.gitlab.com/ja-jp/solutions/startups/google-cloud/)があります。","ai-ml",{"featured":13,"template":14,"slug":15},false,"BlogPost","secure-ai-agent-deployment-to-gke",{"heroImage":17,"body":10,"authors":18,"updatedDate":19,"date":20,"title":5,"tags":21,"description":26,"category":11},"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg",[9],"2025-11-18","2025-11-10",[22,23,24,25],"AI/ML","google","cloud native","tutorial","このガイドでは、GitLabのAIパワーDevSecOpsプラットフォームを使用して、ADKベースのAIエージェントをGoogle Kubernetes Engineに簡単かつ安全にデプロイする方法を説明します。","yml",null,{},true,"/ja-jp/blog/secure-ai-agent-deployment-to-gke","seo:\n  config:\n    noIndex: false\n  title: AIエージェントをGKEに安全にデプロイする方法\n  description: このガイドでは、GitLabのAI搭載DevSecOpsプラットフォームを使用して、ADKベースのAIエージェントをGoogle\n    Kubernetes Engineに簡単かつ安全にデプロイする方法を説明します。\ncontent:\n  heroImage: https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg\n  body: >-\n    [AIエージェント](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)の構築はワクワクするものですが、安全に本番環境にデプロイする作業は複雑であってはなりません。このチュートリアルでは、GitLabの[ネイティブGoogle\n    Cloudインテグレーション](https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration)を使用することで、AIエージェントをGoogle\n    Kubernetes Engine(GKE)に組み込み、スキャン機能込みのサービスアカウントキーなしで簡単にデプロイする方法を学びます。\n\n\n    ## AIエージェントのデプロイ先としてGKEを選ぶ理由\n\n\n    GKEは、OIDC認証を通じてGitLab CI/CDパイプラインとシームレスに接続するエンタープライズグレードのオーケストレーションを提供します。開発チームは、クラウドインフラに対する完全な可視性、コンプライアンス、制御を維持しながらAIエージェントをデプロイできます。このガイドでは、GoogleのAgent Development Kit([ADK](https://developers.googleblog.com/en/agent-development-kit-easy-to-build-multi-agent-applications/))を使用してアプリを構築し、GitLabでデプロイされるので、さらにシームレスな体験が期待できます。\n\n\n    このアプローチの3つの主要なメリット:\n\n\n    **完全なインフラ制御** - データ、ルール、環境のすべてが自社管理となります。AIエージェントの実行場所と設定方法を完全に制御できます。\n\n\n    **ネイティブGitLabインテグレーション** - 複雑な回避策は不要です。GitLabとGoogle Cloudのネイティブインテグレーションにより、既存のパイプラインがそのまま使用できます。\n\n\n    **本番環境レベルのスケーリング** - AIワークロードの拡大に合わせて、GKEがスケーリングと内部オーケストレーションの負荷を自動的に処理します。\n\n\n    重要なのは、GitLabとGKEの組み合わせにより、デベロッパーエクスペリエンスを犠牲にすることなく、AIデプロイメントに必要なエンタープライズレベルの信頼性を提供するということです。\n\n\n    ## 前提条件\n\n\n    開始前に、次のAPIが有効化されていることを確認してください：\n\n\n    * GKE API\n\n    * アーティファクトレジストリAPI\n\n    * Vertex AI API\n\n\n    また、次が用意されていることも確認してください：\n\n\n    * GitLabプロジェクトの作成\n\n    * GKEクラスターのプロビジョニング\n\n    * アーティファクトレジストリのリポジトリの作成\n\n\n    ## デプロイプロセス\n\n\n    ### 1. GitLabでIAMと権限を設定する\n\n\n    GitLabのインテグレーションページに移動して、Google Cloud認証(IAM)を設定します。\n\n\n    **設定 > インテグレーション**に移動し、Google Cloudインテグレーションを設定します。グループレベルインテグレーションを使用している場合、デフォルト設定がプロジェクトにすでに継承されていることに注意してください。つまり、グループレベルで一度設定すれば、すべてのプロジェクトがこの設定を継承し、機能するようになります。\n\n\n    最初から設定する場合は、次の情報を提供します：\n\n\n    * プロジェクトID\n\n    * プロジェクト番号\n\n    * ワークロードアイデンティティプールID\n\n    * プロバイダーID\n\n\n    設定が完了すると、GitLabはGoogle Cloud ConsoleでCloud Shellを介して実行するスクリプトを提供します。このスクリプトを実行することで、適切なアクセスを有効にするために必要なサービスプリンシパルを備えたワークロードアイデンティティフェデレーションプールが作成されます。\n\n\n    ### 2. アーティファクトレジストリインテグレーションを設定する\n\n\n    GitLabのインテグレーション設定画面で、アーティファクト管理を設定します。\n\n\n    1. **アーティファクト管理**をクリックします。\n\n    2. **Googleアーティファクトレジストリ**を選択します。\n\n    3. 次の情報を提供します:\n\n       * プロジェクトID\n       * リポジトリ名(事前に作成)\n       * リポジトリの場所\n\n    GitLabは、Google Cloud Consoleで実行する別のスクリプトを提供します。\n\n\n    **重要:** 次の手順に進む前に、ワークロードアイデンティティフェデレーションプールに次のロールを追加します：\n\n\n    * サービスアカウントユーザー\n\n    * Kubernetesデベロッパー\n\n    * Kubernetesクラスタービューアー\n\n\n    これらの権限により、後続の手順でGitLabがGKEにデプロイできるようになります。\n\n\n    ### 3. CI/CDパイプラインの作成\n\n\n    ここが重要な部分です。デプロイ用のCI/CDパイプラインの作成です。\n\n\n    **ビルド > パイプラインエディタ**に移動し、4つのステージを持つパイプラインを定義します：\n\n\n    * **Build** - Dockerがコンテナイメージを作成します。\n\n    * **Test** - GitLab Auto DevOpsが組み込みのセキュリティスキャンを提供し、脆弱性がないことを確認します。\n\n    * **Upload** - GitLabの組み込みCI/CDコンポーネントを使用してGoogleアーティファクトレジストリにプッシュします。\n\n    * **Deploy** - Kubernetes定義を使用してGKEにデプロイします。\n\n\n    完全な`.gitlab-ci.yml`は次のとおりです:\n\n\n    ```yaml\n\n    default:\n      tags: [ saas-linux-2xlarge-amd64 ]\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      GCP_PROJECT_ID: \"your-project-id\"\n      GKE_CLUSTER: \"your-cluster\"\n      GKE_REGION: \"us-central1\"\n      KSA_NAME: \"ai-agent-ksa\"\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\n      - template: Jobs/Container-Scanning.gitlab-ci.yml\n      - template: 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\n    deploy:\n      stage: deploy\n      image: google/cloud-sdk:slim\n      identity: google_cloud\n      before_script:\n        - apt-get update && apt-get install -y kubectl google-cloud-sdk-gke-gcloud-auth-plugin\n        - gcloud container clusters get-credentials $GKE_CLUSTER --region $GKE_REGION --project $GCP_PROJECT_ID\n      script:\n        - |\n          kubectl apply -f - \u003C\u003CEOF\n          apiVersion: apps/v1\n          kind: Deployment\n          metadata:\n            name: ai-agent\n            namespace: default\n          spec:\n            replicas: 2\n            selector:\n              matchLabels:\n                app: ai-agent\n            template:\n              metadata:\n                labels:\n                  app: ai-agent\n              spec:\n                serviceAccountName: $KSA_NAME\n                containers:\n                - name: ai-agent\n                  image: $AR_IMAGE\n                  ports:\n                  - containerPort: 8080\n                  resources:\n                    requests: {cpu: 500m, memory: 1Gi}\n                    limits: {cpu: 2000m, memory: 4Gi}\n                  livenessProbe:\n                    httpGet: {path: /health, port: 8080}\n                    initialDelaySeconds: 60\n                  readinessProbe:\n                    httpGet: {path: /health, port: 8080}\n                    initialDelaySeconds: 30\n          ---\n          apiVersion: v1\n          kind: Service\n          metadata:\n            name: ai-agent-service\n            namespace: default\n          spec:\n            type: LoadBalancer\n            ports:\n            - port: 80\n              targetPort: 8080\n            selector:\n              app: ai-agent\n          ---\n          apiVersion: autoscaling/v2\n          kind: HorizontalPodAutoscaler\n          metadata:\n            name: ai-agent-hpa\n            namespace: default\n          spec:\n            scaleTargetRef:\n              apiVersion: apps/v1\n              kind: Deployment\n              name: ai-agent\n            minReplicas: 2\n            maxReplicas: 10\n            metrics:\n            - type: Resource\n              resource:\n                name: cpu\n                target: {type: Utilization, averageUtilization: 70}\n          EOF\n          \n          kubectl rollout status deployment/ai-agent -n default --timeout=5m\n          EXTERNAL_IP=$(kubectl get service ai-agent-service -n default -o jsonpath='{.status.loadBalancer.ingress[0].ip}')\n          echo \"Deployed at: http://$EXTERNAL_IP\"\n      only:\n        - main\n    ```\n\n\n    #### GKEの重要な設定\n\n\n    これが機能する理由、そしてGKEにこの追加設定が必要な理由は、Vertex AIと連携できるKubernetesサービスアカウントがクラスター内に必要だからです。このサービスアカウントには、Google CloudのAI機能にアクセスする権限が必要です。\n\n\n    この設定なしでは、アプリケーションはデプロイできますが、AIエージェントが機能しません。Vertex AIにアクセスできるKubernetesサービスアカウントを作成する必要があります。\n\n\n    この1回限りのセットアップを実行します:\n\n\n    ```bash\n\n    #!/bin/bash\n\n\n\n    PROJECT_ID=\"your-project-id\"\n\n\n\n    GSA_NAME=\"ai-agent-vertex\"\n\n\n\n    GSA_EMAIL=\"${GSA_NAME}@${PROJECT_ID}.iam.gserviceaccount.com\"\n\n\n\n    KSA_NAME=\"ai-agent-ksa\"\n\n\n\n    CLUSTER_NAME=\"your-cluster\"\n\n\n\n    REGION=\"us-central1\"\n\n\n\n\n    # GCPサービスアカウントを作成\n\n\n\n    gcloud iam service-accounts create $GSA_NAME \\\n        --display-name=\"AI Agent Vertex AI\" \\\n        --project=$PROJECT_ID\n\n    # Vertex AI権限を付与\n\n\n\n    gcloud projects add-iam-policy-binding $PROJECT_ID \\\n        --member=\"serviceAccount:${GSA_EMAIL}\" \\\n        --role=\"roles/aiplatform.user\"\n\n    # クラスター認証情報を取得\n\n\n\n    gcloud container clusters get-credentials $CLUSTER_NAME \\\n        --region $REGION --project $PROJECT_ID\n\n    # Kubernetesサービスアカウントを作成\n\n\n\n    kubectl create serviceaccount $KSA_NAME -n default\n\n\n\n\n    # アカウントをリンク\n\n\n\n    kubectl annotate serviceaccount $KSA_NAME -n default \\\n        iam.gke.io/gcp-service-account=${GSA_EMAIL}\n\n    gcloud iam service-accounts add-iam-policy-binding ${GSA_EMAIL} \\\n        --role=roles/iam.workloadIdentityUser \\\n        --member=\"serviceAccount:${PROJECT_ID}.svc.id.goog[default/${KSA_NAME}]\" \\\n        --project=$PROJECT_ID\n    ```\n\n\n    ### 4. GKEにデプロイする\n\n\n    完了したら、この変更をパイプラインにプッシュすると、準備完了です。\n\n\n    パイプラインがデプロイされたことを確認できます。**CI/CD > パイプライン**に移動すると、4つのステージが表示されます:\n\n\n    * Build\n\n    * Test(定義されたすべてのセキュリティスキャンを含む)\n\n    * アーティファクトレジストリへのUpload(成功)\n\n    * GKEのKubernetesへのDeploy(成功)\n\n\n    ## まとめ\n\n\n    GitLabとGoogle Cloudの組み合わせにより、AIエージェントをGKEに簡単かつ安全にデプロイできます。複雑な手順を踏む必要がなかったことが、おわかりいただけたと思います。GitLabのネイティブGoogle Cloudインテグレーションのおかげで実現できたのです。\n\n\n    デモ動画をご覧ください：\n\n\n    \u003C!-- blank line -->\n\n\n    \u003Cfigure class=\"video_container\">\n      \u003Ciframe src=\"https://www.youtube.com/embed/mc2pCL5Qjus?si=QoH02lvz5KH5Ku9O\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n    \u003C/figure>\n\n\n    \u003C!-- blank line -->\n\n\n    > このチュートリアルの[完全なコード例](https://gitlab.com/gitlab-partners-public/google-cloud/demos/gke-ai-agent)を使用して、今すぐ始めてみてください。まだGitLabユーザーでない場合は、[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)でDevSecOpsプラットフォームをお試しください。Google Cloudでホストされているスタートアップ企業には、[GitLabをお試しいただける特典](https://about.gitlab.com/ja-jp/solutions/startups/google-cloud/)があります。\n  authors:\n    - Regnard Raquedan\n  updatedDate: 2025-11-18\n  date: 2025-11-10\n  title: AIエージェントをGKEに安全にデプロイする方法\n  tags:\n    - AI/ML\n    - google\n    - cloud native\n    - tutorial\n  description: このガイドでは、GitLabのAIパワーDevSecOpsプラットフォームを使用して、ADKベースのAIエージェントをGoogle\n    Kubernetes Engineに簡単かつ安全にデプロイする方法を説明します。\n  category: ai-ml\nconfig:\n  featured: false\n  template: BlogPost\n  slug: secure-ai-agent-deployment-to-gke\n",{"config":34,"title":5,"description":35},{"noIndex":13},"このガイドでは、GitLabのAI搭載DevSecOpsプラットフォームを使用して、ADKベースのAIエージェントをGoogle Kubernetes Engineに簡単かつ安全にデプロイする方法を説明します。","ja-jp/blog/secure-ai-agent-deployment-to-gke",[38,23,39,25],"aiml","cloud-native",[22,23,24,25],"6ycZyC66BoyUvFy09SAaJWpiBgxfybwTCMQvJQPm9XU",{"logo":43,"freeTrial":48,"sales":53,"login":58,"items":63,"search":383,"minimal":416,"duo":433,"switchNav":442,"pricingDeployment":453},{"config":44},{"href":45,"dataGaName":46,"dataGaLocation":47},"/ja-jp/","gitlab logo","header",{"text":49,"config":50},"無料トライアルを開始",{"href":51,"dataGaName":52,"dataGaLocation":47},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":54,"config":55},"お問い合わせ",{"href":56,"dataGaName":57,"dataGaLocation":47},"/ja-jp/sales/","sales",{"text":59,"config":60},"サインイン",{"href":61,"dataGaName":62,"dataGaLocation":47},"https://gitlab.com/users/sign_in/","sign in",[64,93,195,200,303,364],{"text":65,"config":66,"menu":68},"プラットフォーム",{"dataNavLevelOne":67},"platform",{"type":69,"columns":70},"cards",[71,77,85],{"title":65,"description":72,"link":73},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":74,"config":75},"プラットフォームを探索",{"href":76,"dataGaName":67,"dataGaLocation":47},"/ja-jp/platform/",{"title":78,"description":79,"link":80},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":81,"config":82},"GitLab Duoのご紹介",{"href":83,"dataGaName":84,"dataGaLocation":47},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":86,"description":87,"link":88},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":89,"config":90},"詳細はこちら",{"href":91,"dataGaName":92,"dataGaLocation":47},"/ja-jp/why-gitlab/","why gitlab",{"text":94,"left":30,"config":95,"menu":97},"製品",{"dataNavLevelOne":96},"solutions",{"type":98,"link":99,"columns":103,"feature":174},"lists",{"text":100,"config":101},"すべてのソリューションを表示",{"href":102,"dataGaName":96,"dataGaLocation":47},"/ja-jp/solutions/",[104,129,152],{"title":105,"description":106,"link":107,"items":112},"自動化","CI/CDと自動化でデプロイを加速",{"config":108},{"icon":109,"href":110,"dataGaName":111,"dataGaLocation":47},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[113,117,120,125],{"text":114,"config":115},"CI/CD",{"href":116,"dataGaLocation":47,"dataGaName":114},"/ja-jp/solutions/continuous-integration/",{"text":78,"config":118},{"href":83,"dataGaLocation":47,"dataGaName":119},"gitlab duo agent platform - product menu",{"text":121,"config":122},"ソースコード管理",{"href":123,"dataGaLocation":47,"dataGaName":124},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":126,"config":127},"自動化されたソフトウェアデリバリー",{"href":110,"dataGaLocation":47,"dataGaName":128},"Automated software delivery",{"title":130,"description":131,"link":132,"items":137},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":133},{"href":134,"dataGaName":135,"dataGaLocation":47,"icon":136},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[138,142,147],{"text":139,"config":140},"アプリケーションセキュリティテスト",{"href":134,"dataGaName":141,"dataGaLocation":47},"Application security testing",{"text":143,"config":144},"ソフトウェアサプライチェーンの安全性",{"href":145,"dataGaLocation":47,"dataGaName":146},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":148,"config":149},"ソフトウェアコンプライアンス",{"href":150,"dataGaName":151,"dataGaLocation":47},"/ja-jp/solutions/software-compliance/","software compliance",{"title":153,"link":154,"items":159},"測定",{"config":155},{"icon":156,"href":157,"dataGaName":158,"dataGaLocation":47},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[160,164,169],{"text":161,"config":162},"可視性と測定",{"href":157,"dataGaLocation":47,"dataGaName":163},"Visibility and Measurement",{"text":165,"config":166},"バリューストリーム管理",{"href":167,"dataGaLocation":47,"dataGaName":168},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":170,"config":171},"分析とインサイト",{"href":172,"dataGaLocation":47,"dataGaName":173},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":175,"type":98,"items":176},"GitLabが活躍する場所",[177,183,189],{"text":178,"config":179},"エンタープライズ",{"icon":180,"href":181,"dataGaLocation":47,"dataGaName":182},"Building","/ja-jp/enterprise/","enterprise",{"text":184,"config":185},"スモールビジネス",{"icon":186,"href":187,"dataGaLocation":47,"dataGaName":188},"Work","/ja-jp/small-business/","small business",{"text":190,"config":191},"公共部門",{"icon":192,"href":193,"dataGaLocation":47,"dataGaName":194},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":196,"config":197},"価格",{"href":198,"dataGaName":199,"dataGaLocation":47,"dataNavLevelOne":199},"/ja-jp/pricing/","pricing",{"text":201,"config":202,"menu":204},"リソース",{"dataNavLevelOne":203},"resources",{"type":98,"link":205,"columns":209,"feature":289},{"text":206,"config":207},"すべてのリソースを表示",{"href":208,"dataGaName":203,"dataGaLocation":47},"/ja-jp/resources/",[210,243,261],{"title":211,"items":212},"はじめに",[213,218,223,228,233,238],{"text":214,"config":215},"インストール",{"href":216,"dataGaName":217,"dataGaLocation":47},"/ja-jp/install/","install",{"text":219,"config":220},"クイックスタートガイド",{"href":221,"dataGaName":222,"dataGaLocation":47},"/ja-jp/get-started/","quick setup checklists",{"text":224,"config":225},"学ぶ",{"href":226,"dataGaLocation":47,"dataGaName":227},"https://university.gitlab.com/","learn",{"text":229,"config":230},"製品ドキュメント",{"href":231,"dataGaName":232,"dataGaLocation":47},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":234,"config":235},"ベストプラクティスビデオ",{"href":236,"dataGaName":237,"dataGaLocation":47},"/ja-jp/getting-started-videos/","best practice videos",{"text":239,"config":240},"インテグレーション",{"href":241,"dataGaName":242,"dataGaLocation":47},"/ja-jp/integrations/","integrations",{"title":244,"items":245},"検索する",[246,251,256],{"text":247,"config":248},"お客様成功事例",{"href":249,"dataGaName":250,"dataGaLocation":47},"/ja-jp/customers/","customer success stories",{"text":252,"config":253},"ブログ",{"href":254,"dataGaName":255,"dataGaLocation":47},"/ja-jp/blog/","blog",{"text":257,"config":258},"リモート",{"href":259,"dataGaName":260,"dataGaLocation":47},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":262,"items":263},"つなげる",[264,269,274,279,284],{"text":265,"config":266},"GitLabサービス",{"href":267,"dataGaName":268,"dataGaLocation":47},"/ja-jp/services/","services",{"text":270,"config":271},"コミュニティ",{"href":272,"dataGaName":273,"dataGaLocation":47},"/community/","community",{"text":275,"config":276},"フォーラム",{"href":277,"dataGaName":278,"dataGaLocation":47},"https://forum.gitlab.com/","forum",{"text":280,"config":281},"イベント",{"href":282,"dataGaName":283,"dataGaLocation":47},"/events/","events",{"text":285,"config":286},"パートナー",{"href":287,"dataGaName":288,"dataGaLocation":47},"/ja-jp/partners/","partners",{"config":290,"text":293,"image":294,"link":298},{"background":291,"textColor":292},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":295,"config":296},"ソースプロモカード",{"src":297},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":299,"config":300},"最新情報を読む",{"href":301,"dataGaName":302,"dataGaLocation":47},"/ja-jp/the-source/","the source",{"text":304,"config":305,"menu":307},"会社情報",{"dataNavLevelOne":306},"company",{"type":98,"columns":308},[309],{"items":310},[311,316,322,324,329,334,339,344,349,354,359],{"text":312,"config":313},"GitLabについて",{"href":314,"dataGaName":315,"dataGaLocation":47},"/ja-jp/company/","about",{"text":317,"config":318,"footerGa":321},"採用情報",{"href":319,"dataGaName":320,"dataGaLocation":47},"/jobs/","jobs",{"dataGaName":320},{"text":280,"config":323},{"href":282,"dataGaName":283,"dataGaLocation":47},{"text":325,"config":326},"経営陣",{"href":327,"dataGaName":328,"dataGaLocation":47},"/company/team/e-group/","leadership",{"text":330,"config":331},"チーム",{"href":332,"dataGaName":333,"dataGaLocation":47},"/company/team/","team",{"text":335,"config":336},"ハンドブック",{"href":337,"dataGaName":338,"dataGaLocation":47},"https://handbook.gitlab.com/","handbook",{"text":340,"config":341},"投資家向け情報",{"href":342,"dataGaName":343,"dataGaLocation":47},"https://ir.gitlab.com/","investor relations",{"text":345,"config":346},"トラストセンター",{"href":347,"dataGaName":348,"dataGaLocation":47},"/ja-jp/security/","trust center",{"text":350,"config":351},"AI Transparency Center",{"href":352,"dataGaName":353,"dataGaLocation":47},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":355,"config":356},"ニュースレター",{"href":357,"dataGaName":358,"dataGaLocation":47},"/company/contact/#contact-forms","newsletter",{"text":360,"config":361},"プレス",{"href":362,"dataGaName":363,"dataGaLocation":47},"/press/","press",{"text":54,"config":365,"menu":366},{"dataNavLevelOne":306},{"type":98,"columns":367},[368],{"items":369},[370,373,378],{"text":54,"config":371},{"href":56,"dataGaName":372,"dataGaLocation":47},"talk to sales",{"text":374,"config":375},"サポートを受ける",{"href":376,"dataGaName":377,"dataGaLocation":47},"https://support.gitlab.com","support portal",{"text":379,"config":380},"カスタマーポータル",{"href":381,"dataGaName":382,"dataGaLocation":47},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":384,"login":385,"suggestions":392},"閉じる",{"text":386,"link":387},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":388,"config":389},"GitLab.com",{"href":61,"dataGaName":390,"dataGaLocation":391},"search login","search",{"text":393,"default":394},"提案",[395,397,402,404,408,412],{"text":78,"config":396},{"href":83,"dataGaName":78,"dataGaLocation":391},{"text":398,"config":399},"コード提案（AI）",{"href":400,"dataGaName":401,"dataGaLocation":391},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":114,"config":403},{"href":116,"dataGaName":114,"dataGaLocation":391},{"text":405,"config":406},"GitLab on AWS",{"href":407,"dataGaName":405,"dataGaLocation":391},"/ja-jp/partners/technology-partners/aws/",{"text":409,"config":410},"GitLab on Google Cloud",{"href":411,"dataGaName":409,"dataGaLocation":391},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":413,"config":414},"GitLabを選ぶ理由",{"href":91,"dataGaName":415,"dataGaLocation":391},"Why GitLab?",{"freeTrial":417,"mobileIcon":421,"desktopIcon":426,"secondaryButton":429},{"text":49,"config":418},{"href":419,"dataGaName":52,"dataGaLocation":420},"https://gitlab.com/-/trials/new/","nav",{"altText":422,"config":423},"GitLabアイコン",{"src":424,"dataGaName":425,"dataGaLocation":420},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":422,"config":427},{"src":428,"dataGaName":425,"dataGaLocation":420},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":211,"config":430},{"href":431,"dataGaName":432,"dataGaLocation":420},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":434,"mobileIcon":438,"desktopIcon":440},{"text":435,"config":436},"GitLab Duoの詳細について",{"href":83,"dataGaName":437,"dataGaLocation":420},"gitlab duo",{"altText":422,"config":439},{"src":424,"dataGaName":425,"dataGaLocation":420},{"altText":422,"config":441},{"src":428,"dataGaName":425,"dataGaLocation":420},{"button":443,"mobileIcon":448,"desktopIcon":450},{"text":444,"config":445},"/switch",{"href":446,"dataGaName":447,"dataGaLocation":420},"#contact","switch",{"altText":422,"config":449},{"src":424,"dataGaName":425,"dataGaLocation":420},{"altText":422,"config":451},{"src":452,"dataGaName":425,"dataGaLocation":420},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":454,"mobileIcon":459,"desktopIcon":461},{"text":455,"config":456},"価格ページに戻る",{"href":198,"dataGaName":457,"dataGaLocation":420,"icon":458},"back to pricing","GoBack",{"altText":422,"config":460},{"src":424,"dataGaName":425,"dataGaLocation":420},{"altText":422,"config":462},{"src":428,"dataGaName":425,"dataGaLocation":420},{"title":464,"button":465,"config":470},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":466,"config":467},"6月10日のGitLab Transcendに申し込む",{"href":468,"dataGaName":469,"dataGaLocation":47},"/ja-jp/releases/whats-new/#sign-up","transcend event",{"layout":471,"icon":472,"disabled":13},"release","AiStar",{"data":474},{"text":475,"source":476,"edit":482,"contribute":487,"config":492,"items":497,"minimal":699},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":477,"config":478},"ページのソースを表示",{"href":479,"dataGaName":480,"dataGaLocation":481},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":483,"config":484},"このページを編集",{"href":485,"dataGaName":486,"dataGaLocation":481},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":488,"config":489},"ご協力をお願いします",{"href":490,"dataGaName":491,"dataGaLocation":481},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":493,"facebook":494,"youtube":495,"linkedin":496},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[498,543,595,638,665],{"title":196,"links":499,"subMenu":514},[500,504,509],{"text":501,"config":502},"プランの表示",{"href":198,"dataGaName":503,"dataGaLocation":481},"view plans",{"text":505,"config":506},"Premiumを選ぶ理由",{"href":507,"dataGaName":508,"dataGaLocation":481},"/ja-jp/pricing/premium/","why premium",{"text":510,"config":511},"Ultimateを選ぶ理由",{"href":512,"dataGaName":513,"dataGaLocation":481},"/ja-jp/pricing/ultimate/","why ultimate",[515],{"title":54,"links":516},[517,519,521,523,528,533,538],{"text":54,"config":518},{"href":56,"dataGaName":57,"dataGaLocation":481},{"text":374,"config":520},{"href":376,"dataGaName":377,"dataGaLocation":481},{"text":379,"config":522},{"href":381,"dataGaName":382,"dataGaLocation":481},{"text":524,"config":525},"ステータス",{"href":526,"dataGaName":527,"dataGaLocation":481},"https://status.gitlab.com/","status",{"text":529,"config":530},"利用規約",{"href":531,"dataGaName":532,"dataGaLocation":481},"/terms/","terms of use",{"text":534,"config":535},"プライバシーに関する声明",{"href":536,"dataGaName":537,"dataGaLocation":481},"/ja-jp/privacy/","privacy statement",{"text":539,"config":540},"Cookie 優先設定",{"dataGaName":541,"dataGaLocation":481,"id":542,"isOneTrustButton":30},"cookie preferences","ot-sdk-btn",{"title":94,"links":544,"subMenu":553},[545,549],{"text":546,"config":547},"DevSecOpsプラットフォーム",{"href":76,"dataGaName":548,"dataGaLocation":481},"devsecops platform",{"text":550,"config":551},"AI支援開発",{"href":83,"dataGaName":552,"dataGaLocation":481},"ai-assisted development",[554],{"title":555,"links":556},"トピック",[557,561,566,571,576,581,585,590],{"text":114,"config":558},{"href":559,"dataGaName":560,"dataGaLocation":481},"/ja-jp/topics/ci-cd/","cicd",{"text":562,"config":563},"GitOps",{"href":564,"dataGaName":565,"dataGaLocation":481},"/ja-jp/topics/gitops/","gitops",{"text":567,"config":568},"DevOps",{"href":569,"dataGaName":570,"dataGaLocation":481},"/ja-jp/topics/devops/","devops",{"text":572,"config":573},"バージョン管理",{"href":574,"dataGaName":575,"dataGaLocation":481},"/ja-jp/topics/version-control/","version control",{"text":577,"config":578},"DevSecOps",{"href":579,"dataGaName":580,"dataGaLocation":481},"/ja-jp/topics/devsecops/","devsecops",{"text":582,"config":583},"クラウドネイティブ",{"href":584,"dataGaName":24,"dataGaLocation":481},"/ja-jp/topics/cloud-native/",{"text":586,"config":587},"コーディングのためのAI",{"href":588,"dataGaName":589,"dataGaLocation":481},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":591,"config":592},"エージェント型AI",{"href":593,"dataGaName":594,"dataGaLocation":481},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":596,"links":597},"ソリューション",[598,601,603,608,612,615,618,621,623,625,628,633],{"text":139,"config":599},{"href":134,"dataGaName":600,"dataGaLocation":481},"Application Security Testing",{"text":126,"config":602},{"href":110,"dataGaName":111,"dataGaLocation":481},{"text":604,"config":605},"アジャイル開発",{"href":606,"dataGaName":607,"dataGaLocation":481},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":609,"config":610},"SCM",{"href":123,"dataGaName":611,"dataGaLocation":481},"source code management",{"text":114,"config":613},{"href":116,"dataGaName":614,"dataGaLocation":481},"continuous integration & delivery",{"text":165,"config":616},{"href":167,"dataGaName":617,"dataGaLocation":481},"value stream management",{"text":562,"config":619},{"href":620,"dataGaName":565,"dataGaLocation":481},"/ja-jp/solutions/gitops/",{"text":178,"config":622},{"href":181,"dataGaName":182,"dataGaLocation":481},{"text":184,"config":624},{"href":187,"dataGaName":188,"dataGaLocation":481},{"text":626,"config":627},"公共機関",{"href":193,"dataGaName":194,"dataGaLocation":481},{"text":629,"config":630},"教育",{"href":631,"dataGaName":632,"dataGaLocation":481},"/ja-jp/solutions/education/","education",{"text":634,"config":635},"金融サービス",{"href":636,"dataGaName":637,"dataGaLocation":481},"/ja-jp/solutions/finance/","financial services",{"title":201,"links":639},[640,642,644,646,649,651,653,655,657,659,661,663],{"text":214,"config":641},{"href":216,"dataGaName":217,"dataGaLocation":481},{"text":219,"config":643},{"href":221,"dataGaName":222,"dataGaLocation":481},{"text":224,"config":645},{"href":226,"dataGaName":227,"dataGaLocation":481},{"text":229,"config":647},{"href":231,"dataGaName":648,"dataGaLocation":481},"docs",{"text":252,"config":650},{"href":254,"dataGaName":255,"dataGaLocation":481},{"text":247,"config":652},{"href":249,"dataGaName":250,"dataGaLocation":481},{"text":257,"config":654},{"href":259,"dataGaName":260,"dataGaLocation":481},{"text":265,"config":656},{"href":267,"dataGaName":268,"dataGaLocation":481},{"text":270,"config":658},{"href":272,"dataGaName":273,"dataGaLocation":481},{"text":275,"config":660},{"href":277,"dataGaName":278,"dataGaLocation":481},{"text":280,"config":662},{"href":282,"dataGaName":283,"dataGaLocation":481},{"text":285,"config":664},{"href":287,"dataGaName":288,"dataGaLocation":481},{"title":304,"links":666},[667,669,671,673,675,677,679,683,688,690,692,694],{"text":312,"config":668},{"href":314,"dataGaName":306,"dataGaLocation":481},{"text":317,"config":670},{"href":319,"dataGaName":320,"dataGaLocation":481},{"text":325,"config":672},{"href":327,"dataGaName":328,"dataGaLocation":481},{"text":330,"config":674},{"href":332,"dataGaName":333,"dataGaLocation":481},{"text":335,"config":676},{"href":337,"dataGaName":338,"dataGaLocation":481},{"text":340,"config":678},{"href":342,"dataGaName":343,"dataGaLocation":481},{"text":680,"config":681},"Sustainability",{"href":682,"dataGaName":680,"dataGaLocation":481},"/sustainability/",{"text":684,"config":685},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":686,"dataGaName":687,"dataGaLocation":481},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":345,"config":689},{"href":347,"dataGaName":348,"dataGaLocation":481},{"text":355,"config":691},{"href":357,"dataGaName":358,"dataGaLocation":481},{"text":360,"config":693},{"href":362,"dataGaName":363,"dataGaLocation":481},{"text":695,"config":696},"現代奴隷制の透明性に関する声明",{"href":697,"dataGaName":698,"dataGaLocation":481},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":700},[701,703,706],{"text":529,"config":702},{"href":531,"dataGaName":532,"dataGaLocation":481},{"text":704,"config":705},"Cookieの設定",{"dataGaName":541,"dataGaLocation":481,"id":542,"isOneTrustButton":30},{"text":534,"config":707},{"href":536,"dataGaName":537,"dataGaLocation":481},[709],{"id":710,"title":9,"body":28,"config":711,"content":713,"description":28,"extension":27,"meta":717,"navigation":30,"path":718,"seo":719,"stem":720,"__hash__":721},"blogAuthors/en-us/blog/authors/regnard-raquedan.yml",{"template":712},"BlogAuthor",{"name":9,"config":714},{"headshot":715,"ctfId":716},"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",[723,736,749],{"content":724,"config":734},{"title":725,"description":726,"authors":727,"heroImage":729,"date":730,"body":731,"category":11,"tags":732},"GitLabとAnthropic：エンタープライズ開発のためのガバナンスAI","GitLabがAnthropicとのClaude統合を強化。ガバナンス・コンプライアンス・監査証跡を組み込んだプラットフォームで、最新Claudeモデルへのアクセス、そしてGoogle CloudやAWSを通じた柔軟なクラウド展開をエンタープライズに提供します。",[728],"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/)からどうぞ。",[22,733,288],"product",{"featured":30,"template":14,"slug":735},"gitlab-and-anthropic-governed-ai-for-enterprise-development",{"content":737,"config":747},{"title":738,"description":739,"authors":740,"body":742,"heroImage":743,"date":744,"category":11,"tags":745},"GitLabとVertex AI on Google Cloud：エージェント型ソフトウェア開発の加速","Google CloudのVertex AIとGitLab Duo Agent Platformを組み合わせることで、ファウンデーションモデル、エンタープライズ制御、Model Gardenの豊富なモデルを活用したエージェント型開発が実現します。\n",[9,741],"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",[22,288,23,746,733],"news",{"featured":30,"template":14,"slug":748},"gitlab-and-vertex-ai-on-google-cloud",{"content":750,"config":760},{"heroImage":751,"body":752,"authors":753,"updatedDate":755,"date":756,"title":757,"tags":758,"description":759,"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/)",[754],"Albert Rabassa","2026-03-30","2026-03-05","MCPであらゆるツールを接続してGitLab Duo Agent Platformを拡張",[733,25],"MCPを使用して外部ツールをGitLab Duo Agent Platformに接続する方法を解説します。3つの実践的なワークフローデモを含むステップバイステップのセットアップガイドです。",{"featured":13,"template":14,"slug":761},"extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"promotions":763},[764,777,788,800],{"id":765,"categories":766,"header":767,"text":768,"button":769,"image":774},"ai-modernization",[11],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":770,"config":771},"Get your AI maturity score",{"href":772,"dataGaName":773,"dataGaLocation":255},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":775},{"src":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":778,"categories":779,"header":780,"text":768,"button":781,"image":785},"devops-modernization",[733,580],"Are you just managing tools or shipping innovation?",{"text":782,"config":783},"Get your DevOps maturity score",{"href":784,"dataGaName":773,"dataGaLocation":255},"/assessments/devops-modernization-assessment/",{"config":786},{"src":787},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":789,"categories":790,"header":792,"text":768,"button":793,"image":797},"security-modernization",[791],"security","Are you trading speed for security?",{"text":794,"config":795},"Get your security maturity score",{"href":796,"dataGaName":773,"dataGaLocation":255},"/assessments/security-modernization-assessment/",{"config":798},{"src":799},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":801,"paths":802,"header":805,"text":806,"button":807,"image":812},"github-azure-migration",[803,804],"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":808,"config":809},"See how GitLab compares to GitHub",{"href":810,"dataGaName":811,"dataGaLocation":255},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":813},{"src":787},{"header":815,"blurb":816,"button":817,"secondaryButton":821},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":49,"config":818},{"href":819,"dataGaName":52,"dataGaLocation":820},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":54,"config":822},{"href":56,"dataGaName":57,"dataGaLocation":820},1777934834955]