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

  • 0
    Like
  • 0
    Comment
    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: