【#awscli】管理者権限を持たないWindows環境に「AWSコマンドラインインターフェイス(aws-cli)」をインストールする #AWS #jawsug #環境構築 #環境設定

「AWSコマンドラインインターフェイス(AWS CLI v2)」をインストールする際は ↓ こちらを参照ください

**【#awscli】管理者権限を持たないWindows環境に「AWSコマンドラインインターフェイス(AWS CLI v2)」をインストールする #AWS #awscliv2 #jawsug #環境構築 #環境設定**
https://qiita.com/kukita/items/56d5f75fb79ff57ff291

---


管理者権限を持たないWindows端末に「AWSコマンドラインインターフェイス(aws-cli)」をインストールした際の内容を自分用のメモとしてまとめました。

#### 環境情報
|OS/ソフトウェア |バージョン |入手元 |
|------------|----------|-------|
|Windows 10 pro |バージョン1803(April 2018 Update) |Microsoft Corporation |
|Python3 |3.7.4 |https://www.python.org/downloads/windows/ |
|pip |19.1.1 | |
|aws-cli |1.16.200 |https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-windows.html |

### □手順 1: 公式URLからPythonの`executable installer`をダウンロードします
■URL
https://www.python.org/downloads/windows/

■ファイル名
`python-3.7.4-amd64.exe`

### □手順 2: ダウンロードした`executable installer`を実行します

### □手順 3: `Add Python 3.7 to PATH`チェックボックスにチェックを入れた後`Customize installation`をクリックします

![capture_002_23072019_013335.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/5bac2ff7-9429-0336-ffb9-33f7f2c7c399.jpeg)

### □手順 4: 全ての Optional Features にチェックを入れて`Next`ボタンをクリックします

![capture_003_23072019_013415.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/0a818460-3123-2336-83b4-914b0bf2d980.jpeg)

### □手順 5: 次の Advanced Options にチェックを入れて`Install`ボタンをクリックします

* `Create shortcuts for installed applications`
* `Add Python to environment variables`
* `Precompile standard library`

![capture_004_23072019_013508.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/7c0e1a4c-07d5-abc5-8792-64530fba6d48.jpeg)

### □手順 6: `Close`ボタンをクリックし`executable installer`を終了します

![capture_005_23072019_013724.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/44745/2636c2bf-58d9-20eb-fc60-b9df427621f7.jpeg)

### □手順 7: スタートメニューから`Powershell`を起動し次のコマンドを実行、Pythonがインストールされて、パスが通っていることを確認します

```powershell
PS C:\> & python --version
Ptyhon 3.7.4
```

### □手順 8: `pip`を最新バージョンにアップグレードします

```powershell
PS C:\> & easy_install.exe -U pip
```

### □手順 9: `pip`を使って`awscli`を依存モジュールと合わせてインストールします

```powershell
PS C:\> & pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org awscli
```

####私の環境では`--trusted-host`オプションを付与せずに実行すると次のエラーメッセージが出力されてしまいました

```powershell
PS C:\> & pip install awscli
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))': /simple/pyyaml/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))': /simple/pyyaml/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))': /simple/pyyaml/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))': /simple/pyyaml/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))': /simple/pyyaml/
Could not fetch URL https://pypi.org/simple/pyyaml/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pyyaml/ (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))) - skipping
ERROR: Could not find a version that satisfies the requirement PyYAML<=5.1,>=3.10 (from awscli) (from versions: none)
ERROR: No matching distribution found for PyYAML<=5.1,>=3.10 (from awscli)
```

### □手順 10: `aws --version`コマンドを実行して`aws-cli`が正常にインストールされたことを確認します

```powershell
PS C:\> & aws --version
拡張子 .py のファイルの関連付けが見つかりません
aws-cli/1.16.200 Python/3.7.4 Windows/10 botocore/1.12.190
```

### □手順 11: `aws configure`コマンドを実行して認証情報などを記録させます 

```powershell
PS C:\> & aws configure
拡張子 .py のファイルの関連付けが見つかりません
AWS Access Key ID [None]: <My AWS Access Key>
AWS Secret Access Key [None]: <AWS Secret Access Key>
Default region name [None]: ap-northeast-1
Default output format [None]: json
```

#### `--profile`オプションを付与することでプロファイルの作成も可能です

デフォルトのプロファイルには読み取り権限のみをもったアカウントを登録しておき変更可能な権限は`DevOps`、`Developers`などのプロファイルに紐付けておけば誤った変更などを避けられるので安全です

```powershell
PS C:\> & aws configure --profile DevOps
拡張子 .py のファイルの関連付けが見つかりません
AWS Access Key ID [None]: <My AWS Access Key>
AWS Secret Access Key [None]: <AWS Secret Access Key>
Default region name [None]: ap-northeast-1
Default output format [None]: json
```

### 手順 12: `aws s3 ls`コマンドなどを実行して正常にAWS環境に接続できることを確認します

```powershell
PS C:\> & aws s3 ls --no-verify
拡張子 .py のファイルの関連付けが見つかりません
%USERPROFILE%\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py:851: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)
2019-MM-DD hh:mm:ss xxxx
:
```

#### 私の環境では` --no-verify`オプションを付与せずに実行すると次のエラーメッセージが出力されてしまいました

```powershell
PS C:\> & aws s3 ls
拡張子 .py のファイルの関連付けが見つかりません
SSL validation failed for https://s3.ap-northeast-1.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)
```

## おまけ：`拡張子 .py のファイルの関連付けが見つかりません`という警告メッセージへの対応

#### 管理者権限を有しているアカウントで下記コマンドを実行してもらうことができれば解決できるはずです。。。

```powershell
PS C:\> & assoc .py=Python.File
PS C:\> & ftype Python.File="%USERPROFILE%\AppData\Local\Programs\Python\Python37\python.exe" "%1" %*
```
---

以上、管理者権限を持たないWindows端末に「AWSコマンドラインインターフェイス(awscli)」をインストールする手順でした。