Azure Managed Instance for Apache Cassandra のカスタマー マネージド キー
Azure Managed Instance for Apache Cassandra では、独自のキーを使用してディスク上のデータを暗号化できます。 この記事では、Azure Key Vault を使用してカスタマー マネージド キーを実装する方法について説明します。
前提条件
Azure Key Vault を使用してシークレットを設定します。 詳細については、「Azure Key Vault の概要」を参照してください。
リソース グループに仮想ネットワークをデプロイします。
Azure Cosmos DB サービス プリンシパルをメンバーとして使用して、ネットワーク共同作成者ロールを適用します。 次のコマンドを使用します:
az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
仮想ネットワークに適切なロールを適用すると、Azure Managed Instance for Apache Cassandra クラスターをデプロイするときのエラーを回避するのに役立ちます。 詳細については、「Azure CLI を使用して Azure Managed Instance for Apache Cassandra クラスターを作成する」を参照してください。
この記事では、Azure CLI バージョン 2.30.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
システム割り当て ID を使用してクラスターを作成する
次のコマンドを使用してクラスターを作成します。
<subscriptionID>
、<resourceGroupName>
、<vnetName>
、および<subnetName>
を適切な値に置き換えます。subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>" cluster="thvankra-cmk-test-wcus" group="thvankra-nova-cmk-test" region="westcentralus" password="PlaceholderPassword" az managed-cassandra cluster create \ --identity-type SystemAssigned \ --resource-group $group \ --location $region \ --cluster-name $cluster \ --delegated-management-subnet-id $subnet \ --initial-cassandra-admin-password $password
作成されたクラスターの ID 情報を取得します:
az managed-cassandra cluster show -c $cluster -g $group
出力には、次の例のような ID セクションが含まれています。 後で使用するために
principalId
値をコピーします。"identity": { "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "type": "SystemAssigned" }
Azure portal で、キー コンテナーに移動し、[アクセス ポリシー] を選択します。 次に、[アクセス ポリシーの追加] を選択して、キーのアクセス ポリシーを作成します。
キーのアクセス許可で、[取得]、[折り返す]、[折り返しを解除] を選択します。 [プリンシパルの選択] ボックスを選択して、[プリンシパル] ウィンドウを開きます。 前に取得したクラスターの
principalId
値を入力し、[選択] ボタンを 選択します。 (ポータルで、クラスターのプリンシパル ID をクラスターの名前で検索することもできます。)警告
キー コンテナーで消去保護が有効になっていることを確認します。 そうしないと、データセンターのデプロイは失敗します。
[追加] を選択してアクセス ポリシーを追加し、[保存] を選択します。
キー識別子を取得するには、[キー] を選択し、キーを選択します。
現在のバージョンを選択します。
後で使用するためにキー識別子を保存します。
<key identifier>
を、マネージド ディスク (managed-disk-customer-key-uri
) とバックアップ ストレージ (backup-storage-customer-key-uri
) の暗号化の両方に対して同じキー (前の手順でコピーした URI) に置き換えて、データセンターを作成します。 前に使用したsubnet
の値と同じ値を使用します。managedDiskKeyUri = "<key identifier>" backupStorageKeyUri = "<key identifier>" group="thvankra-nova-cmk-test" region="westcentralus" cluster="thvankra-cmk-test-2" dc="dc1" nodecount=3 subnet="/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>/subnets/<subnetName>" az managed-cassandra datacenter create \ --resource-group $group \ --cluster-name $cluster \ --data-center-name $dc \ --managed-disk-customer-key-uri $managedDiskKeyUri \ --backup-storage-customer-key-uri $backupStorageKeyUri \ --node-count $nodecount \ --delegated-subnet-id $subnet \ --data-center-location $region \ --sku Standard_DS14_v2
ID 情報なしで既存のクラスターに ID を割り当てることもできます:
az managed-cassandra cluster update --identity-type SystemAssigned -g $group -c $cluster
キーのローテーション
キーを更新するには、次のコマンドを使用します:
managedDiskKeyUri = "<key identifier>"
backupStorageKeyUri = "<key identifier>"
az managed-cassandra datacenter update \
--resource-group $group \
--cluster-name $cluster \
--data-center-name $dc \
--managed-disk-customer-key-uri $managedDiskKeyUri \
--backup-storage-customer-key-uri $backupStorageKeyUri