このページでは、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 credential
- macOS で - *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-platform
- https://www.googleapis.com/auth/userinfo.email
 - トークンのスコープを確認するには、 - curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}を呼び出します。
- GKE フリート ワークロード ID から生成されたトークンを使用している。 - GKE Fleet Workload Identity から生成された未加工のトークンはサポートされていません。詳細については、GKE フリート Workload Identity で KSA トークンを使用すると SSM がエラーを返すをご覧ください。
 
- 特定の境界外でトークンを使用できないようにする組織のポリシー(コンテキストアウェア アクセスなど)がある。 - Secure Source Manager はコンテキストアウェア アクセスをネイティブにサポートしていません。次の手順については、サポートにお問い合わせください。 
GKE フリート ワークロード ID で Kubernetes サービス アカウント(KSA)トークンを使用すると、SSM がエラーを返す
GKE Fleet Workload Identity を使用する場合、Secure Source Manager では未加工の KSA トークンはサポートされていません。これらのトークンを使用すると、エラーが発生します。
この問題を解決するには、サービス アカウントを偽装し、ワークロードを 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 ステータスは Failure になります。
失敗したビルドのトラブルシューティングを行うには、リポジトリ ページで、失敗したコミット ステータスの横にある [詳細] をクリックします。
Cloud Build 実行ログが開きます。Cloud Build でのビルドのトラブルシューティングの詳細については、ビルドエラーのトラブルシューティングをご覧ください。