見出し画像

【AWS】Git→Codecommitへの移行(clone)手順(Windowsクライアント)

本稿では、CodeCommit側にある資産をローカルにcloneするところまでを纏めています。

前書き

オンプレに構築されたGitlab(Githubのクローン)を使って運用しているソース管理リポジトリをクラウドへ移行したい。

移行先として、以下が考えられる。
#1.AWS上に、Gitlabの環境を構築する方法
#2.AWSのCodecommitを利用する方法

#1の場合、GitlabはEC2インスタンスを立ち上げて構築する必要があるが、開発用ツールのインスタンスを立ち上げっぱなしにするのは好ましくない。
また、その都度使う時だけ立ち上げるようにするもの非効率。

#2の場合、GitlabのようなWebインターフェースはないので、オンプレに慣れている身としては使い勝手は悪いが、今後の事を考えるとCodecommitを使った方がよいとのことで、今回は「GitからCodecommitに移行する」事とする。

本稿は、WindowsクライアントからHTTPSを使ってCodeCommitへ移行する手順です。

前提1.「AWS CodeCommitのHTTPS Git認証情報」を生成していること

「AWSコンソールへログイン」>「IAM」>「ユーザー」>「自身のユーザー名」>「セキュリティ認証情報」
※生成されていない場合は生成する。

参考資料

前提2.Developer > CodeCommitが生成されている事

「CodeCommitと入力」>「CodeCommitを選択」

「デベロッパー用ツール」>「CodeCommit」>「リポジトリ」欄に、リポジトリを作成していなければ、作成してください。

手順1.GitをWindowsにインストールする

インストールするだけでOKです。GitBashは起動しなくてOKです。

手順2.クローンするフォルダをWindows内に作り、コマンドプロンプトを起動する

例)C:\gitCodeCommit など

作ったらそこでコマンドプロンプトを起動する。

手順3.クローン用URLをコピーして、Gitコマンドを打つ

【コマンド】
git clone  https://★/repos/XXX yyy

「yyy」は、クローンする先のディレクトリ名(フォルダ名)です。
「★」はAWS側CodeCommit画面でコピーしたURLです。(下記図参照)

コマンドを打つとこのようになります。

補足.この時に403エラーとなった場合

※403エラーは、認証エラーです。

Cloning into 'test' …
fatal: unable to access https://XXXXXXXXXXXX The requested URL returnd error: 403

補足1.CloudTrailで不足している権限がないかを確認(あれば付与すること)

下記のように、「errorMessage」内に不足している権限があれば、そのロールを追加する。下記の例だと、「codecommit:GitPull」が不足していることが伺えます。

{
  "eventVersion"1.0.8,
  "userIdentity": {],
  "eventSource": "codecommit.amazonaws.com",
  "eventName": "GitPull",
  "errorCode": "AccessDenied",
  "errorMessage": "User: arn:aws:iam::000000000:user/XXXXXX is not authorized to perform: codecommit:GitPull on .....",
    :
}

参考資料


補足2.confidentials helperを使う

補足1のようにロール権限を付与してもまだ同様の403エラーが出る場合は、クライアントからの接続の際IAMユーザの権限でアクセスしてしまうことでエラーになっている可能性があります。

その場合は、confidentials helperを活用していきます。
詳しい設定方法は下記記事をご覧ください。

credentials helperを設定したら、改めてGitCloneコマンドを打ちます。

すると、このようにcloneが成功します。
cloneしたフォルダには何も入っていない空なので「empty repository」という警告が出ていますが、下記の通りクローン先フォルダにはちゃんとコピーされているので、問題はありません。

補足3.Git Credential Managerを突破できない場合

コマンドプロンプトで「git clone https://~~~~」を打った後、このようにGCMが立ち上がることがあります。

そしてここに正しい認証IDを入れたのにもかかわらず「403」となってしまうことがあります。
その場合は、立ち上がったGCMを消します。そうすると下記のようになるので、MFA認証コードを入力すると、正常に通過できます。

C:\user>git clone  https://★/repos/XXX yyy
(ここでGCMが立ち上がるが閉じる)
fatal: User cancelled dialog.
Enter MFA code for arn:aws:iam::000000:mfa/UserName: 
となるので、WinAuthなど多要素認証時に登録したMFAアプリを開き、6桁のコードを入力しましょう。


参考資料


正常にクローンが行なわれたので、作業は完了です。
ローカルにある資産をCodeCommit側に転送する手順は、また別の記事にまとめようと思います。


その他参考になった資料



目次へ戻る

いいなと思ったら応援しよう!