[Cloud102]#0-2 (補足)環境準備: AWS CLI


本コンテンツは、以下の補足資料です。

[Cloud102]#0 環境準備
http://qiita.com/nagahisa/items/c6bd92992eef42dbe53a

なお、設定手順・キャプチャはすべてMac用です。

**注意事項**
このコンテンツで扱うAPIキー・シークレットキーはくれぐれも慎重に管理してください。
まず、以下コンテンツを読んで漏れた時の恐ろしさを認識しましょう。
「初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。」
http://qiita.com/mochizukikotaro/items/a0e98ff0063a77e7b694


#AGENDA

0.前置き
1.AWS CLIのインストール
2.CloudTrail
3.IAM
4.CLI設定ファイル作成
5.なんでもできるグループ作成とユーザの登録
6.確認
 
#0.前置き

##(1) 使いづらいマネコンとAPI
本編で触ったAWSのマネコンの印象は如何だったでしょうか？
個人的には「最悪とは言えないまでもスッゲエ使いづらい」UIだと思ってます :smile: 
設定項目は多いし、あちこち設定箇所が分かれてるし・・・なんでこんなマネコンのIaaSが世界No.1なのかと。
（そんな点を良く研究されたIDCFさんなどは、非常に使いやすいマネコンを提供されています。）

実はAWSは「ほとんどの操作」はマネコン使わなくても行えますし、詳細情報はマネコンでは確認できないこともあります。

はい、API(Application Program Interface)です。

たとえばEC2はこのようなAPIが公開されています。
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/APIReference/Welcome.html

マネコンも同じAPI使って構築されているので、マネコンで出来ることはすべてAPIで出来ます。逆に詳細情報はマネコンには表示されないことがあるので、必要であればAPIで取得する訳です。

なお「ほとんどの操作」と言ったのは、API使えるようになるまでは、APIが使えないのでマネコンからしか操作出来ません :sweat_smile: 

##(2) SDK

APIは"Interface"定義なので、好きなプログラミング言語でAPIを呼べば良いのですが、プログラミング言語毎にAPIを使いやすくする工夫をするのが一般的です。

はい、SDK(Software Development Kit)です。

各言語用のSDKを使用することにより、低レベルなAPIを使わないで、楽にプログラムを書くことが出来ます。

オフィシャルに提供されているSDKは以下で確認できます。
https://aws.amazon.com/jp/tools/

##(3) CLI

SDKには PythonのようなLL(lightweight language:軽量言語)用もあるのですが、それでもちょっとした作業、例えばVM一覧取得などに、毎回 Python scriptを書くのは面倒です。黒い画面で叩けるコマンドが用意されていると便利ですよね？

はい、CLI( Command Line Interface)も提供されています。

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html

CLIのWindows用MSIインストーラも用意されているようですが、オススメしません。
本編で作成したAmazon LinuxのVMにはCLIがインストール済みですので、そちらを使ってみて下さい。

##(4) CLI環境のオススメ

