Azure Key Vault とマネージド ID を使用して Azure Batch アカウントのカスタマー マネージド キーを構成する

既定の Azure Batch では、プラットフォーム マネージド キーを使用して、証明書、ジョブとタスクのメタデータなど、Azure Batch サービスに格納されているすべての顧客データが暗号化されます。 必要に応じて、独自のキー (つまり、カスタマー マネージド キー) を使用して、Azure Batch に格納されているデータを暗号化できます。

指定するキーは Azure Key Vault で生成する必要があります。また、Azure リソース用マネージド ID でアクセスする必要があります。

マネージド ID には、システム割り当てユーザー割り当ての 2 種類があります。

システム割り当てマネージド ID を使用して Batch アカウントを作成するか、カスタマー マネージド キーへのアクセス権を持つ、ユーザー割り当てマネージド ID を個別に作成できます。 比較表を確認して違いを理解し、ソリューションに最適なオプションを検討してください。 たとえば、同じマネージド ID を使用して複数の Azure リソースにアクセスする場合は、ユーザー割り当てマネージド ID が必要になります。 それ以外の場合は、Batch アカウントに関連付けられているシステム割り当てマネージド ID で十分である可能性があります。 ユーザー割り当てマネージド ID を使用すると、次に示すように、Batch アカウントの作成時にカスタマー マネージド キーを適用するオプションも提供されます。

システム割り当てマネージド ID を使用して Batch アカウントを作成する

個別のユーザー割り当てマネージド ID が不要な場合は、Batch アカウントを作成するときに、システム割り当てマネージド ID を有効にすることができます。

重要

このドキュメントで説明されているように、お客様のデータの暗号化のために Batch アカウント用に作成されたシステム割り当てマネージド ID は、Batch プール上のユーザー割り当てマネージド ID として使用することはできません。 Batch アカウントと Batch プールの両方で同じマネージド ID を使用する場合は、代わりに共通のユーザー割り当てマネージド ID を使用します。

Azure portal

Azure portalで Batch アカウントを作成するときに、 [詳細] タブの ID の種類で [システム割り当て済み] を選択します。

システム割り当て ID の種類を使用する新しい Batch アカウントのスクリーンショット。

アカウントが作成された後、 [プロパティ] セクションの [ID のプリンシパル ID] フィールドで一意の GUID を確認できます。 [ID の種類] には System assigned と表示されます。

[ID のプリンシパル ID] フィールドに一意の GUID が表示されているスクリーンショット。

この Batch アカウントに Key Vault へのアクセスを許可するには、この値が必要になります。

Azure CLI

新しい Batch アカウントを作成するときに、--identity パラメーターに対して SystemAssigned を指定します。

resourceGroupName='myResourceGroup'
accountName='mybatchaccount'

az batch account create \
    --name $accountName \
    --resource-group $resourceGroupName \
    --locations regionName='West US 2' \
    --identity 'SystemAssigned'

アカウントが作成されたら、システム割り当てマネージド ID がこのアカウントで有効になっていることを確認できます。 必ず PrincipalId を記録しておきます。この値は、Key Vault へのアクセス権をこの Batch アカウントに付与するときに必要になります。

az batch account show \
    --name $accountName \
    --resource-group $resourceGroupName \
    --query identity

Note

Batch アカウントで作成されたシステム割り当てマネージド ID は、キー コンテナーからカスタマー マネージド キーを取得するためにのみ使用されます。 この ID は Batch プールでは使用できません。 プールでユーザー割り当てマネージド ID を使用するには、「Batch プールでマネージド ID を構成する」を参照してください。

ユーザー割り当てマネージド ID を作成する

必要に応じて、カスタマー マネージド キーにアクセスするために使用できる、ユーザー割り当てマネージド ID を作成できます。

Key Vault にアクセスするには、この ID のクライアント ID 値が必要です。

Azure Key Vault インスタンスを構成する

キーが生成される Azure Key Vault は、Batch アカウントと同じテナントに作成する必要があります。 同じリソース グループ内または同じサブスクリプション内に存在する必要はありません。

Azure Key Vault を作成する

