どーも!
たかぽんです!
今回はaws cliを使うときのconfigureの設定を行なっていきます!
aws cliのconfigureって何?
aws cliというのは、awsの操作をcliで実行することができるようになるツールです。
ただ、awsのリソースへアクセスするためにはそのawsアカウントのアクセスキーを設定する必要があります。
誰でもcliでアクセスできると流石に困りますよね?
そのため、cliを叩く際には認証情報を設定してあげる必要があります。
その認証情報をセットできるのがconfigureです。
また、複数のアカウントを使用する場合、各種の認証情報に名前をつけて、コマンドごとに切り替え...といったことも可能です。
本記事ではあらかじめaws cliが入っている前提で話が進みます。
そのため、まだaws cliが入っていない方は以下の記事を参考に入れてみてください。
aws cliのconfigureを設定する
ではやっていきます!
まず前提知識として、awsの認証情報設定ファイルは以下のような感じのファイルになっています。
(base) taka@Taka ~ % cat ~/.aws/credentials
[default]
aws_access_key_id = AK************
aws_secret_access_key = ****************
(筆者の情報入ってるので、隠しています...!)
aws cliの設定ファイルは上記のように
cat ~/.aws/credentials
にて確認することができます。
筆者の場合、認証情報が一つなので、"[default]"の認証情報しかありません。
このdefaultとして設定されているものは、aws cliの実行時にcredentialsが指定されていない場合のデフォルトの設定として使われます。
そのため、最も使う頻度が高いアカウントのキー情報はこのdefaultとして設定しておくと便利です。
また、profileに名前をつければその項目が以下のように追加されます。
(base) taka@Taka ~ % cat ~/.aws/credentials
[default]
aws_access_key_id = AK************
aws_secret_access_key = ****************
[test]
aws_access_key_id = test-access-key
aws_secret_access_key = test-secret-key
あとは各種コマンド実行時に"--profile test"といった形で、その認証情報を使った実行が可能です。
基本的には上記のファイルを編集すればOKだったりもしますが...
ただ、個人的にはコマンドでちゃんと設定していく形がベストかなと思います。
追加するコマンドはとっても簡単...!
以下が追加している例です。
(base) taka@Taka ~ % aws configure --profile test
AWS Access Key ID [None]: test-access-key
AWS Secret Access Key [None]: test-secret-key
Default region name [None]: ap-northeast-2
Default output format [None]: json
コマンドを入力すると、"AWS AccessKey ID [None}"が表示され、入力ができるようになります。
ここで、"test-access-key"の箇所にAWSで発行したアクセスキー(個人なら個人で発行、会社のAWSアカウント等は管理者に聞いてみてください。)を入力します。
入力すると次のSecret Access Key, region, output formatを入力できます。
アクセスキーとシークレットアクセスキーは必須ですが、regionとouput formatはなくても大丈夫です。
上記例では"--profile"オプションで"test"という名前をつけています。
(testは別にわかりやすい名前で大丈夫です。本番環境のaws, 開発環境のawsなら、prod, devといったプロファイル名が良さそうですね。)
aws configure --profile test
もしも上記オプションがない場合はdefaultとして保存されます。
基本的にアカウント切り替えが不要!
という方はprofile名を指定せず、以下のみでも大丈夫かなと思います。
aws configure
キーの内容を差し替えたい場合は、同じく変えたいプロファイルの設定を再度行うとOKです。
例えば筆者の場合、defaultのプロファイルを変えたい場合は以下のような形です。
(base) taka@Taka ~ % aws configure
AWS Access Key ID [*******************W]:
もし今設定しようとしているconfigureに値が入っている(=更新しようとしている)場合は"[]"の中に元の設定内容が表示されます。
もし値が入っていない場合は以下のように"None"となります。
AWS Access Key ID [None]: test-access-key
新規作成の場合はNone, 更新の場合は何か入っている...といった具合で見分けることが可能です。
そして、profile名をつけているものを更新する場合は以下のような形です。
先程作成した"test"プロファイルを修正するなら...
(base) taka@Taka ~ % aws configure --profile test
AWS Access Key ID [****************-key]:
こうなります。
まぁ、先程設定した時と全く同じコマンドですね。
あとは設定時と同様にキーを設定してあげればOKです。
上記の方法だと一つ変更したいだけでもその認証情報を一括で設定する必要があるんですが、以下のように個別に設定も可能なようです。
$ aws configure set aws_access_key_id default_access_key
regionなども可能なので、以下参考にしてみてください。
さて、configの設定は実はこれだけです!
簡単ですね...!
あとはいろんなコマンドにて指定してあげたり、しなかったり(default)でこの設定が適応されます。
configの内容を確認する
先程credentialsのファイルをcatして設定内容を確認しましたが、region等、一部の情報の確認できませんでしたね...
regionを確認したい場合は以下のコマンドで確認ができそうです。
aws configure list --profile test
例のごとく、defaultの場合は"--profile"オプションは不要です。
(base) taka@Taka ~ % aws configure list --profile test
Name Value Type Location
---- ----- ---- --------
profile test manual --profile
access_key ****************-key shared-credentials-file
secret_key ****************-key shared-credentials-file
region ap-northeast-2 config-file ~/.aws/config
このコマンドを実行することで、region情報も確認が可能です。
一応、再度設定するコマンドにて、適当な値を入れていって確認する方法もありますが、間違うと変な値が設定されかねないので、可能であれば避けたいところですね...w
何も入れずに進めていけば一応全て確認が可能です(ただし、Key情報はマスクがかかります)。
(base) taka@Taka ~ % aws configure --profile test
AWS Access Key ID [****************-key]:
AWS Secret Access Key [****************-key]:
Default region name [ap-northeast-2]:
Default output format [json]:
また、個別に値を指定して取得も可能です。
(base) taka@Taka ~ % aws configure get region --profile test
ap-northeast-2
getコマンドに関しては以下をご参考ください。
まとめ
こんかいはaws cliにてconfigの設定を行ってみました...!
あまり使う頻度が高いとは言えないんですが、aws cliの最初の設定で必要になるため、ある程度基本的な部分は理解しておきたいところですね...!
筆者は今の所キーくらいしか活用していないんですが、他にも色々と設定できそうな予感...!
ただ、基本的な開発程度であればおそらくキーの設定だけで良さそうな気がしています...!w
より詳しい設定に関しては以下参照にしてみてください!
それでわ!