Git リポジトリを に移行するAWS CodeCommit - AWS CodeCommit

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Git リポジトリを に移行するAWS CodeCommit

既存の Git リポジトリを CodeCommit リポジトリに移行できます。このトピックの手順では、別の Git リポジトリにホストされているプロジェクトを CodeCommit に移行する方法について説明します。このプロセスの一環として、次の作業を行います。

  • CodeCommit に必要な初期セットアップを完了します。

  • CodeCommit リポジトリを作成します。

  • リポジトリをクローンし、CodeCommit にプッシュします。

  • CodeCommit リポジトリ内のファイルを表示します。

  • CodeCommit リポジトリをチームと共有します。

Git リポジトリの CodeCommit への移行

ステップ 0: CodeCommit へアクセスに必要なセットアップを行う

リポジトリを CodeCommit にマイグレーションする前に、CodeCommit 用の IAM ユーザーを作成して設定し、アクセス用にローカルコンピュータを設定する必要があります。また、AWS CLI をインストールして CodeCommit を管理する必要があります。ほとんどの CodeCommit タスクは CLI なしで実行できますが、AWS CLI はコマンドラインや端末で Git を操作するときに柔軟性を提供します。

CodeCommit 用に既に設定されている場合は、ステップ 1: CodeCommit リポジトリを作成する にスキップできます。

IAM ユーザーを作成および設定して CodeCommit にアクセスするには
  1. アマゾン ウェブ サービスアカウントを作成するには、http://aws.amazon.com にアクセスし、[Sign Up] (サインアップ) を選択します。

  2. IAM ユーザーを作成するか、アマゾン ウェブ サービスアカウントに関連付けられた既存のユーザーを使用します。アクセスキー ID およびシークレットアクセスキーがその IAM ユーザーに関連付けられていることを確認します。詳細については、アマゾン ウェブ サービスアカウントの IAM ユーザーの作成を参照してください。

    注記

    CodeCommit は が必要ですAWS Key Management Service 既存の IAM ユーザーを使用している場合は、CodeCommit で必要な AWS KMS アクションを明示的に拒否するユーザーにポリシーがアタッチされていないことを確認します。詳細については、「AWS KMS および暗号化」を参照してください。

  3. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  4. IAM コンソールのナビゲーションペインで、[Users] (ユーザー) を選択し、続いて、CodeCommit へアクセスするために設定する IAM ユーザーを選択します。

  5. [Permissions (アクセス許可)] タブで、[Add Permissions (アクセス許可の追加)] を選択します。

  6. [Grant permissions (アクセス許可の付与)] で、[Attach existing policies directly (既存のポリシーを直接アタッチする)] を選択します。

  7. ポリシーの一覧から、[AWSCodeCommitPowerUser] または CodeCommit アクセスの別の管理ポリシーを選択します。詳細については、「CodeCommit の AWS 管理ポリシー」を参照してください。

    アタッチするポリシーを選択したら、[Next: Review] (次へ: 確認) を選択して、IAM ユーザーにアタッチするポリシーのリストを表示します。リストが正しい場合は、[Add permissions (アクセス許可の追加)] を選択します。

    CodeCommit 管理ポリシーや、その他のグループおよびユーザーを含むリポジトリへのアクセス共有の詳細については、リポジトリの共有 および AWS CodeCommit の認証とアクセスコントロール を参照してください。

