⚙️
会社と個人のAWSアカウントを切り替えて使う
これは何?
1つのPCで複数のAWSアカウントを切り替えて使うためのtips。
何ができるようになる?
- コマンド一発で複数アカウントを切り替えることができるようになる
- 今どちらのアカウントで操作しているか分かるようになる
個人アカウントの方でアカウント作成
IAMから「ユーザ」=>「ユーザの追加」
既存のポリシーを直接アタッチからAdministratorAccess
を選択。
確認画面
ここに出てくる下記を控える。
- パスワード
- アクセスキーID
- シークレットアクセスキー
aws cliにprofileを設定する
ターミナルに戻り、aws cliに設定を追加する。
aws configure --profile network-test
さきほど控えたアクセスキーID
とシークレットアクセスキー
を入力する。
残りの設定はお好みだが、私は下記のようにしました。
Default region name [None]: ap-northeast-1
Default output format [None]: json
設定自体は完了。
この状態でコマンドごとにprofileを指定するか環境変数を切り替えれば使える。
aws s3 ls --profile network-test
export AWS_DEFAULT_PROFILE=network-test
aws s3 ls
ただ面倒なので切り替えを楽にする設定を追加していく。
切り替えを楽にする設定
AWSP - AWS Profile Switcherを使う。
npm install -g awsp
~/.zshrc
に下記を追記する。
~/.zshrc
function awsp() {
if [ $# -ge 1 ]; then
export AWS_PROFILE="$1"
echo "Set AWS_PROFILE=$AWS_PROFILE."
else
source _awsp
fi
if [ "$AWS_PROFILE" != "" ]; then
export AWS_DEFAULT_PROFILE=$AWS_PROFILE
else
unset AWS_DEFAULT_PROFILE
fi
}
設定反映すると、切り替えられるようになる。
# 設定を読み込み
source ~/.zshrc
# awspで切り替えられるようになる。
$ awsp
AWS Profile Switcher
? Choose a profile
❯ network-test
default
ターミナル上でどのアカウントで操作しているか分かるようにする
プロンプトを下記のように修正し、今操作するprofileがどれなのか表示する。
.zshrc
に下記を追加して
~/.zshrc
PS1='[%c |$(echo $AWS_PROFILE)]\$ '
# 設定を読み込み
source ~/.zshrc
[~ |]$ awsp
AWS Profile Switcher
? Choose a profile network-test
[~ |network-test]$
Discussion