#AWS CLIとは
AWS CLIは、AWSのサービスをWindowsのコマンドプロンプトやPowerShell、MacやLinuxのターミナルなど、手持ちの環境からコマンドラインベースで設定することができるツールです。AWSを使い始める際には、ブラウザを使って管理コンソールから操作した方がわかりやすいと思いますが、慣れてくるとコマンドラインがあると便利。また、コマンドラインでしかできない設定もある様です。
#インストール
特に難しいことはないと思います。WindowsならMSIインストーラーで次へ次へとクリックしていけば入る感じ。MacやLinuxの場合は、Python環境があればpipコマンドでインストールできます。
Windowsでのインストール
以下のページにて案内されているWindows用のインストーラーをダウンロードして、インストールします。(→AWS CLIのインストール説明ページ)
Windows環境においても、定期的にAWS CLIの最新版を追っていきたい場合は、上記MSIインストーラーよりもMac/Linuxと同様にPythonのpipを使ったインストールの方が良いかと思います。
MacやLinuxでのインストール
Python環境を整えてpipでインストールしてしまいましょう。Pythonとpipのインストール方法については、省略します。時間があれば別記事で紹介できればと思います。
ちなみに、記事投稿時点での自分のMac環境は次の通り。
$ python3 --version
Python 3.7.1
$ pip3 --version
pip 18.1 from /Users/(UserName)/Library/Python/3.7/lib/python/site-packages/pip (python 3.7)
この環境で次の様にインストールしました。
$ sudo pip3 install awscli
Macの場合、brewを使ったインストールもお手軽とのことでしたが、後日AWS SAM CLIをインストールした際にうまく動いてくれなかった(なぜかは不明)ため、今はpipインストールでの環境を使っています。
初期設定
インストールが終わったら初期設定です。
お手軽コース
次のコマンドを叩いくといろいろ質問されるので、聞かれるがままにAWSアカウントのAccess Key IDとSecret Access Key、リージョン、出力フォーマットを指定します。
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-1
Default output format [None]: json
各行コロン(:)の右側は入力する文字列です。リージョンとして指定しているap-northeast-1は東京リージョンのことです。
自分で設定ファイルを書くコース
自分で設定ファイルに書き書きして行く心意気のある方は、ホームディレクトリ直下にできている.awsディレクトリ配下に設定ファイルがありますので、そちらをどうぞ。
上記お手軽コースで設定した内容は、credentialsファイルに直接書くこともできます。四角カッコで括られたセクションごとにIAMユーザーの情報を書いてゆく形です。どのユーザーでコマンドを実行するのか?は、このセクション単位で指定した情報が使われ、これをプロファイルと呼びます。
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[sonotano-account]
aws_access_key_id=AKISONOTANOACCOUNTMO
aws_secret_access_key=wFerfgbsDgstgSghsgDFHbshSHGderthDJdjyDJd
[default]セクションに基本的に一番よく使うアカウントの情報を書き込むことで、特にプロファイルを指定せずにコマンド実行する際に利用されます。AWS CLIでのコマンド実行はこんなイメージです。
$ aws (対象サービス名) (実行したい操作) --profile sonotano-account
対象サービス名は、S3だったりdynamodbだったり。実行したい操作は、S3のディレクトリ一覧であればlsといった感じです。defaultに指定したプロファイルでコマンド実行する際は、--profile以下は記述不要です。
スイッチロールする場合の設定
スイッチロールする場合は、追加の作業が必要です。スイッチロールというのは、複数のAWSアカウント間を一つのIAMユーザーでシングルサインインする場合に行う操作のことです。
スイッチロールする場合、スイッチ元のIAMユーザーとスイッチ先のIAMロールを関連づける必要があります。なので、その関連を+C configファイルに記載します。configファイルも.awsディレクトリの直下にあります。
[default]
region=ap-northeast-1
output=json
[profile apple]
region=ap-northeast-1
role_arn=arn:aws:iam::123456789012:role/SwitchedAccessRole
source_profile=default
上記の例では、appleという名前のプロファイル名を定義して、IAMユーザー(スイッチ元)とIAMロール(スイッチ先)とを関連づけています。role_arnは、スイッチ先AWSアカウントのIAMロールを管理コンソールで開くと、そのARNが表示されるので、それをそのまま書きましょう。source_profileは、関連づけるスイッチ元のIAMユーザーを定義しているプロファイル名を記載します。
以上、一通り自分への備忘録を兼ねてまとめてみました。