このページでは、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)。
- プロジェクトに対する Repo 管理者(
詳しくは、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 以降が必要です。
この問題を解決するには:
次のコマンドを実行して、グローバル Git 構成の内容を確認します。
git config --list | grep credentialmacOS で
*credential*.helper=store、Windows OS でcredential.helper = managerのような行が表示されたら、それらの行を削除し、gcloud auth loginを使用して再認証してから、Git コマンドをもう一度試してください。macOS または Linux で
credential.https://*.*.sourcemanager.dev.helper=gcloud.sh、Windows でcredential.https://*.*.sourcemanager.dev.helper=gcloud.cmdがレスポンスに含まれていない場合は、Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加します。Linux
Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加するには、次のコマンドを実行します。
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh次のコマンドを実行して、認証ヘルパーの行がグローバル Git 構成に追加されていることを確認します。
git config --list | grep credential出力には
credential.https://*.*.sourcemanager.dev.helper=gcloud.shが含まれている必要があります。gcloud auth loginを実行して認証します。Git コマンドを実行して認証をテストします。
Windows
- Git と Google Cloud CLI をインストールするの手順に沿って、gcloud CLI のバージョンを確認します。
Secure Source Manager 認証ヘルパーをグローバル Git 構成に追加するには、次のコマンドを実行します。
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd次のコマンドを実行して、認証ヘルパーの行がグローバル Git 構成に追加されていることを確認します。
git config --list | grep credential出力には
credential.https://*.*.sourcemanager.dev.helper=gcloud.cmdが含まれている必要があります。gcloud auth loginを実行して認証します。Git コマンドを実行して認証をテストします。
Git HTTPS リクエストがトークンが無効なため失敗する
Git HTTPS オペレーションのパスワードとして有効な OAuth トークンが必要です。通常、これは Git 認証情報ヘルパー によって処理されますが、他の方法(たとえば、アプリケーションのデフォルト認証情報)で生成された OAuth トークンでも機能します。
トークンが無効なため Git リクエストが拒否された場合、通常は受信トークンからユーザー情報を抽出できなかったことを意味します。このエラーには複数の原因が考えられます。
gcloud CLI ログインが期限切れになっている可能性があります。
gcloud auth loginを使用して再度ログインします。トークンのスコープが十分ではありません。OAuth トークンには次のスコープが必要です。
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/userinfo.email
トークン スコープを確認するには、
curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}を呼び出します。GKE フリート ワークロード ID から生成されたトークンを使用している。
- GKE フリート ワークロード ID から生成された未加工のトークンは対象外です。詳細については、GKE フリート ワークロード ID で KSA トークンを使用すると SSM がエラーを返すをご覧ください。
特定の境界外(コンテキストアウェア アクセスなど)でトークンを使用できない組織ポリシーがある。
この問題を解決するには、
git_helper_use_adcgcloud CLI 構成プロパティをtrueに設定し、アプリケーションのデフォルト認証情報(ADC)を更新します。git_helper_use_adcプロパティを設定します。gcloud config set auth/git_helper_use_adc trueADC を更新します。
gcloud auth login --update-adc
macOS で Git HTTPS リクエストが古い認証情報により 403 エラーで失敗する
macOS で HTTPS 経由で Git オペレーションを実行すると、403 エラーが表示されることがあります。
この問題は、macOS で iCloud キーチェーンを使用している場合に発生する可能性があります。iCloud キーチェーンは、古いトークンを保存して同期することで、gcloud CLI 認証トークンを妨害する可能性があります。これらの古いトークンが原因で、gcloud auth login を使用して再認証しても、Secure Source Manager で認証が失敗する可能性があります。
この問題を解決するには、キーチェーン アクセスから古い認証情報を手動で削除します。
- Mac で [キーチェーン アクセス] アプリケーション(
/Applications/Utilities/にあります)を開きます。 sourcemanager.devを検索します。- エントリを右クリックして [削除] を選択し、
*.*.sourcemanager.devまたは Secure Source Manager インスタンス URL に一致する「インターネット パスワード」の種類のエントリを削除します。 - エントリを削除したら、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 サービス アカウントを使用するために必要な権限がない。
この問題を解決するには:
- 正しい トリガー ファイルのスキーマに従っていることを確認します。
- Secure Source Manager サービス アカウントと Cloud Build サービス アカウントに十分な権限があることを確認します。必要な権限を確認するには、 必要なサービス アカウントのロールをご覧ください。
実行中にビルドが失敗する
ビルドが正常にトリガーされたものの、実行中に失敗した場合、関連する commit の commit ステータスは [失敗] になります。
失敗したビルドのトラブルシューティングを行うには、リポジトリ ページで、失敗した commit ステータスの横にある [詳細] をクリックします。
Cloud Build 実行ログが開きます。Cloud Build での ビルドのトラブルシューティングの詳細については、 ビルドエラーのトラブルシューティングをご覧ください。