Windows での Azure Service Fabric クラスター ノードのディスク暗号化の有効化
このチュートリアルでは、Windows で Service Fabric クラスター ノードのディスク暗号化を有効にする方法について説明します。 ノード タイプおよび仮想マシン スケール セットごとに、これらの手順に従う必要があります。 ノードを暗号化するために、ここでは仮想マシン スケール セットで Azure Disk Encryption 機能を利用します。
このガイドでは、次のトピックについて説明します。
- Windows の Service Fabric クラスターの仮想マシン スケール セットでディスク暗号化を有効にする場合に、気を付ける必要がある主要な概念。
- Windows の Service Fabric クラスター ノードでディスク暗号化を有効にする前に実行する必要がある手順。
- Windows の Service Fabric クラスター ノードでディスク暗号化を有効にするために実行する必要がある手順。
Note
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
前提条件
自己登録
仮想マシン スケール セットのディスク暗号化プレビューには、自己登録が必要です。 次の手順に従います。
- まず、次のコマンドを実行します。
Register-AzProviderFeature -ProviderNamespace Microsoft.Compute -FeatureName "UnifiedDiskEncryption"
- 状態が "登録済み" になるまで約 10 分待ちます。 状態を確認するには、次のコマンドを実行します。
Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption" Register-AzResourceProvider -ProviderNamespace Microsoft.Compute
Azure Key Vault
- スケール セットと同じサブスクリプションおよびリージョンでキー コンテナーを作成し、PowerShell コマンドレットを使用して、キー コンテナーに EnabledForDiskEncryption アクセス ポリシーを選択します。 Azure portal で Key Vault UI を使用して、次のコマンドによってポリシーを設定することもできます。
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -EnabledForDiskEncryption
- 新しい暗号化コマンドが含まれている、最新バージョンの Azure CLI をインストールします。
- Azure PowerShell の Azure SDK リリースの最新バージョンをインストールします。 暗号化の有効化 (set)、暗号化状態の取得 (get)、および暗号化の削除 (disable) をスケール セット インスタンスに対して行うための仮想マシン スケール セット Azure Disk Encryption コマンドレットを以下に示します。
command | Version | source |
---|---|---|
Get-AzVmssDiskEncryptionStatus | 1.0.0 以降 | Az.Compute |
Get-AzVmssVMDiskEncryptionStatus | 1.0.0 以降 | Az.Compute |
Disable-AzVmssDiskEncryption | 1.0.0 以降 | Az.Compute |
Get-AzVmssDiskEncryption | 1.0.0 以降 | Az.Compute |
Get-AzVmssVMDiskEncryption | 1.0.0 以降 | Az.Compute |
Set-AzVmssDiskEncryptionExtension | 1.0.0 以降 | Az.Compute |
ディスク暗号化のサポートされるシナリオ
- 仮想マシン スケール セットの暗号化はマネージド ディスクで作成されたスケール セットの場合にのみサポートされます。 ネイティブ (アンマネージド) ディスク スケール セットの場合はサポートされません。
- Windows では、仮想マシン スケール セットの OS とデータ ボリュームに対する暗号化がサポートされています。 Windows では、仮想マシン スケール セットの OS とデータ ボリュームに対する暗号化の無効化もサポートされています。
- 現在のプレビューでは、仮想マシン スケール セットに対する仮想マシンの再イメージ操作とアップグレード操作はサポートされていません。
新しいクラスターを作成してディスク暗号化を有効にする
次のコマンドを使用してクラスターを作成し、Azure Resource Manager テンプレートと自己署名証明書を使って、ディスク暗号化を有効にします。
Azure へのサインイン
以下のコマンドでサインインします。
Login-AzAccount
Set-AzContext -SubscriptionId <guid>
azure login
az account set --subscription $subscriptionId
既存のカスタム テンプレートを使用する
ニーズに合わせてカスタム テンプレートを作成する必要がある場合は、Azure Service Fabric クラスター作成テンプレート サンプル ページで入手できるテンプレートのいずれかから始めることを強くお勧めします。 クラスター テンプレートをカスタマイズするには、次のガイダンスを参照してください。
カスタム テンプレートが既にある場合は、テンプレートとパラメーター ファイルで、3 つの証明書関連パラメーターの名前が次のように指定されていて、値が次のように null であることを確認します。
"certificateThumbprint": {
"value": ""
},
"sourceVaultValue": {
"value": ""
},
"certificateUrlValue": {
"value": ""
},
$resourceGroupLocation="westus"
$resourceGroupName="mycluster"
$CertSubjectName="mycluster.westus.cloudapp.azure.com"
$certPassword="Password!1" | ConvertTo-SecureString -AsPlainText -Force
$certOutputFolder="c:\certificates"
$parameterFilePath="c:\templates\templateparam.json"
$templateFilePath="c:\templates\template.json"
New-AzServiceFabricCluster -ResourceGroupName $resourceGroupName -CertificateOutputFolder $certOutputFolder -CertificatePassword $certpassword -CertificateSubjectName $CertSubjectName -TemplateFile $templateFilePath -ParameterFile $parameterFilePath
declare certPassword=""
declare resourceGroupLocation="westus"
declare resourceGroupName="mylinux"
declare certSubjectName="mylinuxsecure.westus.cloudapp.azure.com"
declare parameterFilePath="c:\mytemplates\linuxtemplateparm.json"
declare templateFilePath="c:\mytemplates\linuxtemplate.json"
declare certOutputFolder="c:\certificates"
az sf cluster create --resource-group $resourceGroupName --location $resourceGroupLocation \
--certificate-output-folder $certOutputFolder --certificate-password $certPassword \
--certificate-subject-name $certSubjectName \
--template-file $templateFilePath --parameter-file $parametersFilePath
Windows で Service Fabric クラスターにアプリケーションをデプロイする
アプリケーションをクラスターにデプロイするには、「PowerShell を使用してアプリケーションのデプロイと削除を実行する」の手順とガイダンスに従ってください。
以前に作成した仮想マシン スケール セットのディスク暗号化を有効にする
前の手順で作成した仮想マシン スケール セットのディスク暗号化を有効にするには、次のコマンドを実行します。
$VmssName = "nt1vm"
$vaultName = "mykeyvault"
$resourceGroupName = "mycluster"
$KeyVault = Get-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName
$DiskEncryptionKeyVaultUrl = $KeyVault.VaultUri
$KeyVaultResourceId = $KeyVault.ResourceId
Set-AzVmssDiskEncryptionExtension -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName -DiskEncryptionKeyVaultUrl $DiskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType All
az vmss encryption enable -g <resourceGroupName> -n <VMSS name> --disk-encryption-keyvault <KeyVaultResourceId>
Windows で仮想マシン スケール セットのディスク暗号化が有効になっているかどうかを確認する
以下のコマンドを実行して、仮想マシン スケール セット全体の状態、またはスケール セット内の任意のインスタンスの状態を取得します。
$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Get-AzVmssDiskEncryption -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName
Get-AzVmssVMDiskEncryption -ResourceGroupName $resourceGroupName -VMScaleSetName $VmssName -InstanceId "0"
az vmss encryption show -g <resourceGroupName> -n <VMSS name>
さらに、仮想マシン スケール セットにサインインしてドライブが暗号化されていることを確認できます。
Service Fabric クラスターの仮想マシン スケール セットのディスク暗号化を無効にする
以下のコマンドを実行して、仮想マシン スケール セットのディスク暗号化を無効にします。 ディスク暗号化の無効化は、個別のインスタンスではなく、仮想マシン スケール セット全体に適用されることに注意してください。
$VmssName = "nt1vm"
$resourceGroupName = "mycluster"
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $VmssName
az vmss encryption disable -g <resourceGroupName> -n <VMSS name>
次のステップ
ここまでで、クラスターがセキュリティで保護され、Service Fabric クラスター ノードと仮想マシン スケール セットでディスク暗号化を有効および無効にする方法を学びました。 Linux での Service Fabric クラスター ノードに関する同様のガイダンスについては、Linux でのディスクの暗号化に関するページを参照してください。