AWS CLIではconfigファイルとcredentialsファイルに保存された複数の名前付きプロファイルを使い分けることができます。
複数のAWS案件に同時に参画したり、異なる権限のIAMとユーザーを使い分けたり何かと便利なので、今回はその設定方法と確認方法についてまとめます。
※本記事はすでにAWS CLIを導入済みという前提に立って書かれています。
プロファイルの認証情報の確認方法
プロファイルの認証情報は下記に保存されています。
- ~/.aws/credentials(Linux系OS と Mac)
- %USERPROFILE%.aws\credentials(Windows OS)
Macだと下記のコマンドをiTermなりTerminalなりに打ち込めばプロファイル情報が出力されます。
伏せ字にしていますが、実際にはランダムな文字列が表示されます。
$ cat ~/.aws/credentials
[default]
aws_access_key_id = **********************
aws_secret_access_key = **********************
※アクセスキーとシークレットキーは重要な認証情報です。ソースコードにハードコードしたり、リモートリポジトリにPushしたりすることがないようにしてください。
AWS CLIの処理設定をした状態だと出力されるプロファイルはdefaultのみになります。
プロファイルの設定情報の確認方法
各プロファイルは異なるIAMとユーザーの認証情報を使用し、AWSの別リージョンを設定したり、出力形式を指定したりすることもできます。
各プロファイルの設定情報は下記に保存されています。
- ~/.aws/config (Linux系OS と Mac)
- %USERPROFILE%.aws\config (Windows OS)
Macの場合、下記コマンドを打ち込めば設定情報を出力することが出来ます。
$ cat ~/.aws/config
[default]
output = json
region = ap-northeast-1
名前付きプロファイルの追加
アクセスキーを作成する
プロファイルの追加にはIAMユーザーの認証情報が必要です。
AWSマネジメントコンソールからIAMを選択し、下記のスクショの順序でアクセスキーを払い出します。
アクセスキーの作成時の1回限り、アクセスキーとシークレットアクセスキーの認証情報をダウンロードすることができます。
このタイミングで忘れずにダウンロードし、セキュアな方法で安全に保管しておいてください。
AWS CLIからプロファイルを追加する
認証情報を作成したら、次にAWS CLIから下記コマンドを入力して名前付きプロファイルを追加します。
$ aws configure --profile {{PROFILE NAME}}
$ aws configure --profile hazui // たとえばこのように入力
この後、下記4つの情報を入力していきます
- 認証に使用するアクセスキー
- 認証に使用するシークレットアクセスキー
- リージョン
- 出力形式(textやjson)
なお、 {{PROFILE NAME}}
に作成済みの名前付きプロファイルを指定すると、既存の情報を上書きしてプロファイルを更新することができます。
再びプロファイルを確認する
前述のプロファイル追加作業が終わったら、きちんと名前付きプロファイルが作成されているか確認しましょう。
さきほどと同じく下記コマンドで確認可能です。
// 認証情報
$ cat ~/.aws/credentials
[default]
aws_access_key_id = **********************
aws_secret_access_key = **********************
[hazui]
aws_access_key_id = **********************
aws_secret_access_key = **********************
// 設定情報
$ cat ~/.aws/config
[default]
output = json
region = ap-northeast-1
[profile hazui]
output = json
region = ap-northeast-1
作業前はdefaultしかなかったプロファイルですが、 hazui
という名前付きプロファイルが新たに追加されていることが確認できます。
「2回もコマンド叩くの面倒くさいよ」って方はこちら。
$ aws configure list --profile hazui
Name Value Type Location
---- ----- ---- --------
profile hazui manual --profile
access_key ******************** shared-credentials-file
secret_key ******************** shared-credentials-file
region ap-northeast-1 config-file ~/.aws/config
名前付きプロファイルの使い方
名前付きプロファイルを追加しましたが、単にawsコマンドを叩くだけだとdefaultのプロファイルが使用されます。
新たに追加した名前付きプロファイルを使用するには、下記のようなオプションを追加してコマンドを叩いてください。
$ aws lambda create-function --profile hazui
以上です。