AWSのシークレットキーをgithubで公開して、不正利用されて数十万などという話を聞く。
自分もAWSの操作をAnsibleで行っているので、Ansibleで利用するシークレットキーやパスワードなどの情報をどのように管理するか悩みどころである。
幸いにしてansibleには設定ファイルに書かれた情報を暗号化するansible-vaultというコマンドがある。
これは暗号化に使ったときと同じキー(文字列)を実行時に打ち込むことで、セキュリティを確保しようという仕組みである。
まずは普通の設定ファイルを用意する。ansible-vault encrypt を実行すると元のファイルを上書きしてしまうので注意。普段は暗号化した状態でコミットしておくのがよいだろう。
aws_access_key: HOGEHOGE aws_secret_key: FUGAFUGAFUGAFUGA # 暗号化する ansible-vault encrypt secret.vault # 編集するときは複合化する ansible-vault decrypt vars/secret.vault # 実行時に複合化キーを聞くようにansible.cfgを以下のように設定 [defaults] ask_vault_pass = True