AWS CLI をインストールして設定するには
  1. ローカルマシンで、AWS CLI をダウンロードしてインストールします。これは、コマンドラインから CodeCommit とやり取りするための前提条件です。AWS CLI バージョン 2 のインストールが推奨されます。AWS CLI の最新のメジャーバージョンであり、最新の機能をすべてサポートしています。これは、AWS CLI でルートアカウント、フェデレーションアクセス、または一時的な認証情報の使用をサポートする、git-remote-codecommit の唯一のバージョンです。

    詳細については、「AWS コマンドラインインターフェイスの設定」を参照してください。

    注記

    CodeCommit は、AWS CLI バージョン 1.7.38 以降でのみ動作します。ベストプラクティスとして、AWS CLI をインストールするか、利用可能な最新バージョンにアップグレードしてください。インストールした AWS CLI のバージョンを確認するには、aws --version コマンドを実行します。

    以前のバージョンの AWS CLI を最新バージョンにアップグレードするには、「AWS Command Line Interface のインストール」を参照してください。

  2. このコマンドを使用して、AWS CLI の CodeCommit コマンドがインストールされていることを確認します。

    aws codecommit help

    このコマンドは、CodeCommit コマンドのリストを返します。

  3. 次のように AWS CLI コマンドを使用して、プロファイルを使用して configure を設定します。

    aws configure

    プロンプトが表示されたら、CodeCommit で使用する IAM ユーザーの AWS アクセスキーと AWS シークレットアクセスキーを指定します。また、リポジトリが存在する AWS リージョン (us-east-2 など) を指定します。デフォルトの出力形式の入力を求められたら、json を指定します。例えば、IAM ユーザーのプロファイルを設定する場合は、次のようにします。

    AWS Access Key ID [None]: Type your IAM user AWS access key ID here, and then press Enter AWS Secret Access Key [None]: Type your IAM user AWS secret access key here, and then press Enter Default region name [None]: Type a supported region for CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter

    AWS CLI で使用するプロファイルの作成および設定の詳細については、以下を参照してください。

    別の AWS リージョン に存在するリポジトリまたはリソースに接続するには、そのリージョンのデフォルトのリージョン名を使用して AWS CLI を再設定する必要があります。CodeCommit でサポートされるデフォルトのリージョン名は以下のとおりです。

    • us-east-2

    • us-east-1

    • eu-west-1

    • us-west-2

    • ap-northeast-1

    • ap-southeast-1

    • ap-southeast-2

    • ap-southeast-3

    • me-central-1

    • eu-central-1

    • ap-northeast-2

    • sa-east-1

    • us-west-1

    • eu-west-2

    • ap-south-1

    • ap-south-1

    • ca-central-1

    • us-gov-west-1

    • us-gov-east-1

    • eu-north-1

    • ap-east-1

    • me-south-1

    • cn-north-1

    • cn-northwest-1

    • eu-south-1

    • ap-northeast-3

    • af-south-1

    • il-central-1

    CodeCommit および AWS リージョン の詳細については、リージョンと Git 接続エンドポイント を参照してください。IAM、アクセスキー、シークレットキーに関する詳細については、認証情報を取得する方法および IAM ユーザーのアクセスキーの管理を参照してください。AWS CLI とプロファイルの詳細については、「名前付きプロファイル」を参照してください。

次に、Git をインストールする必要があります。

  • Linux、macOS、Unix の場合:

    CodeCommit リポジトリのファイル、コミット、およびその他の情報を使用するには、ローカルマシンに Git をインストールする必要があります。CodeCommit は Git バージョン 1.7.9 以降をサポートしています。Git バージョン 2.28 は、初期コミットのブランチ名の設定をサポートしています。最新バージョンの Git を使用することをお勧めします。

    Git をインストールするには、Git のダウンロードなどのウェブサイトをお勧めします。

    注記

    Git は、定期的に更新されている、発展中のプラットフォームです。機能の変更により、CodeCommit での動作が影響を受ける場合があります。特定のバージョンの Git と CodeCommit で問題が発生した場合は、 の情報を確認してくださいトラブルシューティング

  • Windows の場合:

    CodeCommit リポジトリのファイル、コミット、およびその他の情報を使用するには、ローカルマシンに Git をインストールする必要があります。CodeCommit は Git バージョン 1.7.9 以降をサポートしています。Git バージョン 2.28 は、初期コミットのブランチ名の設定をサポートしています。最新バージョンの Git を使用することをお勧めします。

    Git をインストールするには、Git for Windows などのウェブサイトをお勧めします。このリンクを使用して Git をインストールする場合、以下を除くすべてのインストールのデフォルト設定を使用できます。

    • [Adjusting your PATH environment (PATH 環境の調整)] ステップでプロンプトが表示されたら、[Use Git from the Windows Command Prompt (Windows コマンドプロンプトから Git を使用する)] オプションを選択します。

    • (オプション) CodeCommit 用の Git 認証情報を設定するのではなく、AWS CLI に含まれている認証情報ヘルパーで HTTPS を使用する予定の場合は、[Configuring extra options] (追加オプションの設定) ページで、[Enable Git Credential Manager] (Git 認証情報マネージャーを有効化) オプションがオフになっていることを確認します。Git 認証情報マネージャーは、IAM ユーザーが Git 認証情報を設定する場合のみ、CodeCommit と互換性があります。詳細については、「Git 認証情報を使用した HTTPS ユーザーのセットアップ」および「Git for Windows: Git for Windows をインストールしましたが、リポジトリへのアクセスが拒否されます (403)」を参照してください。

    注記

    Git は、定期的に更新されている、発展中のプラットフォームです。機能の変更により、CodeCommit での動作が影響を受ける場合があります。特定のバージョンの Git と CodeCommit で問題が発生した場合は、 の情報を確認してくださいトラブルシューティング

