AWS
Cloud
初心者
aws-cli

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

More than 1 year has passed since last update.

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

[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環境はコマンド1つで消せるので失敗しても環境汚れません。)

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

2.CloudTrail

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

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

002.png

003.png

3.IAM

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

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

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

004.png

005.png

006.png

007.png

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

008.png

009.png

010.png

011.png

012.png

013.png

014.png

4. CLI設定ファイル作成

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

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

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

015.png

5.なんでもできるグループ作成とユーザの登録

http://qiita.com/tcsh/items/616bb0d3506cb96033c5

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

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

IAM_POLICY_NAME='AdministratorAccess'
これがマネコンのRoleリストにあったやつです
なんでもできる("Action": "*", "Resource": "*", "Effect": "Allow”)権限です。
016.png

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

017.png

(1)'スキップ手順

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

(2)ユーザに権限付与

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

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

018.png

作成済みユーザはフル権限をもったので EC2操作も可能です。
019.png

Enjoy!! :tada: