OpenStack Grizzlyを1年運用して起きた認証システム障害

とてもツマらない障害対応のメモとなります。

が、英語圏には多少の情報はあったけど日本語になかったので、書き留めておきます。



障害内容

ある日、突然、OpenStack Grizzlyの管理画面からインスタンス作成などの操作が全てできなくなりました。

既存のインスタンスには特に影響なく稼働していました。


原因

動作的には、認証システムであるKeystoneと、それ以外の全てのコンポーネントとの認証が失敗することが原因となりました。
nova list や glance image-list などが Unauthorized 401 になる状態です。

根本的な原因は、Keystone管理のSSL証明書の期限が切れたことによるものでした。


調査内容

初めはトークンデータが溢れて記録できなくなったのかと思いましたが、keystone-manage token-flush を実行しても特に解決できず。どうやらKVSなので勝手に消えていった模様。というか、トークンを定期的に削除しろって話を初めてみました。

次に、アカウントデータ元となっているLDAPを疑いましたが特に変わりなく。

OpenStackの設定を何も変更していなく、キャパシティオーバーでもなく、テスト環境とはいえプライベートクラウドとして1年間何事もなく稼働し続けてきて何故今!ということで、ちょうど1年間という期間系にまでマトを拡げてみると・・・ありました!ちょうど当日のファイル更新日になっていたSSL証明書群。

かくして、SSLの証明書を更新することで解決すると、思っていました。


対策

証明書作り直しに失敗

証明書を作り直すコマンドは用意されていたので10年に変更して実行し、色々再起動もしました……が、ダメッ!証明書は作成できるけど、有効にならない…

/usr/share/pyshared/keystone/common/openssl.py

認証方式をUUIDに変更

とにかく色々やっても新証明書が有効にならなかったので、キレて認証方式PKIを、ひとつ前のFolsomまで標準だったUUIDに変更することで対応しました。

/etc/keystone/keystone.conf

・・・えぇ、逃げですよ、逃げ。
いいんです、所詮、プライベートクラウドの開発用環境なので。

だいたい、有効期限を365日とベタ書きした開発者が悪いんです、俺は、悪くない、悪くない。


調査リンク集

トークン管理とか結局関係なかったけど、せっかく色々調べたのでリンクを置いておきます。

トークン管理

  • 9.4.1. 管理トークンの設定
  • 4.2.3. Identity Service(Keystone)のインストール — オープンソースに関するドキュメント 1.1 documentation
  • Cleanup keystone tokens – Sébastien Han
  • Troubleshooting PKI token issues in auth_token middleware. | Adam Young’s Web Log

  • Keystone管理

  • Identity Service のインストール – OpenStack インストールガイド Ubuntu 12.04/14.04 (LTS) 版 – icehouse
  • Certificates for PKI – OpenStack Compute Administration Guide – Grizzly, 2013.1
  • Configuring Keystone — keystone 2014.2.dev317.g1ca4156 documentation

  • 認証の仕組み

  • Understanding OpenStack Authentication: Keystone PKI – Pure Play OpenStack
  • OpenStack について学ぶ: アイデンティティー関連コンポーネントの Keystone

  • 同系統な事例の被害者

  • keystone ssl certificate expires after one year – Ask OpenStack: Q&A Site for OpenStack Users and Developers
  • Bug #1308778 “keystone-manage ssl_setup does not overwrite exist…” : Bugs : Keystone
  • openstack-cloud-computing – Re: [Openstack] grizzly on ubuntu precise: auth error using glance index – msg#00305

  • その他

  • JVNDB-2013-002012 – JVN iPedia – 脆弱性対策情報データベース
  • OpenStack Ceilometerをインストールしてみる



  • ということで、タメにならないOpenStackトラブルシューティングでした。
    最近のは最初から3650daysになっているみたいですが、一応確認しておいた方がいいかもしれません。

    そーいや、Grizzlyを改良して商用利用していたトコとかあったけど、こういう罠もリリース前に見つけて全部対応してるのかと思うと、ホントに感心しちゃいますね。

    1年間近く、全然OpenStackを追ってないけど、少しは気軽に利用できるようになったのかなー(遠い目