CodeCommit は、HTTPS 認証と SSH 認証の両方をサポートしています。設定を完了するには、CodeCommit に使用する Git 認証情報 (HTTPS、ほとんどのユーザーに推奨)、CodeCommit へのアクセスに使用する SSH キーペア (SSH)、git-remote-codecommit (フェデレーティッドアクセスを使用するユーザーに推奨)、または AWS CLI に含まれる認証情報ヘルパー (HTTPS) を設定する必要があります。

ステップ 1: CodeCommit リポジトリを作成する

このセクションでは、CodeCommit コンソールを使用して、このチュートリアルの残りの部分で使用する CodeCommit リポジトリを作成します。AWS CLI を使用してリポジトリを作成するには、「リポジトリを作成する (AWS CLI)」を参照してください。

  1. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

  2. リージョンセレクタで、リポジトリを作成する AWS リージョン を選択します。詳細については、「リージョンと Git 接続エンドポイント」を参照してください。

  3. [Repositories (リポジトリ)] ページで、[Create repository (リポジトリの作成)] を選択します。

  4. [Create repository (リポジトリの作成)] ページの [Repository name (リポジトリ名)] に、リポジトリの名前を入力します。

    注記

    リポジトリ名では大文字と小文字が区別されます。Amazon Web Services アカウントの名前は、AWS リージョン内で一意である必要があります。

  5. (オプション) [Description (説明)] にリポジトリの説明を入力します。この説明は、お客様と他のユーザーがリポジトリの用途を識別するのに役立ちます。

    注記

    コンソールの説明フィールドに [Markdown] と表示され、すべての HTML 文字とすべての有効な Unicode 文字を使用できます。アプリケーションデベロッパーとして GetRepository または BatchGetRepositories API を使用していて、ウェブブラウザにレポジトリの説明フィールドを表示させる場合は、CodeCommit API リファレンスを参照してください。

  6. (オプション) [Add tag] を選択して 1 つ以上のリポジトリタグ (AWS リソースを整理して管理するのに役立つカスタム属性ラベル) をリポジトリに追加します。詳細については、「でのリポジトリのタグ付け AWS CodeCommit」を参照してください。

  7. (オプション) [追加設定] を展開して、このリポジトリ内のデータの暗号化と復号にデフォルトの AWS マネージドキーを使用するか、独自のカスタマーマネージドキーを使用するかを指定します。独自のカスタマーマネージドキーを使用する場合は、リポジトリを作成している AWS リージョンでそのキーが使用可能であることと、キーがアクティブであることを確認する必要があります。詳細については、「AWS Key Management Service と AWS CodeCommit リポジトリの暗号化」を参照してください。

  8. (オプション) このリポジトリに Java または Python コードが含まれており、CodeGuru Reviewer で分析する場合は、[Enable Amazon CodeGuru Reviewer for Java and Python] (Java および Python 用に Amazon CodeGuru Reviewer を有効化) を選択します。CodeGuru Reviewer は、複数の機械学習モデルを使用して、コードの欠陥を検出し、プルリクエストの改善と修正を提案します。詳細については、Amazon CodeGuru Reviewer ユーザーガイドを参照してください。

  9. [Create] を選択します。

CodeCommit リポジトリを移行するための Git リポジトリを作成

作成されたリポジトリは、[リポジトリ] リストに表示されます。URL 列で、コピーアイコンを選択し、CodeCommit に接続するために使用するプロトコル (SSH または HTTPS) を選択します。URL をコピーします。

