CircleCI 1.0 の AWS Permissions で設定した AWS Credentials をローテーションする

Posted on

CircleCI に設定した AWS Credentials のローテーションでハマったのでメモしておきます。

以前は AWS Permissions という項目から設定していましたが、CircleCI 2.0 に移行してからは Environment Variables で設定するようになりました。ビルドの設定画面からも AWS Permissions の項目はなくなっています。

IAM のベストプラクティスに則り Credentials をローテーションしようとしましたが、Environment Variables に AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY を設定しても古い Credentials が使われ続けました(CloudTrail で確認しました)。

ここまででわかったことは、

  • CircleCI 1.0 の AWS Permissions で設定した Credentials がどこかに残っている
  • Environment Variables よりも AWS Permissions の設定が優先される

ということで、AWS Permissions で設定した Credentials を消さないとローテーションできないことがわかりましたが、消そうにも設定画面に項目がないので手詰まりになりました。

ドキュメントにも載っていないのでサポートに問い合わせしようと思いましたが、設定画面の URL を見て直打ちしてみると AWS Permissions のページが表示されました (笑) AWS Permissions の設定は /gh/(organization)/(project)/edit#aws でアクセスできます。

AWS Permissions の設定画面

"Clear AWS keys" で Credentials を消せば Environment Variables で設定した新しい Credentials が使われるようになりました。