2016-08-15 14 views
3

キーローテーションのためのAzure Storage sample codeは、一意の名前のシークレットを複数使用する方法を示しています。しかし、KeyVaultでは、複数のバージョンの単一のSecretを作成することが可能になりました。バージョンを使用してキーのローテーションを達成できない理由はわかりません。管理しやすいように、バージョンに合わせてキーのローテーションを達成することはできません。Azure KeyVaultキーローテーション

キーローテーションをサポートするために1つのシークレットのバージョンに対して複数のシークレットを選択する理由についてのガイダンスはありますか?そして、もしそうでなければバージョンが意図しているものに関する一般的なガイダンスはありますか?

ありがとうございます!

+0

私は専門家ではありませんが、APIを見れば、バージョン識別子がデフォルトで最新のバージョンに設定されていないと思われます。これが意図した方法です。だからほとんどのAPI(REST、.NETなど)は、あなたが意図したバージョンを使用するのをサポートするコードパターンを実際に構築していないようです。 –

+0

たとえば、ResolverKeyAsyncメソッドでは、異なるバージョンのキーを選択するためのバージョン値を指定できないようです。たぶんAPIがこの新しい機能のために成熟したとき、このパターンはより意味をなさないでしょう。再び、専門家、塩の穀物など –

+0

ありがとう@ kyle-hale。あなたのポイントに答えて "[..] APIを見て、それは最新のバージョンにデフォルトのバージョン識別子なしで各秘密のように思えます - 正しい。しかし、私はこれが重要だとは思わない(実際には望ましいと思う)。各バージョンのキーは一意に扱うことができるので、バージョンが格納されている限り、以前のバージョンで暗号化されたデータは暗号化解除され、最新のバージョンでは暗号化に使用されます –

答えて

1

使用しているSDKに応じて、1つのシークレットと複数のバージョンのキーローテーションを自由に使用できます。

Node.jsベースのアプリケーションでは、完全なKeyVaultの秘密URIを指すように設定されています。

一部の秘密は、シークレット(バージョンなし)の短いURLを指しているだけなので、アプリは「最新バージョン」を取得します。

ローテーションが必要なその他の秘密には、バージョンへの完全なURLが必要です。たとえばAzure Table Encryptionを使用します。テーブル内の各行は、暗号化されるとKeyVaultからキーラッピングキーを使用します。キーラッピングキーは、テーブルデータを復号化するために特定の秘密が必要なため、KeyVaultのバージョニングされた完全なURLです。時間の経過とともに、異なる行が異なるキーバージョンを指します。

現在のバージョンのキーを新しいバージョンにローテーションするという一般的なシナリオでは、一度に2つのキーをサポートするように設定システムと接続ロジックを構築しただけです。または時間ベースの論理を考慮する。

どのアプローチも問題ありませんが、追加の秘密の名前を増やすのではなく、時間の経過とともにバージョンを使用すると、あなたの話がどれくらい素敵でクリーンであるかを考慮してください。

+0

シークレットが持つことができるバージョンの数に制限はありますか? –

関連する問題