CodeCommitのgitリポジトリをWindowsからHTTPSで利用する

CodeCommit

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

渡辺です。 久しぶりにVMのWindowsを起動したらアップデート祭で利用できるまでX時間かかりました...。

さて、AWS CodeCommitを利用すれば、AWS環境に統合したgitリポジトリを作成することができます。 GitHubなどを利用する場合との一番の違いは、ユーザの管理がIAMで行えることです。 開発時にはAWSのIAMアカウントを開発者に配布することは必要となるので、アカウント管理が一括となる点は大きな魅力だと思います。

今回は開発環境がWinowsであり諸事情でSSHは利用できない場合の、CodeCommitを利用するための手順をまとめたいと思います。

手順

今回は、HTTPSで利用するため、次のような手順になります。

  • IAMユーザの作成
  • AWS CLIのインストール
  • AWS SDK for .Netのインストール
  • SourceTreeのインストール
  • git-credential の設定

ちょっと面倒なので、SSHが利用できる場合はSSHを利用する方が簡単です。 また、リポジトリの作成については、CodeCommit入門を参照してください。

IAMユーザの作成

CodeCommitにアクセス可能なIAMユーザを作成します。 IAMユーザはCodeCommitへのアクセス専用でも、通常のIAMユーザとして共用でも構いません。 IAMユーザを作成したならば、アクセスキーを発行します。

IAMユーザにはCodeCommitへのアクセス許可を与える必要があります。 とりあえずManaged PolicyからAWSCodeCommitFullAccessを付与すればアクセス可能となりますが、リポジトリの作成や削除なども許可するため、開発の形態によって適切なアクセス権を与えてください。 DevelopersといったIAM Groupを作成して管理すると良いでしょう。

AWS CLIのインストール

AWS CLIがインストールされていない場合は、はじめにAWS CLIをインストールします。 WindowsではMSIが提供されているので、これをダウンロードしてインストールしてください。 なお、CodeCommitを利用するには、バージョンが1.7.38以降である必要があります。

>aws --version
aws-cli/1.9.9 Python/2.7.9 Windows/7 botocore/1.3.9

AWS CLIをインストールしたならば、アクセスキーなどを設定します。

> aws configure --profile codecommit
   AWS Access Key ID [None]: <accesskey>
   AWS Secret Access Key [None]: <secretkey>
   Default region name [None]: us-east-1
   Default output format [None]:

アクセスキーなどはコンフィグファイルに設定されますが、--profileオプションを指定しない場合はdefaultというプロファイルで設定されます。 ここではcodecommitという名前のプロファイルで設定しました。 これは現時点でCodeCommitがUSリージョンのみで提供されているため、開発環境などのリージョン(東京リージョンなど)と分けておいた方が無難です。

AWS SDK for .Netのインストール

次にAWS SDKをインストールします。 AWS CLIと同様にMSIで提供されているので、ダウンロードしてインストールします。

SourceTreeのインストール

WindowsでのGit環境は幾つかありますが、GUIで利用できるため、SourceTreeをインストールするのが最も敷居が低いと思います。 SourceTreeをインストールすれば、gitも合わせてインストールされます。 なお、SourceTreeでインストールされるgitは内蔵gitと呼ばれ、通常のコマンドプロンプトからは利用できません。

git-credential の設定

最後に、gitのgit-credentialを設定します。 git-credentialは名前の通り、gitの認証周りをサポートする機能です。 WindowsからAWSのアクセスキーやAWS CLIなどを利用してgitのリモート機能を利用するための設定を行います。

SourceTreeを開き、操作メニューから「ターミナルで開く」を選択してください。 コマンドプロンプトのようなものが表示されます(MINGW32)。 この画面で、AWS ToolsのCodeCommitディレクトリに移動し、git-credential-AWSS4.exeコマンドを実行してください。 オプションにはgitアクセス用のAWSプロファイルを指定します。

c:\>cd "Program Files (x86)\AWS Tools\CodeCommit"
> git-credential-AWSS4.exe -p codecommit

コマンドを実行すると、.gitconfigがCodeCommitにアクセスできるように設定が完了します。 後は、CodeCommitでgitリポジトリを作成し、HTTPSのURLを取得すれば、GUIから簡単にcloneできるでしょう。

SourceTree

まとめ

Windows環境でCodeCommit/HTTPSを利用するには手間が多いですが、SourceTreeと合わせて導入すれば、後はGUIで操作可能です。

AWS Cloud Roadshow 2017 福岡