トラブルシューティング

このページでは、Secure Source Manager に関する問題を解決する方法について説明します。

リポジトリの作成時のエラー メッセージ

リポジトリを作成しようとすると、次のエラーが表示されます。

There was an error while loading /repo/create. Try refreshing the page.

この問題は、次のいずれかの条件に該当する場合に発生します。

  • プロジェクトで Secure Source Manager API が有効になっていない。
  • プロジェクトに対する Repo 管理者ロールがないか、Secure Source Manager インスタンスでリポジトリを作成する権限がない。

この問題を解決するには:

  • プロジェクトで Secure Source Manager API を有効にします
  • 管理者に次のロールの付与を依頼します。
    • プロジェクトに対する Repo 管理者(roles/securesourcemanager.repoAdmin)ロール。
    • Secure Source Manager インスタンスに対するインスタンス アクセサー(roles/securesourcemanager.instanceAccessor)。
    • Secure Source Manager インスタンスに対するインスタンス リポジトリ作成者(roles/securesourcemanager.instanceRepositoryCreator)。

詳しくは、IAM によるアクセス制御をご覧ください。

Mac でリポジトリをクローン作成する際のエラー メッセージ

リポジトリをクローン作成しようとすると、次のエラーが表示されます。

git: 'credential-gcloud.sh' is not a git command.  See 'git --help'.
fatal: Authentication failed for [repo-url]

この問題は、次のいずれかの条件に該当する場合に発生します。

  • gcloud CLI が Homebrew または他の標準外のインストールを使用してインストールされている。
  • git-credential-gcloud.sh が PATH に追加されていない。

この問題を解決するには:

  • source $HOMEBREW_PREFIX/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc を実行します。
  • 次のコマンドを実行して、git-credential-gcloud.sh がパスにあることを確認します。

    which git-credential-gcloud.sh
    

Git HTTPS リクエストが権限拒否または未承認エラーで失敗する

HTTPS 経由で Git コマンドを実行しようとすると、権限拒否または未承認のエラー メッセージが表示されます。

この問題は、次のいずれかの条件に該当する場合に発生します。

  • グローバル Git 構成ファイルに Secure Source Manager 認証ヘルパーがない。
  • Secure Source Manager 認証ヘルパーを呼び出して新しい認証情報を取得する代わりに、Git の組み込み認証情報ストアが使用されている。
  • Secure Source Manager 認証ヘルパーを呼び出して新しい認証情報を取得する代わりに、システム認証情報ヘルパーが使用されている。
  • HTTPS を使用して Secure Source Manager リポジトリとやり取りするときに、古いバージョンの Google Cloud CLI が使用されている。Secure Source Manager には、Google Cloud CLI バージョン 395.0.0 以降が必要です。

この問題を解決するには:

  1. 次のコマンドを実行して、グローバル Git 構成の内容を確認します。

    git config --list | grep credential
    
  2. macOS で *credential*.helper=store、Windows OS で credential.helper = manager のような行が表示されたら、それらの行を削除し、gcloud auth login を使用して再認証してから、Git コマンドをもう一度試してください。

  3. macOS または Linux で credential.https://*.*.sourcemanager.dev.helper=gcloud.sh、Windows で credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd がレスポンスに含まれていない場合は、Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加します。

    Linux

    1. Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加するには、次のコマンドを実行します。

      git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
      
    2. 次のコマンドを実行して、認証ヘルパーの行がグローバル Git 構成に追加されていることを確認します。

      git config --list | grep credential
      

      出力には credential.https://*.*.sourcemanager.dev.helper=gcloud.sh が含まれている必要があります。

    3. gcloud auth login を実行して認証します。

    4. Git コマンドを実行して認証をテストします。

    Windows

    1. Git と Google Cloud CLI をインストールするの手順に沿って、gcloud CLI のバージョンを確認します。
    2. Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加するには、次のコマンドを実行します。

      git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
      
    3. 次のコマンドを実行して、認証ヘルパーの行がグローバル Git 構成に追加されていることを確認します。

      git config --list | grep credential
      

      出力には credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd が含まれている必要があります。

    4. gcloud auth login を実行して認証します。

    5. Git コマンドを実行して認証をテストします。

Git HTTPS リクエストがトークンが無効なため失敗する

Git HTTPS オペレーションのパスワードとして有効な OAuth トークンが必要です。通常、これは Git 認証情報ヘルパー によって処理されますが、他の方法(たとえば、アプリケーションのデフォルト認証情報)で生成された OAuth トークンでも機能します。

