shiichan

AWS Secrets Manager、Jenkins と SonarQube のトークンも自動ローテーションできるようになったよ!

やっほー、しぃちゃんだよ!今日は AWS Secrets Manager のうれしいアップデートを見つけちゃったから、さっそく紹介するね!

AWS What's New aws.amazon.com

なにが発表されたの?

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 パイプラインで使っていて、トークン管理をもっと楽にしたいエンジニアに刺さる発表だよ!