自分で管理出来るPCをお持ちの方は、AWS CLIをそのPCに導入するのが安心です。
(API KeyやSSH用秘密鍵を保存するのは、やっぱり手持ちデバイスの方が安心ですよね
:sweat_smile: ）

(a)Macの人：
・ラッキーです。この資料はMac用に書かれています :smile: 

(b)Windows10の人：
・ラッキーです。1607リリースから"Bash on Windows"が使えるようになり、そちらの環境はUbuntuですので、この資料の手順とほぼ同じはずです。

Windows10お持ちの方は、以下を参考に是非トライしてみて下さい。
(Bash on Windows環境はコマンド１つで消せるので失敗しても環境汚れません。)

http://dev.classmethod.jp/cloud/windows-10-bash-aws-cli/

なお、Bash on Windowsについては補足#0-1でも少し触れています。
[Cloud102]#0-1 (補足)環境準備: Bash on Windows
http://qiita.com/nagahisa/items/ee2b36cfd051ce61ad69

##(5) CLI日本語情報

本コンテンツはほぼすべて以下JAWS-UG CLI支部資料を参考にしています。多謝！！

http://qiita.com/tcsh/items/14c3278f69ab073afe0f
http://qiita.com/tcsh/items/b55eee599ae2c8806e4f

#1.AWS CLIのインストール

http://qiita.com/tcsh/items/1f999b36382a81462347

この資料を参考に、pip, awscliをインストール

以下まで確認できればOKです ( versionは2016/9/24時点 )。
![001.png](http://qiita-image-store.s3.amazonaws.com/0/79389/4c0784f6-8e8f-0226-0075-f607143cc7b0.png)

#2.CloudTrail

http://qiita.com/tcsh/items/b31c64029dfe3953ca9d

この資料を参考にCloud Trai設定します。

![002.png](http://qiita-image-store.s3.amazonaws.com/0/79389/d95c38b4-8150-4161-8d63-3a12eb98b6a5.png)

![003.png](http://qiita-image-store.s3.amazonaws.com/0/79389/f3834af1-e387-8f0b-6f04-f224f61354cd.png)

#3.IAM

http://qiita.com/tcsh/items/6f297076935fa6a06044

この資料の 2.を参照してIAMグループ作成、ユーザ作成します。

##(1) IAMダッシュボード > グループから「新しいグループの作成」

![004.png](http://qiita-image-store.s3.amazonaws.com/0/79389/c78dcf5f-4321-05fd-2e4e-1f3b217d0a7c.png)

![005.png](http://qiita-image-store.s3.amazonaws.com/0/79389/2621e614-5696-b6e2-27c0-6c2ac53cb2de.png)

![006.png](http://qiita-image-store.s3.amazonaws.com/0/79389/4fc8188b-80dd-5ac0-a472-895207c02f8f.png)

![007.png](http://qiita-image-store.s3.amazonaws.com/0/79389/a32bbfde-bb15-2b0d-0654-62687071ef9c.png)

##(2) IAMダッシュボード > ユーザから「新しいユーザの作成」

![008.png](http://qiita-image-store.s3.amazonaws.com/0/79389/fc99a1d1-d51f-3bdd-5dae-72dad0ca4849.png)

![009.png](http://qiita-image-store.s3.amazonaws.com/0/79389/90f10055-8c24-d07b-5774-f71d713317bf.png)

![010.png](http://qiita-image-store.s3.amazonaws.com/0/79389/f212c9ba-4eb5-22fb-f4e9-251edeeda29e.png)

![011.png](http://qiita-image-store.s3.amazonaws.com/0/79389/7177aa1e-1f16-d340-d10b-4a5b15ccb67f.png)

![012.png](http://qiita-image-store.s3.amazonaws.com/0/79389/96a588af-fdad-64e0-a605-88adec81d965.png)

![013.png](http://qiita-image-store.s3.amazonaws.com/0/79389/33db7010-d105-5ce0-1f2c-f55d05a3b9b1.png)

![014.png](http://qiita-image-store.s3.amazonaws.com/0/79389/c4467c05-cce0-b4df-be8f-fdbb75939c6e.png)

#4. CLI設定ファイル作成
http://qiita.com/tcsh/items/6f297076935fa6a06044

この資料の3.を参考にCLI設定ファイルを作成します。
・リージョンは東京(ap-northeast-1)にして下さい。

このユーザは IAMFullAccess権限があるので、IAM操作はできますが、EC2操作はできません。

![015.png](http://qiita-image-store.s3.amazonaws.com/0/79389/4f06bfa2-8664-56a7-9104-217354eec6db.png)

#5.なんでもできるグループ作成とユーザの登録
http://qiita.com/tcsh/items/616bb0d3506cb96033c5

この資料の1.を参考してadministorator グループ作成：マネコン操作とCLI操作に使用します。

##(1)“administorator”グループ作成

IAM_POLICY_NAME='AdministratorAccess'
これがマネコンのRoleリストにあったやつです
なんでもできる（"Action": "＊", "Resource": "＊", "Effect": "Allow”）権限です。
![016.png](http://qiita-image-store.s3.amazonaws.com/0/79389/472ddbc8-f124-c063-40fb-f8aa2bac61ce.png)

これで “administorator”グループを作成します。
作成したら当然マネコンで確認できます。

![017.png](http://qiita-image-store.s3.amazonaws.com/0/79389/3bf6f366-f047-7f63-9b87-1f0e900343ec.png)

##(1)'スキップ手順

本来は以下を参考にこのユーザで別ユーザを作成するんですが・・・
http://qiita.com/tcsh/items/57902c2dba310fb7e28d

##(2)ユーザに権限付与

今回はちょっと横着してこのユーザにこの権限を付与します。

今度は以下のようにマネコン操作をCLIで確認してみましょう。
・一旦CLIで作成済みユーザの所属グループ確認します
・次にマネコンでそのユーザを”administrator”グループに追加します
・もう一度CLIで作成済みユーザの所属グループ確認します

![018.png](http://qiita-image-store.s3.amazonaws.com/0/79389/12f46e5d-d452-ca62-e6c8-bc119608fb00.png)

作成済みユーザはフル権限をもったので EC2操作も可能です。
![019.png](http://qiita-image-store.s3.amazonaws.com/0/79389/e583b68a-a845-fd44-623d-e4ee85cd726d.png)

Enjoy!! :tada: