id:kizashi1122 です。
最初に発行したAWS のアクセスキーをそのままずっと使ってませんか?
そもそもできるならばキーは発行すべきではありませんが、発行することが必要なシチュエーションもありますよね。 上記記事にも、
- アクセスキーを定期的に更新します
と、あるようにキーは漏洩したときのリスクを減らすためにも更新したほうがいいです。
こうならないようにしたいですね。
これ、実はアクセスキーを自動的にローテションする仕組みがあるんです。
手順
手順は以下の通りです。
.aws/credentials
がすでにある前提です。
- 当該 IAM ユーザに自身のキーを作成・削除する権限を与える
- aws-rotate-iam-keys をインストールする
- 依存コマンドである aws コマンドをインストールする
- 依存コマンドである jq コマンドをインストールする
1つずつ見ていきましょう。
IAM ユーザの権限追加
以下のポリシーが追加されていればいいです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListAccessKeys", "iam:CreateAccessKey", "iam:DeleteAccessKey" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] } ] }
aws-rotate-iam-keys インストール
$ git clone https://github.com/rhyeal/aws-rotate-iam-keys.git $ sudo cp aws-rotate-iam-keys/src/bin/aws-rotate-iam-keys /usr/local/bin/ $ rm -rf aws-rotate-iam-keys
こんな感じで PATH の通ったところにおいてもらえたらいいです。
aws コマンドインストール
$ curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" $ unzip awscli-bundle.zip $ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
jq コマンドインストール
$ sudo yum install jq
yum でインストールできます(環境によっては他の方法でインストールしてください)
以上!
実行
超簡単です。
$ aws-rotate-iam-keys
だけ。プロファイルを切ってる場合は、
$ aws-rotate-iam-keys -p other_profile
と指定することができます。
あとはこれを crontab に入れるなり、.bashrc
に追加するなりすれば自動化できます。
緑が気持ちいいです! インゲージの開発メンバーは皆この仕組みを導入しています。
実は・・・
今回の話は、2020年2月の JAWSUG で ABEJA の村主さんが発表されたこちらのスライドに書いている内容そのまんまです。
他にもお役立ち情報が沢山載っているので必見です。
インゲージではエンジニアを募集しています! 興味ある方は こちら まで!