17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

〇野比太「〇〇えもん〜、複数のIAMを楽にスイッチしたいよー」

Posted at

自己紹介

おはようございます。こんにちは。こんばんは。
株式会社プロトソリューション(沖縄)で自社開発チームに所属しているスナガワです。
みなさま、よい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にも追加したんだけど、、」

config
$ cat ~/.aws/config
[default]
region = ap-northeast-1
output = json

[profile giant-higa]
region = ap-northeast-1
output = json
credentials
$ 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のインストールが必要です

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.

17
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?