【Mac】Amplify CLI インストール手順の備忘録

## はじめに
- Mac環境に [Amplify CLI](https://docs.amplify.aws/cli) をインストールする機会があったので、その備忘録です。

## 動作環境
- macOS Catalina 10.15.7
 
```shell:shell
# Node.js：8.x以降
$ node -v
# → v12.20.1
```

```shell:shell
# npm：5.x以降
$ npm -v
# → 6.14.10
```

### Amplify CLIのインストール

- 以下のコマンドで Amplify CLI をインストールします。

```shell:shell
$ npm install -g @aws-amplify/cli
```

- CLI上で操作するIAMユーザを作成します。以下のコマンドを実行します。

```shell:shell
$ amplify configure
```

- すると、AWSマネジメントコンソールへのログイン画面がブラウザで表示されるので、対象のアカウント、ユーザーでログインします。
ログインが完了したらターミナル上でEnterキーを押下します。

```shell:shell
Follow these steps to set up access to your AWS account:

Sign in to your AWS administrator account:
https://console.aws.amazon.com/
Press Enter to continue
```

- リージョンを指定します。

```shell:shell
pecify the AWS Region
? region:  ap-northeast-1
```

- IAMユーザ名を設定します。Enterキーを押すとブラウザでIAMユーザ作成画面が起動します。

```shell:shell
Specify the username of the new IAM user:
? user name:  amplify-cli-user
```

- IAMユーザを作成していきます。アクセスの種類を選択して「アクセス権限」をクリックします。
![IAM-Management-Console-2020-03-26-00-58-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/477950/9baba5c5-8d1f-93ed-c1c4-0e0cc829cacf.png)

- 適用するポリシーを選択して「タグ」をクリックします。必要に応じてタグを追加し、「確認」をクリックします。
![IAM-Management-Console-2020-03-26-00-59-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/477950/8574ca70-1757-0dd3-3c7e-69cd5494991c.png)

- 内容を確認して問題なければ「ユーザーの作成」をクリックします。
![IAM-Management-Console-2020-03-26-00-59-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/477950/a56566a6-dffa-fb89-8dc7-f43f8c1224c7.png)

- 表示されているアクセスキー情報を使用して、ターミナル上でIAMユーザを設定していきます。
![IAM-Management-Console-2020-03-26-01-00-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/477950/4391b814-139a-52e2-3a10-d1e41486eef8.png)

- マネジメントコンソールに表示されていた```アクセスキーID```と```シークレットアクセスキー```を入力します。

```shell:shell
Enter the access key of the newly created user:
? accessKeyId:  *****************
? secretAccessKey:  **********************************
```

- 最後に、```.aws/config```に保存するプロファイル名を指定します。 デフォルトは```default```ですが、上書きされたくなかったので、```amplify-cli-user```とします。

```shell:shell
? Profile Name:  amplify-cli-user
Successfully set up the new user.
```

- ```.aws/config```と```.aws/credentials```に、IAMユーザ情報が追加されていることが確認できます。

```Bash:.aws\config
[default]
region = ap-northeast-1
output = json

[profile amplify-cli-user]
region = ap-northeast-1
```
```Bash:.aws\credentials
[default]
aws_access_key_id = xxxxxxxx
aws_secret_access_key = yyyyyyyy

[amplify-cli-user]
aws_access_key_id = zzzzzzzz
aws_secret_access_key = aaaaaaaa
```

### ```amplify init``` に実行ユーザを指定

- プロジェクトの初期設定時に、作成したIAMユーザを指定して操作できるようにします。対象プロジェクトのルートフォルダで、初期設定コマンドを実行します。

```shell:shell
$ amplify init
```

- 実行するとプロジェクト名やエディタなどを聞かれるので、各種選択していきます。最後に、プロファイルを使用するかどうか聞かれるので、```Y```を入力します。

```shell:shell
$ Do you want to use an AWS profile? (Y/n)：y
```

- どのプロファイルを使用するか聞かれるので、今回作成したプロファイルを指定します。

```shell:shell
$ Please choose the profile you want to use：amplify-cli-user
```

- これで実行ユーザの設定が完了です。どのプロファイルのユーザで実行されているかは、プロジェクトフォルダ内の```amplify/.config/local-aws-info.json```で確認できます。

```shell:amplify/.config/local-aws-info.json
{
    "EnvName": {
        "configLevel": "project",
        "useProfile": true,
        "profileName": "amplify-cli-user"
    }
 }
```

- プロジェクトに紐づくプロファイルを変更したい場合、```amplify/.config/local-aws-info.json```の設定内容を削除した上で、```amplify init```を実行すると、再度プロファイルを使用するか聞かれるので、適宜変更できます。