例えば、リポジトリの名前を MyClonedRepository とし、米国東部 (オハイオ) リージョンで HTTPS で Git 認証情報を使用している場合、URL は次のようになります。

https://git-codecommit.us-east-2.amazonaws.com/MyClonedRepository

この URL は後で ステップ 2: リポジトリのクローンを作成して CodeCommit リポジトリにプッシュする で必要になります。

ステップ 2: リポジトリのクローンを作成して CodeCommit リポジトリにプッシュする

このセクションでは、既存の Git リポジトリのクローン (ローカルリポジトリと呼ばれる) をローカルコンピュータに作成します。次に、ローカルリポジトリの内容を、先ほど作成した CodeCommit リポジトリにプッシュします。

  1. ローカルコンピュータのターミナルまたはコマンドプロンプトから、git clone オプションを指定して --mirror コマンドを実行し、リモートリポジトリのベアコピーを aws-codecommit-demo という名前の新しいフォルダにクローンを作成します。これは移行にのみ使用するベアリポジトリです。CodeCommit の移行されたリポジトリとやり取りするためのローカルリポジトリではありません。ローカルリポジトリは、CodeCommit への移行が完了してから作成することができます。

    次の例では、GitHub (https://github.com/awslabs/aws-demo-php-simple-app.git) でホストされたデモアプリケーションを、aws-codecommit-demo というディレクトリのローカルリポジトリにクローンを作成します。

    git clone --mirror https://github.com/awslabs/aws-demo-php-simple-app.git aws-codecommit-demo
  2. クローンを作成したディレクトリに変更します。

    cd aws-codecommit-demo
  3. 送信先 CodeCommit リポジトリの URL と名前、および git push オプションを指定して、--all コマンドを実行します。(ここで指定するのは「ステップ 1: CodeCommit リポジトリを作成する」でコピーした URL です)。

    たとえば、リポジトリに MyClonedRepository という名前を付けて HTTPS を使用するように設定されている場合は、次のコマンドを実行します。

    git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository --all
    注記

    --all オプションは、リポジトリのすべてのブランチをプッシュします。タグのような他の参照をプッシュしません。タグをプッシュする場合は、最初のプッシュが完了するまで待機してから、--tags オプションを使用して、もう一度プッシュします。

    git push ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository --tags

    詳細については、Git ウェブサイトで Git push のページを参照してください。大きなリポジトリをプッシュする方法については、特にすべての参照を一度にプッシュする場合 (例えば、--mirror オプションを指定する場合) は、リポジトリの段階的移行 を参照してください。

aws-codecommit-demo フォルダとそのコンテンツは、CodeCommit にリポジトリを移行した後で削除することができます。すべての正しいリファレンスを使用してローカルリポジトリを作成し、CodeCommit のリポジトリを操作するには、git clone オプションを指定せず --mirror コマンドを実行します。

git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository

ステップ 3: CodeCommit でファイルを表示する

ディレクトリの内容をプッシュした後、CodeCommit コンソールを使用して、そのリポジトリ内のすべてのファイルをすばやく表示できます。

  1. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

  2. [リポジトリ] で、リポジトリの名前 (例: MyClonedRepository) を選択します。

  3. ブランチ、クローン URL、設定などのリポジトリ内のファイルを表示します。

    CodeCommit のクローンされたリポジトリの表示

ステップ 4: CodeCommit リポジトリを共有する

CodeCommit でリポジトリを作成すると、HTTPS 接続用と SSH 接続用の 2 つのエンドポイントが生成されます。どちらもネットワーク経由で安全な接続を提供します。ユーザーは、いずれかのプロトコルを使用できます。両方のエンドポイントは、どのプロトコルをユーザーに推奨するにしてもアクティブのままです。リポジトリを他のユーザーと共有する前に、リポジトリへのアクセスを他のユーザーに許可する IAM ポリシーを作成する必要があります。これらのアクセス指示をユーザーに提供します。

リポジトリのカスタマー管理ポリシーを作成します。
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [ダッシュボード] ナビゲーションエリアで、[ポリシー] を選択し、次に [ポリシーの作成] を選択します。

  3. [ポリシーの作成] ページで、[Import managed policy (マネージドポリシーのインポート)] を選択します。

  4. [Import managed policies (マネージドポリシーのインポート)] ページの [フィルタポリシー] に「AWSCodeCommitPowerUser」と入力します。ポリシー名の横にあるボタンを選択し、[インポート] を選択します。

  5. [Create policy] (ポリシーの作成) ページで [JSON] を選択します。次に示すように、CodeCommit アクションの Resource 行の「*」部分を、CodeCommit リポジトリの Amazon リソースネーム (ARN) に置き換えます。

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo" ]
    ヒント

    CodeCommit リポジトリの ARN を確認するには、CodeCommit コンソールに移動し、リストからリポジトリ名を選択して [Settings] (設定) を選択します。詳細については、「 リポジトリの詳細の表示」を参照してください。

    このポリシーに複数のリポジトリを適用するには、リソースに ARN を指定して各リポジトリを追加します。次に示すように、各 Resource ステートメントはカンマで区切ります。

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", "arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo" ]

    編集を完了したら、[ポリシーの確認] を選択します。

  6. [Review Policy] (ポリシーの確認) ページの [Name] (名前) に、ポリシーの新しい名前 (例えば、AWSCodeCommitPowerUser-MyDemoRepo) を入力します。必要に応じて、このポリシーの説明を入力します。

  7. [ポリシーの作成] を選択します。

リポジトリへのアクセスを管理するには、リポジトリユーザーの IAM グループを作成し、そのグループに IAM ユーザーを追加します。その後、前のステップで作成したカスタマー管理ポリシーをアタッチします。アクセスに必要なその他のポリシー (IAMUserSSHKeys または IAMSelfManageServiceSpecificCredentials など) をアタッチします。

  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. [ダッシュボード] ナビゲーションエリアで、[グループ] を選択し、次に [Create New Group (新しいグループの作成)] を選択します。

  3. [Set Group Name] (グループ名の設定) ページの [Group Name] (グループ名) に、グループの名前 (例: MyDemoRepoGroup) を入力し、[Next Step] (次のステップ) を選択します。ここで、グループ名の一部として、リポジトリ名を含めることを検討してください。

    注記

    この名前は、Amazon Web Services アカウント全体で一意である必要があります。

  4. 前のセクションで作成したカスタマー管理ポリシー (例: AWSCodeCommitPowerUser-MyDemoRepo) の横にあるボックスをオンにします。

  5. [Review] ページで、[Create Group] を選択します。IAM は、指定されたポリシーが既にアタッチされた状態でこのグループを作成します。このグループは、アマゾン ウェブ サービスアカウントに関連付けられたグループのリストに表示されます。

  6. リストからグループを選択します。

  7. グループの概要ページで、[ユーザー] タブを選択し、次に [Add Users to Group (グループにユーザーを追加)] を選択します。アマゾン ウェブ サービスアカウントに関連付けられているすべてのユーザーを示すリスト上で、CodeCommit リポジトリへのアクセスを許可するユーザーの横にあるボックスをオンにして、[Add Users] (ユーザーを追加) を選択します。

    ヒント

    検索ボックスに名前を入力して、ユーザーをすばやく見つけることができます。

  8. ユーザーの追加が完了したら、IAM コンソールを閉じます。

設定したポリシーグループとポリシーを使用して、CodeCommit にアクセスするための IAM ユーザーを作成したら、リポジトリへの接続に必要な情報をそのユーザーに送信します。

  1. https://console.aws.amazon.com/codesuite/codecommit/home で CodeCommit コンソールを開きます。

  2. リージョンセレクタで、リポジトリが作成されたAWS リージョン を選択します。リポジトリは、AWS リージョン に固有のものです。詳細については、「リージョンと Git 接続エンドポイント」を参照してください。

  3. [リポジトリ] ページで、共有するリポジトリを選択します。

  4. [Clone URL] で、ユーザーが使用するプロトコルを選択します。接続プロトコルのクローン URL がコピーされます。

  5. AWS CLI インストール、プロファイルの設定、Git のインストールなどのその他の手順と合わせて、このクローン URL をユーザーに送信します。接続プロトコルの設定情報を含めるようにしてください (HTTPS など)。