GitHub Enterprise Importer に必要なアクセスについて
データを保護するために、GitHub では、GitHub Enterprise Importer を使うための特定のアクセス要件が適用されます。 エラーを防ぐには、この記事を注意深く読み、完了したいタスクのすべての要件を満たしていることを確認する必要があります。
移行を実行するには、移行元と移行先の両方に十分なアクセス権が必要です。 リポジトリの移行の場合、移行先は Organization です。 Organization の移行の場合、移行先は Enterprise アカウントです。
初めて GitHub Enterprise Server 3.8 以降から移行する前に、[Management Console] にアクセスできる方が、お使いの GitHub Enterprise Server インスタンス の BLOB ストレージを設定する必要もあります。
その他のタスクの場合は、操作のターゲットに対するアクセス権のみ必要です。 たとえば、Organization に移行ツール ロールを付与するには、その Organization に対するアクセス権のみ必要です。
移行元または移行先への十分なアクセス権を持つには、次の両方が必要です。
- GitHub Organization または Enterprise アカウントの必要なロール
- Bitbucket Server の場合は、必要なアクセス許可と SFTP または SMB アクセス
- GitHub 製品と Azure DevOps の場合は、Organization または Enterprise アカウントにアクセスできる personal access token
- personal access token に、ロールと完了したいタスクに応じて、必要なスコープがすべて含まれている必要があります。
- 移行元または移行先で GitHub.com の SAML シングル サインオンを使う場合は、SSO の personal access token を認証する必要があります。
また、移行元または移行先で IP 許可リストを使う場合は、GitHub Enterprise Importer によるアクセスを許可するように許可リストを構成する必要があります。
GitHub の必要なロール
GitHub 製品間で移行する場合は、タスクごとに異なるロールが必要です。
タスク | Enterprise owner | Organization owner | 移行ツール |
---|---|---|---|
移行の実行 (移行元の Organization) | X | X | |
Organization 移行の実行 (移行先の Enterprise) | X | ||
リポジトリの移行に移行ツール ロールを割り当てる | X | ||
リポジトリの移行の実行 (移行先の Organization) | X | X | |
移行ログのダウンロード | X | X | |
マネキンの回収 | X |
Bitbucket Server に必要なアクセス許可
Bitbucket Server から移行するには、以下が必要です。
- 管理者またはスーパー管理者のアクセス許可を持つ Bitbucket Server アカウントのユーザー名とパスワード
- Bitbucket Server インスタンスが Linux 上で実行されている場合は、Bitbucket Server インスタンスへの SFTP アクセス (「SSH キー」をご覧ください)。 一般に、SSH 経由でサーバーにアクセスできる場合は、SFTP も使うことができます。
- Bitbucket Server インスタンスが Windows 上で実行されている場合、Bitbucket Server インスタンスへのファイル共有 (SMB) アクセス
SSH キー
Bitbucket Server インスタンスが Linux 上で実行されている場合は、次の要件を満たす SSH キーを使う必要があります。
- パスフレーズがない
- 次のいずれかの暗号を使う
aes256-ctr
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
blowfish-cbc
twofish-cbc
twofish192-cbc
twofish128-cbc
twofish256-cbc
arcfour
arcfour128
arcfour256
cast128-cbc
aes128-ctr
aes192-ctr
移行を実行する際に cipher name aes256-ctr for openssh key file is not supported
のようなエラーが表示される場合、SSH 秘密キーは、サポートされていない暗号を使っています。 互換性のある秘密キーを生成する方法について詳しくは、「GitHub Enterprise Importer を使用した移行のトラブルシューティング」を参照してください。
personal access token に必要なスコープ
移行を実行するには、移行先の Organization (リポジトリ移行の場合) または Enterprise アカウント (Organization 移行の場合) にアクセスできる personal access token が必要です。 ソースが GitHub 製品または Azure DevOps の場合は、移行元の Organization にアクセスできる別の personal access token も必要です。
移行ログのダウンロードなど、他のタスクでは、操作のターゲットにアクセスできる personal access token が 1 つだけ必要です。
GitHub 製品の Personal access token
GitHub personal access token に必要なスコープは、ロールと完了したいタスクによって異なります。
注: personal access token のみを使用でき、fine-grained personal access token は使用できません。
タスク | Enterprise owner | Organization owner | 移行ツール |
---|---|---|---|
移行の実行 (移行元の Organization) | - | read:org , repo | read:org , repo |
Organization 移行の実行 (移行先の Enterprise) | read:enterprise , admin:org , repo , workflow | - | - |
リポジトリの移行に移行ツール ロールを割り当てる | - | admin:org | - |
リポジトリの移行の実行 (移行先の Organization) | - | repo , admin:org , workflow | repo , read:org , workflow |
移行ログのダウンロード | - | repo , admin:org , workflow | repo , read:org , workflow |
マネキンの回収 | - | admin:org | - |
Azure DevOps の Personal access token
Azure DevOps (ADO) からの移行を実行するには、ADO personal access token に、work item (read)
、code (read)
、および identity (read)
スコープが必要です。
複数の Organization から移行する場合は、personal access token から、アクセス可能なすべての Organization にアクセスできるようにします。 詳しくは、Microsoft Docs で「personal access token を使用する」を参照してください。
GitHub Enterprise Importer の personal access token の作成
- 完了したいタスクに対して十分なロールがあることを確認します。 詳しくは、「必要なロール」を参照してください。
- personal access token を作成し、完了したいタスクに必要なすべてのスコープを付与します。 personal access token のみを使用でき、fine-grained personal access token は使用できません。 詳しくは、「Managing your personal access tokens」と「personal access token に必要なスコープ」を参照してください。
- アクセスする必要がある Organization に SAML シングル サインオンが適用されている場合は、SSO の personal access token を認証します。 詳しくは、「SAMLシングルサインオンで利用するために個人アクセストークンを認可する」を参照してください。
移行のための IP 許可リストの構成
移行元または移行先で IP 許可リストを使う場合は、GitHub Enterprise Importer へのアクセスを許可するようにリストを構成する必要があります。
IP 許可リストを正しく構成するには、次のセクションを注意深くお読みください。 移行によっては、複数のセクションが適用される場合があります。
移行元または移行先が GitHub.com
移行に次の両方が該当する場合は、GitHub.com で IP 許可リストを構成する必要があります。
- 移行元または移行先が GitHub.com
- 移行元または移行先で、GitHub の IP 許可リスト機能または ID プロバイダー (IdP) の IP 許可リスト制限 (Azure CAP など) のいずれかの IP 許可リストが使われます
GitHub の IP 許可リスト機能を使う場合は、以下の GitHub IP 範囲を移行元または移行先の Organization の許可リストに追加する必要があります。
IdP の IP 許可リストを使って GitHub.com で Enterprise へのアクセスを制限する場合は、移行が完了するまで Enterprise アカウント設定でこれらの制限を無効にする必要があります。
詳細については、「Organization に対する許可 IP アドレスを管理する」および「IP 許可リストを使用して Enterprise へのネットワーク トラフィックを制限する」を参照してください。
移行元が GitHub Enterprise Server
移行元が GitHub Enterprise Server の場合、GitHub の IP 範囲をファイアウォール構成または お使いの GitHub Enterprise Server インスタンス の IP 許可リストに追加する必要はありません。
ただし、BLOB ストレージ プロバイダーのセットアップによっては、以下の GitHub の IP 範囲へのアクセスを許可するように BLOB ストレージ プロバイダーの構成の更新が必要になる場合があります。
GitHub の IP 範囲の特定
REST API の "GitHub メタ情報の取得" エンドポイントを使って、送信接続に GitHub Enterprise Importer によって使われる IP 範囲の最新リストを取得できます。 詳しくは、REST API ドキュメントの「Meta」をご覧ください。
応答の hooks
キーに、移行に使われる IP 範囲のリストが含まれます。