Open10

AWS+MFAのCLIツールを作ってみる

config、credentialsの編集に使えそう

https://ini.unknwon.io/

To create a new key:
err := cfg.Section("").NewKey("name", "value")

https://ini.unknwon.io/docs/howto/work_with_keys

読み込みだけaws-sdk-go-v2、書き込みはiniにしてしまうと煩雑化しそうなので、

  • config、credentialsの読み込み〜更新は「ini」に任す
  • 読み込んだ値をaws-sdk-go-v2に渡して、セッション取得

の流れにしたい

↑環境変数によるcredentialsの上書きの挙動を考慮すると、読み込みを独自で実装するとユーザーを混乱させてしまいそう

Environment Variables
By default, the SDK detects AWS credentials set in your environment and uses them to sign requests to > > AWS. That way you don’t need to manage credentials in your applications.

The SDK looks for credentials in the following environment variables:

AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN (optional)

  • config、credentialsの読み込み: aws-sdk-go-v2
  • config、credentialsファイルの更新のみ: ini

がよさそう

aws-sdk-go-v2だと、configに記載したsource_profileの値が読み取りづらいなどなど、問題が山積していたので、

  • 環境変数の考慮必要な場合のconfig、credentialsの読み込み: aws-sdk-go-v2
  • 環境変数の考慮不要 or aws-sdk-go-v2だと読めないプロパティの場合のconfig、credentialsの読み込み:ini
  • config、credentialsファイルの更新: ini

でいく

Cobra使うんだったら、Viper使おうと思ったが、ini形式は明示的に非対応だった...

作成者以外のコメントは許可されていません