小ネタです。
複数のAWSアカウントを利用していると、1台のPCで複数のIAMをCLIから利用したくなるわけですが、複数のプロファイルを簡単に切り替える方法が用意されているのでメモしておきます。
目次
設定
ここでは foo という名前のプロファイルを作成してみます。AWS CLIをすでに利用している前提です。
A. aws configureで設定するパターン
--profile
オプションに追加したいプロファイル名を指定します。あとはいつものように必要な情報を入力するだけです。
$ aws configure --profile foo
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Default region name [None]: ap-northeast-1
Default output format [None]: json
B. ファイルを直接編集するパターン
もしくはホームディレクトリ直下にある「.aws」の下にあるファイルを直接編集してもOKです。
~/.aws/credentials
新しく追加するプロファイルを以下のように追加します。現在利用しているdefaultはそのまま残しておきます。
[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
[foo]
aws_access_key_id = yyyyyyyyyyyyyyyyyyyy
aws_secret_access_key = nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
~/.aws/config
こちらも同様です。「profile (プロファイル名)」と言った感じでプロファイル名の前に profile は付ける必要があります。
[default]
region = ap-northeast-1
output = json
[profile foo]
region = ap-northeast-1
output = json
利用方法
単純に--profile
オプションで利用したいプロファイル名を指定するだけです。未指定の場合はdefaultのプロファイルが利用されます。
$ aws s3 ls s3://example.com/ --profile foo
その他
デフォルトのプロファイルを指定する
そもそもデフォルトで利用するプロファイルをfooにしてしまいたい場合、環境変数で指定することができます。
$ export AWS_PROFILE=foo
.bashrc や .zshrc などに書いておくと便利ですね。
参考ページ
このブログを応援する
お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。
同じカテゴリの記事
- [AWS] ECRにDockerイメージをプッシュする
- [AWS] S3へMIMEタイプを自動判定しながらアップロードする – Node.js
- [AWS] Serverless FrameworkでS3にファイルが追加されたらLambdaを起動する
- [AWS] CloudFrontのオリジンを動的に変更する – Lambda@Edge + Node.js
- [AWS] Serverless FrameworkでLambdaをArm64対応する
- [AWS] CloudFront+S3オリジンでindex.htmlを省略する – Lambda@Edge + Node.js
- [AWS] CloudFrontでBASIC認証を行う – Lambda@Edge + Node.js
- [AWS] Comprehendで日本語の感情分析を行う