CodeCommitのレポジトリに対してgit cloneするまで

はい、今回は既存のCodeCommitのレポジトリに対して、サーバー上からgit cloneできるまでの手順をまとめます!

今回は指定のレポジトリにしか操作ができないユーザーポリシーを作成しますね~

わからないことがあると、公式をできるだけ参照しながら進めていきましょう。

https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/getting-started-cc.html

伝えたいこと

今回の目標は以下

  • AWSのポリシーでCodeCommit内の操作を必要最低限にできるユーザー作成。
  • サーバーで鍵を作成して、CodeCommitに対してssh接続
  • git clone

上記の内容を一通りできるようになっていきましょう~

AWSのポリシーを適切に設定できるようにもならないといけないですしね。

IAMユーザー作成とポリシー

IAMユーザーの作成

今回は特にgit操作以外する予定はないので、サクッと作成します。

そしてアクセス権限の設定ですが、ここは特に何も必要ないのでタグを設定(ここも必要に応じて作成)して
ユーザー作成!

ここで共有されるシークレットキーなどは大切に保管してくださいね。(CSVのダウンロード)

必要なポリシー設定

ユーザーができたのでそれにアタッチするポリシーを作成します。

こんかいのユーザーは対象のレポジトリに対してGit操作をするだけですので、以下のような内容になります。

JSON形式で書いてみますね。

一番下のユーザーIDとレポジトリ名を変更いただけたらOK

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codecommit:DeleteRepository" ], "Resource": "*", "Effect": "Deny" }, { "Action": [ "codecommit:List*" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "codecommit:*ApprovalRule*" ], "Resource": "*", "Effect": "Deny" }, { "Action": [ "codecommit:*" ], "Resource": "arn:aws:codecommit:ap-northeast-1:対象ユーザーのアカウントID:対象のレポジトリ名", "Effect": "Allow" } ] }
Code language: JSON / JSON with Comments (json)

これでポリシーを先ほど作成したユーザーにアタッチするとOKです!!!!

では次にサーバー側の設定も行っていきましょう。

サーバーの設定

鍵の作成

まずはSSHの公開鍵と秘密鍵を以下コマンドを使って作成します。

ssh-keygen

コマンドの意味は詳しい使い方は以下を参照。

https://choppydays.com/ssh-keygen-heteml/

基本的にEnterでOKかと

そしたら以下ディレクトリ内にファイルができます。

cd ~/.ssh/
Code language: JavaScript (javascript)

ファイルは以下

  • 公開鍵=○○.pub
  • 秘密鍵=○○

秘密鍵と公開鍵を間違えないようにしましょう。

ここで作成した公開鍵をAWSのユーザーのところにコピペします。

IAM→ユーザー→対象ユーザー→認証情報→SSHパブリックキーのアップロード

公開鍵のアップロード

これでOKですね。

configの設定

では今度はサーバー側の.ssh/configファイルを編集していきます。

もしファイルがない場合はtouch config コマンドで作成しましょう。

そして編集する内容は以下です。

Host git-codecommit.*.amazonaws.com User APKgewofefefefj IdentityFile ~/.ssh/id_rsa
Code language: JavaScript (javascript)
  • Host そのまま
  • User SSHキーIDを入力
  • IdentityFile 秘密鍵の場所を指定

これでOKです!
設定ファイルのアクセス権限を設定する必要があるので以下コマンドを叩く。

chmod 600 .ssh/config

これで完了!

CodeCommitにアクセス

コンソールからCodeCommitにアクセスして、レポジトリを選択します。

そこから右上のURLのクローンから「SSHのクローン」を選択しましょう。

SSHのクローンの選択

そしたらサーバーに戻り、以下コマンド!

git clone さっきコピーしたURL
Code language: PHP (php)

これで完璧!

まとめ

なんか毎回手順を忘れちゃうんだなー

人間の記憶力は参考にならない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA