【AWS】CodeCommit　ローカルファイルをpushするまで

###今回記事を書いた理由

CodeCommitを使う機会がありましたので、忘れない内にアウトプットしておきます( ^ω^ )!

今回の記事では、CodeCommit用のユーザー作成からローカルファイルのpusまでを解説していきます。


###AWS CodeCommitとは？

ソースコードなどの情報を非公開で、管理するサービスです。

##ユーザー作成

①AWSにログインし、以下のurlからIAMに移動します。

https://console.aws.amazon.com/iam

②ユーザー名、アクセスの種類を決めます。

- ユーザー名は、なんでも大丈夫です。ご自身が好きな名前をつけてください。
- それ以降のチェックは、画像と同じで大丈夫です。

入力が完了しましたら、次のステップへ！

![スクリーンショット 2020-10-24 5.54.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/6d4902ab-45ac-3a55-b4cb-654de9c9c89c.png)

###③作成するユーザーのアクセスできる権限を設定します。

今回は、CodeCommitのする為だけのユーザーを作成するので、「AWSCodeCommitFullAccess」にチェックを入れるだけで大丈夫です。

チェックが入れたら、次のステップへ！

![スクリーンショット 2020-10-24 5.59.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/bb7b933a-e375-1439-f409-7d27fdce3599.png)


④タグ設定の項目が出てきますが、特に設定する必要はないので、次のステップへ！

⑤確認画面が出てきて記述した内容に問題がなければ、『ユーザー作成』を押します。


##SSH接続設定

###①SSHキーを取得する

- ターミナルで「ssh-keygen」を実行します。
- 私は全て何も書かずEnter押しました。(全てデフォルトのまま作成)

```
ssh-keygen
```

- これにより、「秘密鍵(id_rsa)」「公開鍵(id_rsa.pub)」が作成されます。
- 秘密鍵は、他の人に教えてはいけない
- 公開鍵は、他の人に教えてもよい　👈　今回は、これを使います。

![スクリーンショット 2020-10-28 7.45.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/8507b599-d613-3b18-ff1f-2c1bca960a57.png)


- 以下のコマンドで、表示されたid_rea.pubファイルの中に書かれている、値をコピーします。

```
cat ~/.ssh/id_rsa.pub
```


②作成したIAMユーザーに移動し、認証情報から「AWS CodeCommitへのSSHキー」を追加します。

認証情報タグを押し

![スクリーンショット 2020-10-26 11.38.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/a0280f27-ac7c-d483-61bf-d1844d8f0757.png)

『SSHパブリックキーのアップロード』を押します。
先ほどコピーしたid_rea.pubファイルの値をアップロードします。

![スクリーンショット 2020-10-28 11.46.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/df03190a-4950-952f-3a0e-a967d4b72140.png)

以下のように表示されればアップロード完了です！

![スクリーンショット 2020-10-28 11.51.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/5e3699c0-dd48-ef49-2880-68042441e212.png)

③SSH設定ファイルを編集

- viコマンドでconfigファイルを編集します。

```
vi ~/.ssh/config
```
- 下記の内容を書き込んで『escキー』を押し、『:wq』で保存します。

```
Host git-codecommit.*.amazonaws.com
  User APKA3TY37WFFY6AFYHM3 👈 IAMに公開鍵を登録した際に発行されたSSHキーID
  IdentityFile ~/.ssh/id_rsa　👈 公開鍵ファイル名[今回はid_rsa]
```
- 次のコマンドを実行して設定ファイルのアクセス権限を変更します。

```
chmod 600 config
```

##CodeCommitへの接続

① 以下のURLからCodeCommitを開きます。

https://console.aws.amazon.com/codesuite/codecommit/home

②『リポジトリを作成』を押します。

![スクリーンショット 2020-10-29 14.43.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/30fb3771-c85d-5c62-35f4-4be38da00521.png)

③『作成』を押します。

![スクリーンショット 2020-10-29 15.12.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/75caa637-9982-9ec2-bc1a-059521df492a.png)

④SSHタブに移動し、MacOSタブを開くと以下のように表示されるので、Git cloneコマンドをコピーします。

![スクリーンショット 2020-10-29 15.36.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538355/aa5d95f2-6eb1-f12b-01b0-cd7a50f7007a.png)

⑤クローンしたいディレクトリに移動して、コピーしてきたgit cloneコマンドを実行します。

```
git clone ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo
```

⑥何らかの変更を加えてpushした時のコマンド

```
git add .
git commit -m "first commit"
git push ssh://git-codecommit.us-east-1.amazonaws.com/v1/repos/MyDemoRepo
```

以上！

##まとめ

問題なくできましたか？

私、この作業公式のドキュメント見ながらやったんですが、403エラーやなんだかんだエラーが出てきたので、かなり時間がかかりました😭

私が出たエラー内容、解決方法まとめておけばよかったです🤷‍♀️

次からは、実装にあたって出たエラー内容、解決方法を最後にまとめておきます。

ではでは👋