Azure Batch のカスタマー マネージド キーを使用して Azure Key Vault のインスタンスを作成するときに、 [論理削除][消去保護] が両方とも有効になっていることを確認します。

Key Vault 作成画面のスクリーンショット。

Azure Key Vault インスタンスにアクセス ポリシーを追加する

Azure portal で Key Vault を作成した後、 [設定][アクセス ポリシー] で、マネージド ID を使用して Batch アカウントのアクセスを追加します。 [キーのアクセス許可] で、 [取得][キーを折り返す][キーの折り返しを解除] を選択します。

[アクセス ポリシーの追加] 画面が表示されたスクリーンショット。

[プリンシパル] の下にある [選択] フィールドで、次のいずれかを入力します。

  • システム割り当てマネージド ID の場合: 以前に取得した principalId または Batch アカウントの名前を入力します。
  • ユーザー割り当てマネージド ID の場合: 以前に取得したクライアント ID、またはユーザー割り当てマネージド ID の名前を入力します。

[プリンシパル] 画面のスクリーンショット。

Azure Key Vault でキーを生成する

Azure portal の [キー] セクションで Key Vault インスタンスに移動し、 [生成/インポート] を選択します。 [キーの種類]RSA を選択し、 [RSA キー サイズ] を最低でも 2048 にします。 キーの種類 EC は現在、Batch アカウントでカスタマー マネージド キーとしてサポートされていません。

キーの作成

キーが作成されたら、新しく作成されたキーと現在のバージョンをクリックし、 [プロパティ] セクションの [キー識別子] をコピーします。 [許可された操作] で、[キーを折り返す][キーの折り返しを解除] がどちらもオンになっていることを確認します。

Batch アカウントでカスタマー マネージド キーを有効にする

前提条件が満たされたので、Batch アカウントでカスタマー マネージド キーを有効にできます。

Azure portal

Azure portal で、Batch アカウントのページに移動します。 [暗号化] セクションで、 [カスタマー マネージド キー] を有効にします。 キー識別子を直接使用することも、キー コンテナーを選択して [キー コンテナーとキーを選択します] をクリックすることもできます。

暗号化セクションと、カスタマー マネージド キーを有効にするオプションを示すスクリーンショット

Azure CLI

システム割り当てマネージド ID を使用して Batch アカウントを作成し、Key Vault へのアクセスを許可した後、keyVaultProperties パラメーターで {Key Identifier} URL を使用して Batch アカウントを更新します。 また、--encryption-key-sourceMicrosoft.KeyVault として設定します。

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-source Microsoft.KeyVault \
    --encryption-key-identifier {YourKeyIdentifier}

ユーザー割り当てマネージド ID とカスタマー マネージド キーを使用して Batch アカウントを作成する

例として、Batch 管理 .NET クライアントを使用して、ユーザー割り当てマネージド ID とカスタマー マネージド キーを持つ Batch アカウントを作成できます。

EncryptionProperties encryptionProperties = new EncryptionProperties()
{
    KeySource = KeySource.MicrosoftKeyVault,
    KeyVaultProperties = new KeyVaultProperties()
    {
        KeyIdentifier = "Your Key Azure Resource Manager Resource ID"
    }
};

BatchAccountIdentity identity = new BatchAccountIdentity()
{
    Type = ResourceIdentityType.UserAssigned,
    UserAssignedIdentities = new Dictionary<string, BatchAccountIdentityUserAssignedIdentitiesValue>
    {
            ["Your Identity Azure Resource Manager ResourceId"] = new BatchAccountIdentityUserAssignedIdentitiesValue()
    }
};
var parameters = new BatchAccountCreateParameters(TestConfiguration.ManagementRegion, encryption:encryptionProperties, identity: identity);

var account = await batchManagementClient.Account.CreateAsync("MyResourceGroup",
    "mynewaccount", parameters);

カスタマー マネージド キーのバージョンを更新する

キーの新しいバージョンを作成したら、その新しいバージョンを使用するように Batch アカウントを更新します。 次の手順に従います。

  1. Azure portal で Batch アカウントに移動し、[暗号化] の設定を表示します。
  2. 新しいキーのバージョンの URI を入力します。 または、Key Vault とキーを再び選択して、バージョンを更新してもかまいません。
  3. 変更を保存します。

