Closed18
AWSume+fish+Macの試行錯誤

インストール
$ brew install pipx
$ pipx install awsume

環境情報
- pyenv 2.3.9-3-gcb5da5e8
- pipx 1.2.0
- awsume 4.5.3
- MacOS Venture 13.2.1
- fish 3.6.0
- Homebrew 4.0.9

エラー原因切り分け1
fish shellでawsumeが見つからず
$ awsume
fish: Unknown command: awsume

BashやZshの場合、インストール時にawsumeのエイリアスを設定するスクリプトがあるらしい
なので、bashやzshなどのシェルだと動作する
fishだとbassがインストールされていないとダメとのこと
fishではbashスクリプトをsourceで読めない。bassを使うとできるみたい

$ fisher install edc/bass
fisher install version 4.3.0
Fetching https://codeload.github.com/edc/bass/tar.gz/HEAD
Installing edc/bass
/Users/xxxxx/.config/fish/functions/__bass.py
/Users/xxxxx/.config/fish/functions/bass.fish
Installed 1 plugin/s

以下エラーで読み取れず
$ bass source awsume
bass: awsume: No such file or directory

エラー原因切り分け2
一旦原因切り分けのため、pipxを使わずpipでインストールしてみる
$ pipx uninstall awsume
$ pip install awsume

なお、公式ではawsumeのインストールにpipxの方を推奨している
The officially-recommended way to install awsume is via pipx

今回はコマンドが通った(awsume-configureの利用を促されているが)
$ awsume
Warning: the awsume shell script is not being sourced, please use awsume-configure to install the alias

エラー原因切り分け3
以下のようにawsumeをインストールされる際の、Pythonバージョンをpipxのインストールと揃えてみる
pyenv install {awsumeインストール時のPythonバージョン}

なお、pipxでawsumeをインストールする際は、手元の自分の環境だとPython 3.11.2(2023.03.22現在最新版)がインストールされていた
$ pipx install awsume
installed package awsume 4.5.3, installed using Python 3.11.2
These apps are now globally available
- autoawsume
- awsume
- awsume-autocomplete
- awsume-configure
- awsume.bat
- awsume.fish
- awsume.ps1
- awsumepy
done! ✨ 🌟 ✨

pyenv install --listで3.11.2がなかったので、以下の3.11.1にした
$ pyenv install 3.11.1
$ pyenv global 3.11.1

以下のコマンドが通る
$ awsume -l

fishのconfigでpyenvのpathを通してなかったので、これが原因かもしれない

スイッチロールのセットアップ
ここまでできたら、config,credentilaを設定してawsumeを利用可能
~/.aws/credentials
[default]
aws_access_key_id = AKIAXXXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = vdYYYYYYYYYYYYYYYYYYYYYYYY
~/.aws/config
[default]
region = ap-northeast-1
output = json
[profile <スイッチロール時に指定するプロファイル名>]
role_arn = arn:aws:iam::<スイッチロール先のアカウントID>:role/cm-nakano.yoshiyuki
mfa_serial = arn:aws:iam::<スイッチロール元のアカウントID>:mfa/cm-nakano.yoshiyuki
source_profile = default
$ awsume -l
Listing...
=============================AWS Profiles=============================
PROFILE TYPE SOURCE MFA? REGION ACCOUNT
default User None No ap-northeast-1 Unavailable
<スイッチロール時に指定するプロファイル名> Role default Yes None ******
このスクラップは2023/03/23にクローズされました