GitLabのソースコードをCodeCommitにミラーリング

GitLabで管理しているソースコードをCodePipelineでビルドするために、CodeCommitのミラーリングを行った。

以下の記事を参考にしたが、CLIでなくともコンソール画面から簡単にできる。

dev.classmethod.jp

リポジトリの作成はCodeCommitで「リポジトリを作成」で作成。

ユーザーの作成はIAMで使用するユーザーを選択し(ユーザーが無ければ作る)、認証情報タブにて「AWS CodeCommit の HTTPS Git 認証情報」のセクションがあるので、「認証情報を生成」をクリックするとユーザーとパスワードが生成されるので、これを用いてGitLabで設定すればよい。

注意事項として、ユーザーにMFAの設定をしている場合はGitLabからミラーリングを行う際に

13:close stream to gitaly-ruby: rpc error: code = Unknown desc = Gitlab::Git::RepositoryMirroring::RemoteError: fatal: unable to access リポジトリURL The Requested URL returned error:403

と出てきます。

MFAを使ってたら、codecommitでsshhttpsはそもそも使えないのでこれが影響している? https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/temporary-access.html

対応としては

  1. MFAを使用していないユーザーを使う
  2. ポリシーを修正してCodeCommit操作をMFA未認証時の例外アクションとして追加する

の2つがあります。

2についてはこちらの記事が参考になると思います。 dev.classmethod.jp

それでは、おつ~