Azure CLI を使用してバージョンを更新することもできます。

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourKeyIdentifierWithNewVersion}

ヒント

Key Vault 内にキー ローテーション ポリシーを作成することで、キーを自動的にローテーションさせることができます。 Batch アカウントのキー識別子を指定する場合は、バージョンレス キー識別子を使用して、有効なローテーション ポリシーで自動ローテーションを有効にします。 詳細については、Key Vault でのキー ローテーションの構成方法に関する記事を参照してください。

Batch の暗号化に別のキーを使用する

Batch の暗号化に使用されるキーを変更するには、次の手順のようにします。

  1. Batch アカウントに移動し、[暗号化] の設定を表示します。
  2. 新しいキーの URI を入力します。 Key Vault を選択して新しいキーを選択することもできます。
  3. 変更を保存します。

また、Azure CLI を使用して別のキーを使用することもできます。

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourNewKeyIdentifier}

よく寄せられる質問

  • カスタマー マネージド キーは既存の Batch アカウントでサポートされますか? いいえ。 カスタマー マネージド キーは、新しい Batch アカウントに対してのみサポートされています。
  • 2048 ビットを超える RSA キーのサイズを選択できますか? はい。3072 および 4096 ビットの RSA キーのサイズもサポートされています。
  • カスタマー マネージド キーが失効した後、どのような操作を使用できますか? Batch にカスタマー マネージド キーへのアクセス権がなくなった場合、許可される操作はアカウントの削除だけです。
  • Key Vault のキーを誤って削除した場合、Batch アカウントへのアクセスを復元するにはどうすればよいですか? 消去保護と論理削除が有効になっているため、既存のキーを復元することができます。 詳細については、Azure Key Vault の復旧に関するページを参照してください。
  • カスタマー マネージド キーを無効にすることはできますか? いつでも Batch アカウントの暗号化の種類を "Microsoft マネージド キー" に戻すことができます。 後でキーを自由に削除または変更できます。
  • キーをローテーションするにはどうすればよいですか? カスタマー マネージド キーは、キーがバージョンレスであり、Key Vault 内で適切なキー ローテーション ポリシーが設定されていない限り、自動的にローテーションされません。 キーを手動でローテーションするには、アカウントに関連付けられているキー識別子を更新します。
  • アクセスを復元した後、Batch アカウントが再び動作するまでどれくらいかかりますか? アクセスが復元されてから、アカウントに再びアクセスできるようになるまでに、最大で 10 分かかることがあります。
  • Batch アカウントが使用できない間、リソースはどうなりますか? カスタマー マネージド キーへの Batch アクセスが失われたときにアクティブだったプールは、引き続き実行されます。 ただし、これらのプールのノードは使用できない状態に遷移し、タスクの実行は停止されます (キューに登録されます)。 アクセスが復元されると、ノードは再び使用可能になり、タスクは再起動されます。
  • この暗号化メカニズムは、Batch プール内の VM ディスクに適用されますか? いいえ。 クラウド サービス構成プール (非推奨) の場合、OS と一時ディスクに暗号化は適用されません。 仮想マシン構成プールの場合、OS ディスクと指定したすべてのデータ ディスクは、既定では Microsoft プラットフォーム マネージド キーで暗号化されます。 現時点では、これらのディスクに独自のキーを指定することはできません。 Batch プールの VM の一時ディスクを Microsoft プラットフォーム マネージド キーで暗号化するには、仮想マシン構成プールで diskEncryptionConfiguration プロパティを有効にする必要があります。 機密性の高い環境では、一時ディスクの暗号化を有効にし、OS ディスクとデータ ディスクには機密データを格納しないようにすることをお勧めします。 詳細については、「ディスク暗号化が有効になっているプールを作成する」をご覧ください
  • Batch アカウントのシステム割り当てマネージド ID は、コンピューティング ノードで使用できますか? いいえ。 システム割り当てマネージド ID は、現在、カスタマー マネージド キーの Azure Key Vault にアクセスするためにのみ使用されています。 計算ノードでユーザー割り当てマネージド ID を使用するには、「Batch プールでマネージド ID を構成する」を参照してください。

次のステップ