自己紹介
おはようございます。こんにちは。こんばんは。
株式会社プロトソリューション(沖縄)で自社開発チームに所属しているスナガワです。
みなさま、よいBeer Time🍺な日々をおくれてますか?
本記事について
本記事では以下の悩みを持った方へ小技を紹介する感じです。
- 管理するAWSアカウントが増えてきたよー
- AWS CLIを使用する際、毎回profileを指定するの面倒くさいよー
- かといって、環境変数で切り替えるのも面倒くさいよー
- もっと楽に、profileを指定せずスイッチしたいよー
- どうにかしてよー、ドラ○もん〜
環境
ちなみに環境は以下の感じです。
$ sw_vers
ProductName: macOS
ProductVersion: 12.6
BuildVersion: 21G115
$ echo $SHELL
/bin/zsh
$ node -v
v16.17.1
$ npm -v
8.15.0
ある日のやりとり
※あの見慣れたやり取り風でご紹介します、読み飛ばしたい方は導入手順を参照
登場人物(むるうちなーんちゅ)
- 栄野比太(えのびた):沖縄県うるま市在住の新人5年目
- ナハえもん(なはえもん):沖縄県那覇市からきた栄野比太の上司
- ジャイアント比嘉(じゃいあんとひが):大きい人。栄野比太の同僚
定時後の夕暮れ
栄野比太 「ナハえもん〜」
ナハえもん「どうしたんだい、栄野比太くん」
栄野比太 「ジャイアント比嘉がブチギレしてくるんだよ〜」
ナハえもん「なにがあったんだい」
栄野比太 「あのね。aws cliコマンドを使ってS3のbucketを確認しようと思ったんだけど」
「ジャイアント比嘉が作成したbucketが見つからなかったんだ」
ナハえもん「どんなコマンドを使用したんだい?」
・栄野比太は、使用したコマンドをみせた
$ aws s3 ls
2018-12-11 17:08:50 enobita-bucket
2018-12-14 14:55:44 enobita-bucket2
栄野比太 「今朝、ジャイアント比嘉から新しいAWSアカウントをもらったんだ」
ナハえもん「ふむふむ」
栄野比太 「その情報をconfig
credentials
にも追加したんだけど、、」
$ cat ~/.aws/config
[default]
region = ap-northeast-1
output = json
[profile giant-higa]
region = ap-northeast-1
output = json
$ cat ~/.aws/credentials
[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
[giant-higa]
aws_access_key_id = zzzzzzzzzzzzzzzzzzzz
aws_secret_access_key = mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
栄野比太 「この状態でaws s3 lsコマンドを叩いてもgiant-higa-buket
がなくて、、、」
「それをジャイアント比嘉に言ったらメタクソ怒られたんだ。」
ナハえもん「なぁんだ。そんなことか〜」
「そんなときは、--profile
オプションを付けて名前を指定すればいいんだよ」
「追加したprofile名のgiant-higa
を指定するんだ」
$ aws s3 ls --profile giant-higa
2018-12-04 19:05:48 giant-higa-bucket
2020-11-10 07:12:20 giant-higa-bucket2
--profile
オプション無しで実行した場合、defaultで設定されているIAMで実行されます
栄野比太 「へぇ〜profileを指定する必要があったんだね」
ナハえもん「ためになったね〜」
ちなみに
環境変数のAWS_PROFILEをセットすればdefaultが変更されるため
--profile
オプション無しで実行してもgiant-higa
のprofileが適用された結果になります
$ export AWS_PROFILE=giant-higa
$ aws s3 ls
しばらく経って、定時後の夕暮れ
栄野比太 「ねぇ、ねぇナハえもん助けてよ〜」
ナハえもん「今度はどうしたんだい栄野比太くん」
栄野比太 「実はねぇ。他にも新しいIAMをもらって、、、」
「作業のたびに--profile
オプションを指定するのがしんどくなってきたんだ」
「もっと楽に仕事がしたいよー」
「不労所得がほしいよー」
ナハえもん「なぁんだ。そんなことか〜 ※不労所得のくだりは無視して」
「そんなときはこれ!」 テッテレー♪
「awsp コマンドーーー」
栄野比太 「なにそれ。ひみつ道具ちゃうんかい」
ナハえもん「複数のIAM(プロファイル)を楽にスイッチできるツールやさ!」
(ひみつ道具にたよんなや。ITで解決せぇや)
導入手順
事前にnode・npmのインストールが必要です
- awspのインストール
公式のインストール手順(README.md)に従ってnpmでインストール
npm install -g awsp
- 設定の追加
~/.zshrc
(bash の場合~/.bashprofile
) に、以下を追加します
alias awsp="source _awsp"
ここまで設定できたら、一旦、ターミナルを再起動してawsp
コマンドを打ちます
$ awsp
? Choose a profile (Use arrow keys)
❯ enobita
giant-higa
account-hoge1
account-hoge2
default
? Choose a profile enobita
対話シェルとなるので、プロファイルを❯
で選択してEnter
? Choose a profile enobita
さて、プロファイルが切り替わってるか確認してみましょう
$ echo $AWS_PROFILE
enobita
栄野比太 「ふぇ〜〜。便利〜。ありがとうナハえもん!」
「んで、不労所得の件は?」
ナハえもん「しょうがないなぁ〜。そのときはこれ....」 テッテレー♪
次回に続く...
まとめ
AWSプロファイルのスイッチには、--profile
を指定するか、環境変数のAWS_PROFILEをセットすればOK!
もっと楽にスイッチするにはawsp
を導入してみよう!
ちなみに
ターミナル上で(プロンプトのテーマをいじって)どのプロファイルを選択しているか表示させることもできます。
※aws:(プロファイル名)
のような
公式の手順にも記載されています。この辺はまた次回にでも!!
では、よいBeer Time🍺を!
See you again.