【AWS】aws-vaultとconfigを組み合わせてローカルテキストでの認証情報保持をなくした話

前置き

最近は、有難いことに忙しくさせて頂く事が出来ていたので、中々更新が出来ていませんでした。今後も中々更新はできないのですが、書き溜めたいものが出てきたときは書いていこうと思いますので、ご興味のある話題が見つかった際はぜひ読んでいってください!
久しぶりなので、以前と文章の癖などが違う部分もあると思いますが、ご容赦ください。。。

概要

私はにわか技術者だと思っているので、最新技術を追い切れているわけではなく、今回も少し古い技術のご紹介となってしまうようですが、ご容赦ください!
先日とある技術紹介サイトで、「aws-vault」という物を見かけたので、少しだけ触ってみました!
触り始めて直ぐの印象としては、結局「credential」がないと、開発者には使い勝手が悪いものかと思っていました。。。
ですが、小一時間ぐらい触ってその考えが払拭され、「credential」のようなテキスト形式でファイルを保持せずとも良い方法が分かったので、備忘録もかねて記事を書いておきたいと思います

事前準備

  1. AWSのIAMを作成しておく

  2. 1で作成したIAMのアクセスキーを作成しておく

  3. 「aws-vault」をインストールしておく

事前準備詳細

1.AWSのIAMを作成しておく
 1-1.割愛(この辺りは沢山の方が様々な記事を作成してくれているので、割愛します)

2.1で作成したIAMのアクセスキーを作成しておく
 2-1.割愛(この辺りは沢山の方が様々な記事を作成してくれているので、割愛します)

3.「aws-vault」をインストールしておく
 3-1. 「aws-vault」のインストールですが、このツールを作成されているチームのGitHubのREADMEにしっかりと記載をしてくれているので、こちらを元にインストールをしてみてください

以上で準備は終わりです
では、実際に「credential」ファイルを持たずともCLI他のツールを使う方法に関してまとめていきます

対応手順

1.「aws-vault」に事前準備2で作成したアクセスキーを設定する
 「aws-vault add {任意のプロファイル名}」のコマンドを実行し、アクセスキー・シークレットキーなどを設定する

2. 「~/aws/config」ファイルを作成する
 内容は、下記のようにする
 [profile {対応手順1で設定をした「aws-vault add」コマンドとは関係のない、任意のプロファイル名 ※便宜上、今後は「profile-プロファイル名」と呼称します}]
 credential_process=aws-vault exec {対応手順1で設定をした「aws-vault add」コマンドの引数 ※便宜上、今後は「vault-プロファイル名」と呼称します} --json
 region = {任意のリージョン}

以上で準備は終わりです

ここまで対応が終わると、実際にCLIのコマンドを実行してみてください
例えば、「aws --profile {対応手順2-「profile-プロファイル名」} s3 ls」とすることで、S3のバケットの一覧が取得できると思います。
※対応手順2-「profile-プロファイル名」を「default」としておくと、「aws s3 ls」のコマンドだけでも一覧が取得できるようになっていると思います

注意点

今回の手順の中で、「事前準備1」のIAMの権限に関して特に触れておりませんが、その点はご自身がやりたい事に沿って適宜ご対応いただけると幸いです。
対応手順の最後で、「s3 ls」のコマンドをご紹介しておりますが、該当コマンドを実行するための権限がない場合は、権限エラーとなってしまいますので、ご注意ください

終わりに

今回は、「credential」ファイルを無くす方法に関して簡単にまとめてみました。久しぶりの更新だったこともあり、うまく書けていない部分もあると思いますが、ご容赦ください。。。
何かご参考になれば幸いです!
ではでは!

この記事が気に入ったらサポートをしてみませんか?