【AWS CLI】AWS CLI バージョン2のインストール～設定まで

# **AWS CLIとは？？？**
- AWSのサービスをコマンドラインから管理するための統合ツール
- ウェブブラウザからアクセスするAWSマネジメントコンソール（GUI）と同じような操作を、コマンドで実行できる

# **AWS CLIのメリット**
**○統合ツール**
　多数あるAWSサービスを、1つのツール（コマンドライン）からまとめて操作できる
**○自動化・効率化**
　コマンドをスクリプトとして記述することで、繰り返し行う作業や複雑な一連の操作を自動化し、ヒューマンエラーの削減・作業時間の短縮ができる
**○柔軟な操作**
　AWSマネジメントコンソールからはできない、詳細な設定ができる

# **手順**
- AWS CLIのインストール
- IAMユーザーの作成
- アクセスキーの作成
- AWS CLIの設定
- AWSサービスへの接続確認

# **インストール方法**
　以下、公式ドキュメントに沿って実施
　https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

【インストール画面】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/251acb46-6b17-435c-8e03-d1359792425b.png)


# **インストール後の確認**
　以下コマンドをコマンドプロンプトで実行
~~~bat:
aws --version
~~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/f6084dd0-5867-4bdb-ba91-cfb83a3ea310.png)


# **IAMユーザーの作成**

　AWS CLI でAWSリソースを安全に操作するためには、ルートユーザーの認証情報を使用せず、専用の IAMユーザーを作成する。
　ユーザーへアタッチするポリシーは「AdministratorAccess(管理者権限)」とする。
 
:::note warn
必要最低限の権限のみを付与する「最小権限の原則」に従うことが、セキュリティのベストプラクティスなので、「AdministratorAccess(管理者権限)」は本来推奨されませんが、学習目的・一時的な利用に限って、`AdministratorAccess`の使用を許容しています。
本番環境や長期運用では、必要最小限のポリシーを作成・付与することがセキュリティ上の推奨事項です。
:::


# **アクセスキーの作成**
### **アクセスキーとは？？？**

- AWSを利用するユーザーやアプリケーションが、プログラム（AWS CLIやSDKなど）からAWSサービスにアクセスする際、本人確認を行うために使うアクセスキーIDとシークレットアクセスキーの組み合わせ

  作成したユーザーの画面からアクセスキーの作成を行います。今回はAWS CLIからAWSアカウントへアクセスしたいのでユースケースでは「コマンドラインインターフェイス（CLI）」を選択します。「アクセスキーの作成」ボタンを押下すると、アクセスキーとシークレットアクセスキーが記載されたファイルをダウンロードできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/43eb2177-ef00-4d6d-9e14-597e3f150b05.png)

:::note warn
【取扱注意】
シークレットアクセスキーは、AWSアカウントへのアクセス権を付与する非常に機密性の高い情報です。
絶対に他人に知られないよう、厳重に管理しましょう。
安全な場所に保管し、不要になった場合は必ず削除してください。
:::

# **AWS CLIの設定を構成する**
　AWS CLI がAWSサービスと通信するために必要な認証情報と設定を、ローカル環境に保存するためのコマンドです。以下のコマンドを実行することで、AWS CLI を使用する際に、都度アクセスキーなどを指定する必要がなくなります。
　以下コマンドをコマンドプロンプトで実行。
~~~bat:
aws configure
~~~

### **【設定項目】**
- **AWS Access Key ID (AWS アクセスキーID)**
　AWSアカウントのIAMユーザーを識別するためのID

- **AWS Secret Access Key (AWS シークレットアクセスキー)**
　アクセスキーIDに対応する秘密鍵でパスワードに相当する情報

- **Default region name (デフォルトリージョン名)**
　AWS CLI コマンドを実行する際に、デフォルトで使用されるAWSリージョン
　東京リージョンの場合は「ap-northeast-1」

- **Default output format (デフォルト出力形式)**
　AWS CLI コマンドの実行結果が表示される際のデフォルトのデータ形式
　JSONが一般的（例：json, text, yaml, table）

※以下はすでに設定されている状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/90ae790e-3c3b-4c30-be6b-f31f38ee1765.png)

# **コマンドの使用方法/接続確認**
　AWSサービスへ接続できるのか、コマンドライン上で確認します。
　今回は新たに作成したIAMユーザーの情報を取得する方法を例に、コマンドの使い方も含めて確認します。

　※以下からも同様のリファレンスが確認できます
　AWS CLI Command Reference 
　https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html


　
「**aws <サービス名> help**」コマンドで、特定のサービス（例：IAM）で利用できるコマンド一覧を確認することができます。

~~~bat:
aws iam help
~~~
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/af4352d8-b33f-4caa-b3ae-9640362ee7bb.png)
- **Description**
IAMサービスについての説明
- **Available Commands**
利用可能なコマンドのリスト

　「Available Commands」に表示されているコマンドの中から、ユーザー情報を取得できそうな「get-user」コマンドを見つけました。
　次は、この「get-user」コマンドについてオプションなどの詳細情報を確認します。

~~~bat:
aws iam get-user help
~~~
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/5852d029-6a2f-498b-b6af-ea1f79887f7d.png)

- **Description**
get-userコマンドについての説明
- **Synopsis**
コマンドオプションの概要

　「Synopsis」に表示されているコマンドのオプションから、ユーザー情報を指定できそうな「--user-name \<value>」を見つけました。
　このオプションを使ってコマンドを実行してみます。作成したユーザー名は「AdminUser」です。
~~~bat:
aws iam get-user --user-name AdminUser
~~~

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986061/d205489c-a4b0-423c-b397-85cdc54f0242.png)

正しくユーザー情報が取得できたので、AWSサービスへ接続できていることが確認できました。

以上