2020/10/18

IAMユーザー作成からAWS CodeCommitでGit管理するまで

この記事ではIAMユーザーを作成してCodeCommitでGit管理するまでの方法を解説していきます。普段はGithub等の別のバージョン管理サービスを使用しているけど、AWS上でGit管理したいという方、AWS認定試験を受けようとしている方必見です!

CodeCommitとは

CodeCommitはAWSによってホストされるバージョン管理サービスで、ソースコード等をプライベートに保存・管理できます。類似するサービスだとGithubやBitbucket、GitLabなどがあります。

CodeCommitの利点

CodeCommitはプライベートGitリポジトリで、ソースコードの保存時と転送時は暗号化されているようです。また、Gitの標準機能をサポートしているので、gitコマンドを使用して開発することができます。プルリクエストやマージ、ブランチ作成も普通にできるので、普段GithubやGitLabなど他のバージョン管理ツールを使用している人も馴染みやすいサービスではないかと思います。

CodeCommitを使ってみる

ここからはCodeCommitを使用してリポジトリの作成からソースコードのpushまでを解説していきます。

リポジトリ作成

まずはAWSコンソールにログインし、CodeCommitの画面まで移動してください。

CodeCommitのコンソール画面に移動したら「リポジトリを作成」ボタンを押して下さい。

AWS CodeCommitコンソール画面

リポジトリ作成画面に遷移したら、リポジトリ名を入力してください。説明などもオプションで入力することができます。入力が終わったら「作成」ボタンをクリックしてください。

CodeCommitリポジトリ作成画面

リポジトリの作成が完了すると以下画面が表示されます。AWSのルートアカウントを使用してサインインしている場合は、SSH接続を設定できず、ルートアカウントにHTTPS接続を使用することは推奨されないということなので、次はIAMユーザーを作成していきます。

CodeCommitリポジトリ作成成功画面

IAMユーザー作成

IAMのコンソール画面に遷移して、「ユーザー」のアクセス管理画面にいきます。

IAMコンソール画面

IAMユーザーのアクセス管理画面に遷移したら、「ユーザーを追加」ボタンをクリックします。

IAMユーザーアクセス管理画面

ユーザー詳細の設定画面が表示されたら「ユーザー名」を入力します。「アクセスの権限」のセクションは以下のように新たに作成するIAMユーザーのAWSサービスの使用用途に合わせてチェックを入れるようになっています。今回はどちらもチェックを入れましょう。

プログラムによるアクセス

新たに作成するIAMユーザーがアクセスIDとシークレットアクセスキーを用いてAWS CLIやAPI、SDKからアクセスするかどうか

AWSマネジメントコンソールへのアクセス

新たに作成するIAMユーザーを用いてAWSマネジメントコンソールにアクセスするかどうか

セキュリティ面を考慮して、「コンソールのパスワー」は自動生成パスワードで、「パスワードのリセットが必要」はIAMユーザーの初回ログイン時に新たにパスワードを変更してもらうようにしましょう。設定が完了したら、「次のステップ:アクセス権限」ボタンをクリックします。

IAMユーザー作成画面

アクセス許可の設定画面が表示されたら、「ユーザーをグループに追加」ボタンをクリックしましょう。

IAMアクセス許可の設定画面

グループ名に任意の値(今回はadmin)を入力し、一旦「AdministratorAccess」を割り当てます(本来なら使用するサービスに合わせて割り当てるべきですが。。)。割り当てたいポリシー名にチェックを入れたら「グループの作成」ボタンをクリックしましょう。

IAMグループの作成

作成が完了すると以下のように先ほど設定したグループが表示されます。追加後、問題なければ「次のステップ:タグ」ボタンをクリックしましょう。

アクセス許可の設定 グループ追加後

タグを指定できます。今回はひとまず何も設定せず、次にいきましょう。

IAMタグの設定

一通り設定が終わったら、確認画面が表示されます。問題なければ「ユーザーの作成」ボタンをクリックしましょう。

IAMユーザー作成確認画面

IAMユーザー作成が成功すると「成功」画面が表示されます。

IAMユーザー作成成功画面

IAMユーザーのアクセス管理画面に戻ると作成したIAMユーザーが追加されていますね。次にGitの認証情報を得るべく、作成したIAMユーザー名をクリックします。

IAMユーザーアクセス管理画面 IAMユーザー作成後

IAMユーザー名をクリックするとIAMユーザーに関する詳細が表示されます。「認証情報」をクリックしましょう。

IAMユーザー詳細画面

認証情報画面ではアクセスキーの情報確認やアクセスキーの作成等ができます。「AWS CodeCommitのHTTPS Git認証情報」のセクションにいき、「認証情報を生成」ボタンをクリックしましょう。

IAMユーザー認証情報画面

AWS CodeCommitのHTTPS Git認証情報が生成されます。「ユーザー名」と「パスワード」をコピーして保存しておきましょう。

AWS CodeCommitのHTTPS Git認証情報生成画面

IAMユーザー認証情報画面に戻ると作成したユーザー名が表示されていますね。

IAMユーザー認証情報 Git認証情報生成後

CodeCommitからHTTPSのクローン

CodeCommitから実際にHTTPSのクローンを実施していきましょう。

CodeCommitのコンソール画面に戻り、先ほど作成したリポジトリ画面にいき、「URLのクローン」のプルダウンメニューから「HTTPSのクローン」を選択します。

CodeCommit HTTPSのクローン

選択するとHTTPSのクローンに必要なURLが表示され、クリップボードにコピーされます。

HTTPSのクローン成功画面

ローカル上でリポジトリをクローンしたいディレクトリに移動し、git cloneコマンドを実行します。

git clone https://git-codecommit.ap-northeast-1.amazon.com/v1/repos/webpage  #コピーしたURL

クローン時にUsernameとPasswordを求められるので、先ほどIAMユーザー認証情報画面で生成したHTTPS Git認証情報の「ユーザー名」と「パスワード」をそれぞれ入力しましょう。

Gitクローン ユーザー名 パスワード入力

クローンが完了するとCodeCommit上で作成したリポジトリ名がディレクトリとして表示されていることが分かります。(まだソースコードなどは入っていないため、空のディレクトリです。)

クローン完了

ソースコードをプッシュする

クローンしたディレクトリ配下に任意のソースコードを配置しましょう。

git statusコマンドを実行するとmasterブランチであることが分かります。

git status

クローンディレクトリにソースコード配置

追加したソースコードをインデックスに追加してコミット対象にしましょう。

git add .

コミット対象に追加

コミットします。

git commit -m "first commit"

git commit

リポジトリにプッシュします。

git push

git push

CodeCommitコンソール画面にいき、リポジトリにプッシュしたソースコードが反映されているか確認しましょう。

反映されていますね!

CodeCommitコンソール画面 プッシュ後

コミット履歴も見てみましょう。

CodeCommit コミット履歴

ブランチ一覧画面にもmasterブランチにコミットが反映されていることが分かりますね!

ブランチ一覧

まとめ

いかがでしたでしょうか?CodeCommitを使用するとAWS上でGitによるバージョン管理ができてしまいます。UIもかなり分かりやすく、普段Githubなどを使っている人も移行しやすいのではないかと思いました。