CodeCommitのgitリポジトリをWindowsからHTTPSで利用する
渡辺です。 久しぶりに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できるでしょう。
まとめ
Windows環境でCodeCommit/HTTPSを利用するには手間が多いですが、SourceTreeと合わせて導入すれば、後はGUIで操作可能です。