Skip to main content

GitHub UI でのプッシュ保護の操作

secret scanning が変更のシークレットを検出したときにコミットのブロックを解除するためのオプションについて説明します。

この機能を使用できるユーザーについて

書き込み アクセスを持つユーザー

GitHub UI でのプッシュ保護について

GitHub UIでファイルを アップロード、作成 、編集する場合、プッシュ保護がサポートされているシークレットを含むコミットを禁止することで、リポジトリに誤ってシークレットをコミットできないようにします。

GitHub では、サポートされているシークレットなどファイルをアップロードしようとすると、コミットもブロックされます。

メモ

Web UI のファイルのアップロードに対するプッシュ保護は現在 パブリック プレビュー 段階にあり、変更される可能性があります。

次のいずれかを行う必要があります。

GitHub では、Web UI で検出されたシークレットを一度に 1 つのみ表示します。 リポジトリで特定のシークレットが既に検出されていて、アラートが既に存在する場合、GitHub はそのシークレットをブロックしません。

Organization の所有者は、プッシュがブロックされると表示されるカスタム リンクを指定できます。 このカスタム リンクには、Organization 固有のリソースとアドバイスを含めることができます。 たとえば、Organization のシークレット コンテナー、質問をエスカレートするチームや個人、シークレットの操作とコミット履歴の書き換えに関して Organization で承認されたポリシーに関する情報を含む README ファイルをカスタム リンクが指すようにすることができます。

ブロックされたコミットの解決

Web UI を使用して、サポートされているシークレットをプッシュ保護によって保護されたリポジトリにコミットしようとすると、GitHub によってコミットがブロックされます。

シークレットの場所に関する情報と、シークレットをプッシュできるオプションを含むダイアログ ボックスが表示されます。 簡単に見つけられるように、ファイルではシークレットに下線も引かれています。

Web UI でブロックされたコミットを解決するには、ファイルからシークレットを削除する必要があります。 シークレットを削除すると、変更をコミットできるようになります。

メモ

コマンド ラインで禁止されたプッシュを解決する方法については、「コマンド ラインからのプッシュ保護を操作する」を参照してください。

プッシュ保護をバイパスする

コミットしても安全であると思われるシークレットを GitHub がブロックする場合、そのシークレットを許可する理由を指定することで、ブロックをバイパスできます。

シークレットのプッシュを許可すると、 [セキュリティ] タブにアラートが作成されます。シークレットが擬陽性かテスト用のみであれば、GitHub によってアラートが閉じられ、通知が送信されません。 シークレットが実際のものであり、後で修正することを指定した場合、GitHub はセキュリティ アラートを開いたままにし、コミットの作成者とリポジトリ管理者に通知を送信します。 詳しくは、「シークレット スキャンからのアラートの管理」をご覧ください。

共同作成者がシークレットのプッシュ保護ブロックをバイパスすると、GitHub は、メール通知にオプトインした organization 所有者、セキュリティ マネージャー、リポジトリ管理者にもメール アラートを送信します。

  1. GitHub がコミットをブロックしたときに表示されるダイアログ ボックスで、シークレットの名前と場所を確認します。

  2. シークレットをプッシュできる理由を最もよく表しているオプションを選択します。

    • シークレットがテストでのみ使用され、脅威がない場合は、 [テストで使用されます] をクリックします。

    • 検出された文字列がシークレットでない場合は、 [誤検知です] をクリックします。

    • シークレットが本物で、後で修正する予定の場合は、 [後で修正します] をクリックします。

    メモ

    リポジトリでシークレット スキャンが有効になっている場合は、プッシュ保護をバイパスする理由を指定する必要があります。

    シークレット スキャンが有効になっていない_パブリック_ リポジトリにプッシュする場合でも、ユーザー アカウントに対して既定で有効になっている_ユーザーのプッシュ保護_により、シークレットが誤ってプッシュされることから保護されます。

    ユーザーのプッシュ保護により、サポートされているシークレットがプッシュに含まれている場合、GitHub はパブリック リポジトリへのプッシュを自動的にブロックしますが、シークレットを許可する理由を指定する必要はなく、GitHub は許可しません。アラートを生成します。 詳しくは、「ユーザーのプッシュ保護」をご覧ください。

  3. [シークレットの許可] をクリックします。

ブロックをバイパスするオプションが表示されない場合は、リポジトリ管理者または組織の所有者は、プッシュ保護に関するさらに厳密な制御を構成しています。 代わりに、コミットからシークレットを削除する、またはブロックされたシークレットをプッシュするために "特権のバイパス" 要求を送信する必要があります。 詳しくは、「バイパス特権を要求する」を参照してください。

バイパス特権の要求

プッシュ保護によってコミットがブロックされている場合、ブロックをバイパスするアクセス許可を要求できます。 要求は、指定されたレビュー担当者のグループに送信されます。レビュー担当者は、要求を承認または拒否します。

要求は 7 日後に期限切れになります。

  1. GitHub がコミットをブロックしたときに表示されるダイアログ ボックスで、シークレットの名前と場所を確認します。
  2. [要求の開始] をクリックします。 要求は新しいタブで開かれます。1. [バイパス特権を要求する] で、コメントを追加します。 たとえば、シークレットがプッシュしても安全だと考える理由や、ブロックをバイパスする要求に関するコンテキストを提供する理由を説明できます。
  3. [要求の送信] をクリックします
  4. メール通知で要求への応答を確認します。

要求が確認されると、決定を通知する電子メールが届きます。

要求が承認された場合は、シークレットを含む変更をファイルにコミットできます。 また、同じシークレットを含む今後の変更をコミットすることもできます。

要求が拒否された場合は、変更をコミットする前に、ファイルからシークレットを削除する必要があります。

参考資料