概要
WSL上に AWS CLI をインストールする方法 with pip3
環境
Windows10 Pro
バージョン 1803
WSL ... Ubuntu 18.04 LTS
WSLのインストール方法
WSL への pip3 インストール方法
インストール
--upgrade オプションは pip 自体のアップデート
--upgrade オプションについて
--user オプションは linux のユーザーディレクトリにインストールするためのオプション。
AWS CLI の場合は /home/username/.local/bin/aws ディレクトリにインストールされる。
# --upgrade
$ pip3 install awscli --upgrade --user
Collecting awscli
Downloading https://files.pythonhosted.org/packages/1c/fc/6de0d0e616db20fbb0bffbed73b4b575b6c5d6632503720760d21b5ec354/awscli-1.16.188-py2.py3-none-any.whl (1.7MB)
100% |████████████████████████████████| 1.7MB 577kB/s
Collecting colorama<=0.3.9,>=0.2.5 (from awscli)
Downloading https://files.pythonhosted.org/packages/db/c8/7dcf9dbcb22429512708fe3a547f8b6101c0d02137acbd892505aee57adf/colorama-0.3.9-py2.py3-none-any.whl
Collecting PyYAML<=5.1,>=3.10; python_version != "2.6" (from awscli)
Collecting rsa<=3.5.0,>=3.1.2 (from awscli)
Downloading https://files.pythonhosted.org/packages/e1/ae/baedc9cb175552e95f3395c43055a6a5e125ae4d48a1d7a924baca83e92e/rsa-3.4.2-py2.py3-none-any.whl (46kB)
100% |████████████████████████████████| 51kB 1.4MB/s
Collecting s3transfer<0.3.0,>=0.2.0 (from awscli)
Downloading https://files.pythonhosted.org/packages/16/8a/1fc3dba0c4923c2a76e1ff0d52b305c44606da63f718d14d3231e21c51b0/s3transfer-0.2.1-py2.py3-none-any.whl (70kB)
100% |████████████████████████████████| 71kB 1.5MB/s
Collecting docutils>=0.10 (from awscli)
Downloading https://files.pythonhosted.org/packages/36/fa/08e9e6e0e3cbd1d362c3bbee8d01d0aedb2155c4ac112b19ef3cae8eed8d/docutils-0.14-py3-none-any.whl (543kB)
100% |████████████████████████████████| 552kB 1.0MB/s
Collecting botocore==1.12.178 (from awscli)
Downloading https://files.pythonhosted.org/packages/98/8f/ca7e67d37570e0dc0c5a495096a9a7428fb01a97fa908f57dcd0739f956b/botocore-1.12.178-py2.py3-none-any.whl (5.6MB)
100% |████████████████████████████████| 5.6MB 261kB/s
Collecting pyasn1>=0.1.3 (from rsa<=3.5.0,>=3.1.2->awscli)
Using cached https://files.pythonhosted.org/packages/7b/7c/c9386b82a25115cccf1903441bba3cbadcfae7b678a20167347fa8ded34c/pyasn1-0.4.5-py2.py3-none-any.whl
Collecting python-dateutil<3.0.0,>=2.1; python_version >= "2.7" (from botocore==1.12.178->awscli)
Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
100% |████████████████████████████████| 235kB 1.2MB/s
Collecting urllib3<1.26,>=1.20; python_version >= "3.4" (from botocore==1.12.178->awscli)
Downloading https://files.pythonhosted.org/packages/e6/60/247f23a7121ae632d62811ba7f273d0e58972d75e58a94d329d51550a47d/urllib3-1.25.3-py2.py3-none-any.whl (150kB)
100% |████████████████████████████████| 153kB 1.1MB/s
Collecting jmespath<1.0.0,>=0.7.1 (from botocore==1.12.178->awscli)
Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
Collecting six>=1.5 (from python-dateutil<3.0.0,>=2.1; python_version >= "2.7"->botocore==1.12.178->awscli)
Using cached https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Installing collected packages: colorama, PyYAML, pyasn1, rsa, six, python-dateutil, urllib3, jmespath, docutils, botocore, s3transfer, awscli
Successfully installed PyYAML-5.1 awscli-1.16.188 botocore-1.12.178 colorama-0.3.9 docutils-0.14 jmespath-0.9.4 pyasn1-0.4.5 python-dateutil-2.8.0 rsa-3.4.2 s3transfer-0.2.1 six-1.12.0 urllib3-1.25.3
インストール確認
PATH は通ってました。
もし aws なんてコマンドねーよって言われたら which コマンドでインストールされたディレクトリを確認後 PATH を通してみましょう。
$ aws --version
aws-cli/1.16.188 Python/3.6.7 Linux/4.4.0-17763-Microsoft botocore/1.12.178
$ which aws
/home/unix_user/.local/bin/aws
認証情報設定
インストール後そのまま何かコマンド実行すると認証情報がないよって怒られます。
# iam ユーザーのリスト取得
$ aws iam list-users
Unable to locate credentials. You can configure credentials by running "aws configure".
設定方法
$ aws configure
# 以下は対話式で入力していく
AWS Access Key ID [None]: accesskey1
AWS Secret Access Key [None]: secret1
Default region name [None]: ap-northeast-1
Default output format [None]: json
設定ファイル確認
~/.aws
ディレクトリが作成されています。
~/.aws/credentials
は認証情報、~/.aws/config
は認証情報以外の情報(デフォルトのリージョンとかデフォルトの出力形式とか)が格納されています。
ls -la ~/.aws/
total 0
drwxrwxrwx 1 unix_user unix_user 4096 Jun 27 13:27 .
drwxr-xr-x 1 unix_user unix_user 4096 Jun 27 13:27 ..
-rw------- 1 unix_user unix_user 48 Jun 27 13:27 config
-rw------- 1 unix_user unix_user 116 Jun 27 13:27 credentials
$ cat ~/.aws/config
[default]
region = ap-northeast-1
output = json
$ cat ~/.aws/credentials
[default]
aws_access_key_id = accesskey1
aws_secret_access_key = secret1
環境変数とかでも設定できます。
ほかの設定方法と優先順位
設定されたか確認
設定したアクセスキーで取得できるはずの AWS のリソースへアクセスしてみます。
# 無事取れてます
$ aws iam list-users
{
"Users": [
{
"Path": "/",
"UserName": "some.one",
"UserId": "user1",
"Arn": "arn:aws:iam::123456789:user/some.one",
"CreateDate": "2019-06-25T11:43:32Z",
"PasswordLastUsed": "2019-06-26T00:38:36Z"
},
{
"Path": "/",
"UserName": "some.two",
"UserId": "user2",
"Arn": "arn:aws:iam::123456789:user/some.two",
"CreateDate": "2019-06-25T11:45:32Z",
"PasswordLastUsed": "2019-06-26T00:40:36Z"
}
]
}