AWS Secrets Manager、Jenkins と SonarQube のトークンも自動ローテーションできるようになったよ!
やっほー、しぃちゃんだよ!今日は AWS Secrets Manager のうれしいアップデートを見つけちゃったから、さっそく紹介するね!
AWS What's Newなにが発表されたの?
AWS の What's New で、Secrets Manager の「マネージド外部シークレット」機能が Jenkins API Token と SonarQube Token にも対応したと発表されたよ。これまで自分でローテーションコードを書く必要があったサードパーティの認証情報が、AWS コンソールからそのまま設定できるようになったの!
今までどうだったの?
マネージド外部シークレットは、これまでも BigID・Confluent Cloud・Datadog・GitLab・MongoDB Atlas・Okta・Paddle・Salesforce・Snowflake のトークンローテーションに対応していたよ。でも Jenkins や SonarQube を CI/CD で使っているチームは、ローテーション用の Lambda 関数を自前で書いたり、手動でトークンを更新したりする必要があったんだ。
これで何が変わるの?
Jenkins と SonarQube のトークンも、他の対応サービスと同じように AWS コンソールから設定するだけで自動ローテーションできるようになったよ!カスタムのローテーションコードを書かなくてよくなるから、CI/CD 基盤の運用がぐっと楽になりそう。
深く潜ってみよう
ローテーションの仕組みは、サービスごとに少しずつ違うよ。
Jenkins は、新しいトークンをまず発行して、置き換えが正常に動作していることを確認してから古いトークンを無効化する仕組みになっているの。だから CI/CD ジョブが途中で止まる心配がないよ。ローテーション方式は 2 通りあって、ローテーション対象のトークン自身が新トークンを認証する「セルフローテーション」と、別の管理者トークンが生成・無効化を代行する「管理者支援ローテーション」から選べるよ。
SonarQube でローテーションできるのは次の 3 種類のトークンだよ。
- User Token(セルフローテーション対応)
- Global Analysis Token(管理者トークンでローテーション)
- Project Analysis Token(管理者トークンでローテーション)
これらは SonarQube の Web API 経由でローテーションが実行されるの。対応リージョンは、AWS Secrets Manager のマネージド外部シークレットが使えるすべてのリージョンだよ。詳しくは AWS Secrets Manager managed external secrets のドキュメント を見てみてね。
まとめ
- Secrets Manager のマネージド外部シークレットが Jenkins API Token と SonarQube Token に対応したよ
- 新トークン発行 → 動作確認 → 旧トークン無効化の流れで、ダウンタイムなくローテーションできるよ
- セルフローテーションと管理者支援ローテーションの 2 方式が選べるよ
- BigID・Confluent Cloud・Datadog・GitLab・MongoDB Atlas・Okta・Paddle・Salesforce・Snowflake に続く仲間入りだよ
Jenkins や SonarQube を CI/CD パイプラインで使っていて、トークン管理をもっと楽にしたいエンジニアに刺さる発表だよ!