トークンが無効なため Git リクエストが拒否された場合、通常は受信トークンからユーザー情報を抽出できなかったことを意味します。このエラーには複数の原因が考えられます。

  • gcloud CLI ログインが期限切れになっている可能性があります。

    gcloud auth login を使用して再度ログインします。

  • トークンのスコープが十分ではありません。OAuth トークンには次のスコープが必要です。

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/userinfo.email

    トークン スコープを確認するには、curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN} を呼び出します。

  • GKE フリート ワークロード ID から生成されたトークンを使用している。

  • 特定の境界外(コンテキストアウェア アクセスなど)でトークンを使用できない組織ポリシーがある。

    この問題を解決するには、git_helper_use_adc gcloud CLI 構成プロパティを true に設定し、アプリケーションのデフォルト認証情報(ADC)を更新します。

    1. git_helper_use_adc プロパティを設定します。

      gcloud config set auth/git_helper_use_adc true
      
    2. ADC を更新します。

      gcloud auth login --update-adc
      

macOS で Git HTTPS リクエストが古い認証情報により 403 エラーで失敗する

macOS で HTTPS 経由で Git オペレーションを実行すると、403 エラーが表示されることがあります。

この問題は、macOS で iCloud キーチェーンを使用している場合に発生する可能性があります。iCloud キーチェーンは、古いトークンを保存して同期することで、gcloud CLI 認証トークンを妨害する可能性があります。これらの古いトークンが原因で、gcloud auth login を使用して再認証しても、Secure Source Manager で認証が失敗する可能性があります。

この問題を解決するには、キーチェーン アクセスから古い認証情報を手動で削除します。

  1. Mac で [キーチェーン アクセス] アプリケーション(/Applications/Utilities/ にあります)を開きます。
  2. sourcemanager.dev を検索します。
  3. エントリを右クリックして [削除] を選択し、*.*.sourcemanager.dev または Secure Source Manager インスタンス URL に一致する「インターネット パスワード」の種類のエントリを削除します。
  4. エントリを削除したら、Git オペレーションを再試行します。gcloud CLI で再認証を求められることがあります。Git オペレーションが引き続き失敗する場合は、gcloud auth login を実行してからもう一度お試しください。

GKE フリート ワークロード ID で Kubernetes サービス アカウント(KSA)トークンを使用すると SSM がエラーを返す

GKE フリート ワークロード ID を使用する場合、未加工の KSA トークンは Secure Source Manager でサポートされていません。これらのトークンを使用するとエラーが発生します。

この問題を解決するには、サービス アカウントを偽装し ワークロードを Google サービス アカウントにバインドする必要があります。また、KSA 構成に次のアノテーションを追加する必要があります。

iam.gke.io/gcp-service-account: SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

ウェブ インターフェースのプロダクト セレクタにプロジェクトが表示されない

Secure Source Manager ウェブ インターフェースのプロダクト セレクタを使用しても、プロジェクトが表示されません。

この問題は、Secure Source Manager のログイン認証情報が複数ある場合に発生します。

この問題を解決するには:

  • Secure Source Manager インスタンス URL に /_oauth/consent を追加して、Cookie をクリアします。

    たとえば、インスタンス URL が https://my-instance-098765432123.us-central1.sourcemanager.dev/の場合は、ブラウザのアドレスバーに https://my-instance-098765432123.us-central1.sourcemanager.dev/_oauth/consent と入力し、正しい認証情報でログインします。

トリガー ファイルでビルドがトリガーされない

トリガー ファイルを送信してもビルドが想定どおりにトリガーされない場合は、次のいずれかの問題が発生している可能性があります。

  • トリガー ファイルがデフォルト ブランチにない。この問題を解決するには、トリガー ファイルをデフォルト ブランチに移動します。
  • トリガー ファイルの形式が無効です。このエラーは、リポジトリ ページに Build triggers configuration error: ... というバナーが表示されることで示されます。 この問題を解決するには、トリガー ファイルのスキーマをご覧ください。トリガー ファイルの構成が正しい場合、リポジトリ ページのバナーには Valid build triggers configuration と表示されます。

ビルドトリガーの構成エラー

triggers.yaml ファイルを Secure Source Manager リポジトリに送信すると、バナーに次のエラーが表示されます。

Build cannot be created.

この問題は、次の理由で発生します。

  • Cloud Build 構成ファイルに無効なオプションがある。
  • Cloud Build 構成ファイルの形式が無効である。
  • Secure Source Manager サービス アカウントに、ユーザー指定の Cloud Build サービス アカウントを使用するために必要な権限がない。

この問題を解決するには:

実行中にビルドが失敗する

ビルドが正常にトリガーされたものの、実行中に失敗した場合、関連する commit の commit ステータスは [失敗] になります。

失敗したビルドのトラブルシューティングを行うには、リポジトリ ページで、失敗した commit ステータスの横にある [詳細] をクリックします。

Cloud Build 実行ログが開きます。Cloud Build での ビルドのトラブルシューティングの詳細については、 ビルドエラーのトラブルシューティングをご覧ください。