Secret Detection サービス: 一般的な FAQ

このページには Secret Detection サービスに関する一般的な質問への回答が含まれています。このランブックは、サービスの技術的な側面を理解したいすべての人が使用できます。

一般的な FAQ

  1. サービスはどこにデプロイされていますか?

    サービスはコンテナを管理するために内部で Google Cloud Run を使用する Runway にデプロイされています。

  2. サービスはいくつの環境にデプロイされますか?

    サービスはステージング(https://secret-detection.staging.runway.gitlab.net)と本番(https://secret-detection.production.runway.gitlab.net)にデプロイされます。

  3. 本番環境ではどのリージョンにデプロイされますか?

    サービスは GitLab Rails モノリスがデプロイされているのと同じリージョン us-east1 のみにデプロイされます。

  4. サービスは環境変数を使用しますか?

    はい。現在、アプリケーションが動作しているアクティブな環境を決定するための ENV(非機密)変数と、API リクエストに埋め込まれたトークンを照合するための AUTH_TOKEN(機密)変数を使用しています。

  5. サービスの環境変数はどこに保存されており、誰が変更できますか?

    非機密変数はプロジェクトリポジトリenv-<environment>.yml ファイルに保存されており、機密変数は Hashicorp Vault に保存されています。現在、~“group::secret detection” チームが Vault へのアクセス権を持っています。

  6. Vault の SD サービス変数はどこで見つけられますか?

    ステージング環境についてはこちら、本番環境についてはこちらで見つけられます。

  7. サービスの API は公開アクセス可能ですか?

    環境によります。現在、ステージング環境のサービスは公開アクセス可能で、後でプライベートに変更する可能性があります。セキュリティリスクを軽減するために、本番環境のサービスは GitLab Rails モノリスインスタンスのみからアクセス可能になっています。

  8. サービスが公開する API のカテゴリは何ですか?

    サービスは Secret Detection スキャン用の gRPC エンドポイントのみを公開しています。詳細についてはこちらをお読みください。

  9. サービス API にアクセスするための認証プロセスはありますか?

    はい。クライアントがリクエストにトークンを埋め込み、それをサービスの AUTH_TOKEN と照合するという基本的なトークンベースの認証があります。認証は Secret Detection 関連の RPC エンドポイントのみに適用されることに注意してください。詳細についてはこちらをお読みください。

  10. サービスが動作していることを確認するにはどうすればよいですか?確認するためのヘルスチェックエンドポイントはありますか?

    サービスはサービスの健全性を確認するために Runway が使用するヘルスチェック RPC エンドポイントを公開しています。こちらで見つけることができます。ただし、本番環境では、インスタンスが公開アクセス可能でないため、ヘルスチェックの失敗についてはログに頼る必要がある場合があります。あるいは、Rails モノリスがサービスにアクセスできるため、teleport コンソールからアクセスすることもできます。

  11. SD サービスにアクセスする GitLab サービスはどれですか?

    Rails モノリスサービスのみが SD サービスにアクセスしてスキャンを呼び出します。

  12. サービスのログにはどこからアクセスできますか?

    Google Cloud Run ログからアクセスできます。カスタムフィルタリング/クエリ機能を取得するために GCP ログエクスプローラーからもログを確認できます。

  13. モニタリング目的でサービスのダッシュボードにはどこからアクセスできますか?

    ステージング環境についてはこちら、本番環境についてはこちらで見つけることができます。

  14. API にレート制限は追加されていますか?

    アプリケーションレベルのレート制限は追加されていませんが、Cloud Run はサービスが対象となるインスタンスのレート制限を定義しています。

  15. 可用性を決定するためのサービスのサービスレベル指標(SLI)は何ですか?

    Runway のデフォルト SLI(runway_ingress)を使用しており、Apdex スコア、リクエストレート、エラーレートが含まれています。

  16. サービスに設定されているサービスレベル目標(SLO)は何ですか?

    サービスの SLO は Apdex スコアの 99.9%(0.999)とエラー比率の 99.9%(0.999)を満たすように設定されています。これらは Runway によって設定されたデフォルトの SLO 値であり、サービスに十分と思われるためデフォルト値のままにしています。必要な場合はこちらで変更できます。

  17. SLO 違反が発生した場合にアラートは設定されていますか?

    はい。アラートはこちらに設定されています。アラートは、Apdex 違反、エラーレート違反、トラフィック停止(サーバーシグナルあり、トラフィックなし)、およびトラフィック不在(ヘルスチェックを含むサーバーシグナルなし)について過去30分間でトリガーされます。

  18. SLO 違反が発生した場合はどうなりますか?

    SLO 違反インシデントが発生した場合、alertmanager はすべてのアラートを #feed_alerts-general Slack チャンネルに発送し、そのコピーを #g_secure-secret-detection Slack チャンネルにも送信します。

  19. トリガーされたアラートにはどの深刻度が割り当てられますか?

    サービスは Runway の SLI デフォルトを借用しているため、デフォルトには深刻度を S4 に設定することも含まれています。必要に応じて異なる深刻度に変更できます(Readiness Review の承認が必要)。

  20. SLO 違反が発生した場合、SRE チームにページが送られますか?

    いいえ。深刻度 S1 または S2 のアラートのみが SRE チームにページが送られます。group::secret detection チームがインシデントの監視に責任を持ちます。

追加参考資料