Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Azure Storage の Client Side Encryption

Azure StorageでClient Side Encryption (クライアントサイド暗号化)がPreviewで使えるようになっていたので試してみました。

パッケージ

パッケージは、Azure Storage ClientのPreview版と、Azure Key Vaultの正式版、Azure Key VaultのExtension(これはPreview)が必要です。

Install-Package WindowsAzure.Storage -Pre
Install-Package Microsoft.Azure.KeyVault
Install-Package Microsoft.Azure.KeyVault.Extensions -Pre

Azure Key Vault Extensionには、Azure Storage向けにいくつか便利なクラスが定義されていて、それを使います。

それを使うと、Azure Key Vaultのライブラリは使いますが、Azure Key Vault自身を使わなくても試すことができますので、今回それで。

暗号化しつつアップロード

以下のコードのとおり、BlobRequestOptionsにEncryptionPolicy の設定を指定を行えば、透過的に暗号化したアップロードされます。

 // The key material must be 128, 192, 256, 384 or 512 bits of data
var keyBytes = Encoding.UTF8.GetBytes("YwvqKyyUvR1Ty73PwynF3qsoiXCC7GK2"); //256 bits
var symmetricKey = new SymmetricKey("hoge", keyBytes);

// upload test file.
var encryptionPolicy = new BlobEncryptionPolicy(symmetricKey, null);
var blobRequestOptions = new BlobRequestOptions() {EncryptionPolicy = encryptionPolicy};
blob.UploadFromFile(@"c:\temp\test.txt", FileMode.Open, null, blobRequestOptions);

BlobEncryptionPolicy の第一引数には、 Microsoft.Azure.KeyVault.Core.IKey を指定します。このIKeyを実装したクラスが、Extensions側に2つ定義されています。

  • Microsoft.Azure.KeyVault.RsaKey
  • Microsoft.Azure.KeyVault.SymmetricKey

上の例では、SymmetricKey を使って暗号化してあります。

暗号化結果

以下が、アップロード元と、暗号化されたファイルを開いた結果です。

f:id:StateMachine:20150709163945p:plain

ダウンロードも同様にRequestOptionをつけてダウンロードすればよいでしょう。

参考

Azure Linux仮想マシンのパスワードをリセットする

VM作成直後に、あれっログインできない!となってしまったことはありませんか?二度パスワードをタイポしないとも限りません。そんなときは、以下の1ライナーでパスワードをリセットします。

Get-AzureVM -ServiceName hoge -Name fuga |
Set-AzureVMExtension -ExtensionName VMAccessForLinux -Publisher Microsoft.OSTCExtensions -Version 1.* `
-PublicConfiguration '{"username":"hogeuser", "password": "fugapassword"}'  | 
Update-AzureVM

はい、やってしまいました。

Visual Studio から 仮想マシンV2を作成する その2

前回 は、予め用意されていたテンプレートを使用して仮想マシンV2を作成しましたが、こんどはテンプレートが空の状態から作成してみたいと思います。

プロジェクトの作成

プロジェクトの新規作成から、空のテンプレートを選びます。

f:id:StateMachine:20150707180643p:plain

JSONファイルとアウトラインを確認すると、まだ何も記述されていない状態です。

f:id:StateMachine:20150707180731p:plain

続きを読む