Posted at

AWS Amazon linuxにCode Commitを導入

More than 3 years have passed since last update.

code commitを導入したので記録。


AWS code commitに関して


code commit

リモートバージョン管理。ローカルのバージョン管理と併用して扱う。

git hubと同じ構造をawsが真似てcode commitサービスとして運用しているもの。

gitコマンドを使用。(gitコマンドを使用できるようにyum install gitで入れておく)


料金

無料内料金表

人数
ストレージ
リクエスト

5人以下
50GB
10,000件

無料期間外でも毎月これ以内なら無料でプライベートリポジトリを管理できる。

公式code commit料金ページ


Code commit 導入

code commitへの認証でIAMのロールとユーザーの2種類の認証方法がありますので両方のやり方を記載します。

IAMユーザーを使用した場合にcode commitへの接続方法は2種類(ssh,https)ありますので両方のやり方を記載します。


導入手順一覧

1.Code commitのリポジトリ作成

2.IAM policy作成


1.Code commitのリポジトリ作成

Code commitのサービスを開きます。

リージョンがオレゴンしかないのでオレゴンを選択します。(現リージョンがオレゴン以外だったら聞かれます。)

初めての方は以下のページが開かれるのでGet startedを選択する。初めてではない方はcreate repositoryがあるので選択する。

キャプチャ.PNG

Create new repositoryという画面がでてくるので、名前と説明を入力してcreate repositoryを選択する。

作成されたリポジトリを選択し、左のナビゲーションペインからsettingsを選択してRepository ARNをコピーしておく(次の手順のポリシーに必要です。)

code.PNG


2.IAM policy作成

IAMサービスを開き、左のナビゲーションペインからポリシーを選択します。

ポリシーの作成を選択後Policy Generatorを選択

アクセス許可の編集の画面が出てきますので以下の画像ように編集する。

(Amazon リソースネームは先ほどコピーしたものを貼り付ける。)

hy.PNG

ステートメントの追加をして次のステップを選択する。適当に名前と説明を入れて作成する。


3.IAM ロールorユーザでの認証

ロール認証するのかユーザーで認証するのかを選びます。

ユーザーで認証でさらにssh接続するのかhttps接続するのか選びます。



ロールを使用した場合の認証(ロールの場合)

ロールはすでに作られていてインスタンスにロールが振り分られているとします。

(インスタンスに割り振られてない場合。ロールを作成→インスタンスのイメージを作成→イメージから作成時にロールを割り振ってください。同じインスタンスが2つある状態になります。)

IAMのサービスを開いて。ナビゲーションペインからロールを選択します。インスタンスに割り振られているロールを選択してアクセス許可のタブを開いてポリシーのアタッチを選択します。

キャプチャ.PNG

フィルターのところを「カスタマー管理ポリシー」に変更して、2で作ったポリシーを選択しポリシーのアタッチを選択。


インスタンスの設定(ロールの場合)

以下のコマンドを入力

git config --global credential.helper '!aws --region us-east-1 codecommit credential-helper $@' 

git config --global credential.UseHttpPath true

ホームディレクトリに.gitconfigができます。上記で入力した情報が入ってます。

cd ~

cat .gitconfig



IAMサービス(ユーザーの場合)

IAMのサービスを選択してナビゲーションペインからユーザーを選択

新規ユーザーを作成を選択。適当に名前を入力して作成。

認証情報をダウンロードをする。

作成したユーザーを選択して、アクセス許可のタブのポリシーのアタッチを選択。

フィルターのところを「カスタマー管理ポリシー」に変更して、2で作ったポリシーを選択しポリシーのアタッチを選択。


IAMサービス(ユーザーの場合(ssh接続の場合))

インスタンスでssh-keygemと実行しペアキーを作成。~/.ssh/のディレクトリにid_rsaとid_rsa.pubが作成されます。

作成した公開鍵(id_rsa.pub)をコピーしておく。

IAMサービスを開きナビゲーションペインからユーザーを作成を選択。作成したユーザーを選択。

認証情報のタブの「AWS CodeCommit の SSH キー」の公開鍵のアップロードを選択。

コピーした公開鍵を貼り付けてssh公開キーのアップロードを選択。

sshキーIDが出てきますのでコピーする。(後に.ssh/configのUserに貼り付けます。)

sshきーID.PNG


インスタンスの設定(ユーザーの場合(ssh接続の場合))

cd ~/.ssh/

touch config
chmod 600 config
vi config


config

Host git-codecommit.us-east-1.amazonaws.com

User [sshキーID]
IdentityFile [秘密鍵があるディレクトリ]

以下のコマンドで接続できるか確認する。

ssh git-codecommit.us-east-1.amazonaws.com


インスタンスの設定(ユーザーの場合(https接続の場合))

cd~

mkdir .aws
vi credentials

アクセスキーとシークレットキーはIAMユーザー作成時にダウンロードしたものに書いてあります。


credentials

[CodeCommitProfile]

aws_access_key_id=[アクセスキー]
aws_secret_access_key=[シークレットキー]

以下のコマンドをやるとホームディレクトリに.gitconfigが作成されます。

git config --global credential.helper '!aws --region us-east-1 --profile CodeCommitProfile codecommit credential-helper $@'

git config --global credential.UseHttpPath true



参考サイト

http://dev.classmethod.jp/cloud/aws/using-codecommit-git-repository-by-iam-role/