LoginSignup
7
6

More than 5 years have passed since last update.

Azure Storage アカウント キーの漏洩対策

Last updated at Posted at 2017-02-27

注意

本記事の内容は、Azure Key Vault ストレージ アカウント キー機能により網羅されており古い情報となります。以下は参考情報として残してあります。

概要

Azure Storage アカウントは 512 ビットの文字列からなる 2 つのキー(Primary Key, Secondary Key)で管理されていてます。ストレージ アカウント名と、これらいずれか 1 つのキーを利用して、ストレージ アカウントに保存されているデータ オブジェクト (BLOB、テーブル内のエンティティ、キュー メッセージ、Azure ファイル共有上のファイルなど) へアクセスできます。

Key の漏えいと再生成

アカウント キーが判れば Azure Storage の全データにアクセスが可能となり、キーの漏洩は深刻なデータ漏えいにつながる可能性があります。このためアカウント キーには柔軟な再生成機能が備わっています。以下のようなキーの漏洩に関する事案が疑われる場合には、ストレージ管理者はキーの再生成を実施しデータの漏洩を防ぐ事が可能です。

  • キー情報を知っている運用・開発チームのメンバーがチームから外れた場合
  • ハッキングなどによりキー情報の漏洩が疑われる場合

Key が 2 つある理由

管理用のキーが 2 つある理由は、キーの再生成を実施する際に既存アプリケーション(Primary Key を利用)への影響を最小限にするためです。キーの再生成は、Storage サービス全体に同期されるまで最大 10 分程度かかる可能性があります。このためキーの再生成は次のプロセスで実施する事をお勧めします。

1. Azure ポータルで Secondary Key を再生成します。
2. Primary Key を利用している既存アプリケーションのキーを Secondary Key に変更します。アプリケーションをテストし発行します。
3. Azure ポータルで Primary Key を再生成します。

上記のステップにて、アプリケーションのダウンタイムを最小限に抑えながら 2 つのキーの再生成が実施できますが、これにはアプリケーションの改修と再発行などの手間を要します。Azure Key Vault を利用する事で、よりセキュアにこれらの漏洩対策を実施する事が可能です。

Azure Key Vault による Key の漏洩対策

Azure Storage アカウント キーの漏洩対策として、Key をシークレットとして Azure Key Vault に格納し、アプリケーションではキーを保持せず格納されたキーを必要に応じて取得する方法があります。この方法ではキーを再生成した場合でも、アプリケーションで必要になるたびにキーを読み取るか、メモリにキャッシュし、使用に失敗した場合に、Azure Key Vault からキーを取得し直すことができます。

Azure Key Vault を使用する事で、Azure Active Directory を使用してキーへのアクセス権を制御することが可能になります。次の図では、Azure Key Vault に格納されたキーを参照権限のあるユーザーのサービスが読み取り、読み取ったキーを利用してストレージへアクセスしている流れとなります。またこのケースでは、Azure Automation により、1時間毎にキーの再生成をすることで、キーの漏洩を防ぐ仕組みを取り入れています。

Secure-Azure-Storage-Using-Azure-Key-Vault-and-Azure-AD.png
参考資料:Say goodbye to key management – manage access to Azure Storage data using Azure AD

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6