[アーティクル] 07/08/2024
5 人の共同作成者
フィードバック
この記事の内容
適用対象: Azure SQL データベース
Note
データベース レベルの TDE CMK が Azure SQL Database (すべての SQL Database エディション) で使用できます。 Azure SQL Managed Instance、SQL Server オンプレミス、Azure VM、Azure Synapse Analytics (専用 SQL プール (旧称 SQL DW)) では使用できません。
このガイドでは、Azure SQL Database で geo レプリケーションとバックアップ復元を構成するステップについて説明します。 Azure SQL Database は Transparent Data Encryption (TDE) とデータベース レベルのカスタマー マネージド キー (CMK) を使用して構成され、ユーザー割り当てマネージド ID を使用して Azure Key Vault にアクセスします。 このガイドでは、Azure Key Vault と Azure SQL 論理サーバーの両方が同じ Microsoft Entra テナント内にありますが、異なるテナントに存在する場合があります。
前提条件
重要
データベースが作成または復元されると、Azure portal の [Transparent Data Encryption] メニューに、ソース データベースと同じ設定の新しいデータベースが表示されますが、キーがない可能性があります。 新しいデータベースがソース データベースから作成されるすべての場合において、Azure portalの [追加データベース キー] リストのターゲット データベースに表示されるキーの数が、ソース データベースに表示されるキーの数よりも少なくなる可能性があります。 これは、表示されるキーの数が、ターゲット データベースの作成に使用される個々の機能要件によって異なるためです。 新しく作成したデータベースで使用できるすべてのキーを一覧表示するには、「Azure SQL Database のデータベース レベルのカスタマー マネージド キー設定の表示 」内の利用可能な API を使用します。
データベース レベルのカスタマー マネージド キーをセカンダリまたはコピーとして使用して Azure SQL Database を作成する
以下の指示またはコマンドを使用して、セカンダリ レプリカを作成するか、データベース レベルのカスタマー マネージド キーで構成された Azure SQL Database のターゲットをコピーします。 ユーザー割り当てマネージド ID は、データベース作成フェーズの間に Transparent Data Encryption 用にカスタマー マネージド キーを設定するために必要です。
データベース レベルのカスタマー マネージド キーを持つデータベース コピーを作成する
データベース レベルのカスタマー マネージド キーを使用して Azure SQL Database 内にデータベースをコピーとして作成するには、次の手順に従います。
Azure portal に移動し、データベース レベルのカスタマー マネージド キーで構成された Azure SQL データベースに移動します。 [データ暗号化] メニューの [Transparent Data Encrypt] タブにアクセスし、データベースで使用されている現在のキーの一覧を確認します。
データベースの [概要] メニューから [コピー] を選択することで、データベースのコピーを作成します。
[SQL データベースの作成 - データベースのコピー] メニューが表示されます。 このデータベースには別のサーバーを使用しますが、コピーしようとしているデータベースと同じ設定を使用します。 [Transparent Data Encryption キー管理] セクションで、[Transparent Data Encryption の構成] を選択します。
[Transparent Data Encryption] メニューが表示されたら、このコピー データベースの CMK 設定を確認します。 設定とキーには、ソース データベースで使用されているのと同じ ID とキーを設定する必要があります。
[適用] を選択して次に進んでから、[確認と作成] 、[作成] の順に選択してコピー データベースを作成します。
データベース レベルのカスタマー マネージド キーを持つセカンダリ レプリカを作成する
Azure portal に移動し、データベース レベルのカスタマー マネージド キーで構成された Azure SQL データベースに移動します。 [Transparent Data Encryption] メニューにアクセスし、データベースで使用されている現在のキーの一覧を確認します。
データベースの [データ管理] 設定で、[レプリカ] を選択します。 [レプリカの作成] を選択して、データベースのセカンダリ レプリカを作成します。
[SQL データベースの作成 - geo レプリカ] メニューが表示されます。 このデータベースにはセカンダリ サーバーを使用しますが、複製しようとしているデータベースと同じ設定を使用します。 [Transparent Data Encryption キー管理] セクションで、[Transparent Data Encryption の構成] を選択します。
[Transparent Data Encryption] メニューが表示されたら、このデータベース レプリカの CMK 設定を確認します。 設定とキーには、プライマリ データベースで使用されているのと同じ ID とキーを設定する必要があります。
[適用] を選択して次に進んでから、[確認と作成] 、[作成] の順に選択してコピー データベースを作成します。
Azure CLI の現在のリリースのインストールについては、Azure CLI のインストール に関する記事を参照してください。
keys-filter
として expand-keys
パラメータを current
で使用して、プライマリ データベースで使用されている現在のキーのリストを事前作成します。
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
新しいデータベースをセカンダリとして作成し、ソース データベースから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を提供します。
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
重要
$keys は、ソース データベースから取得されたキーのスペース区切りリストです。
データベースのコピーを作成するには、az sql db copy を同じパラメーターで使用します。
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Az PowerShell モジュールのインストール手順については、Azure PowerShell のインストール を参照してください。 具体的なコマンドレットについては、「AzureRM.Sql 」を参照してください。
Get-AzSqlDatabase コマンドと、-ExpandKeyList
および -KeysFilter "current"
パラメーターを使用して、プライマリ データベースで現在使用されているキーのリストを事前入力します。 すべてのキーを取得する場合は -KeysFilter
を除外します。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
New-AzSqlDatabaseSecondary コマンドを使用して新しいデータベースをセカンダリとして作成し、ソース データベースから取得したキーの事前入力されたリストと上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を、-KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
(さらに必要に応じて -FederatedClientId
) パラメーターを使用して、API 呼び出しで提供します。
# Create a secondary replica with Active Geo Replication with the same name as the primary database
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
$database | New-AzSqlDatabaseSecondary -PartnerResourceGroupName <SecondaryResourceGroupName> -PartnerServerName <SecondaryServerName> -AllowConnections "All" -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
データベースのコピーを作成するには、New-AzSqlDatabaseCopy を同じパラメーターで使用できます。
# Create a copy of a database configured with database level customer-managed keys
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter "current"
New-AzSqlDatabaseCopy -CopyDatabaseName <CopyDatabaseName> -CopyResourceGroupName <CopyResourceGroupName> -CopyServerName <CopyServerName> -DatabaseName <DatabaseName> -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -AssignIdentity -UserAssignedIdentityId <UserAssignedIdentityId> -EncryptionProtector <CustomerManagedKeyId> -FederatedClientId <FederatedClientId>
-KeyList $database.Keys.Keys
次に示すのは、セカンダリ レプリカを作成し、ユーザー割り当てマネージド ID とカスタマー マネージド TDE で構成された Azure SQL Database のコピーをデータベース レベルで作成する ARM テンプレートの例です。
ARM テンプレートの詳細については、「Azure SQL Database および SQL Managed Instance 用 Azure Resource Manager テンプレート 」を参照してください。
Azure portal のカスタム デプロイ を使用し、エディターで独自のテンプレートを作成 します。 次に、例に貼り付けたら、構成を保存 します。
次の REST API 要求を使用して、プライマリ データベースで現在使用されているキーのリストを事前入力します。
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
新しいデータベースをセカンダリとして作成し、ソース データベースから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を、ARM テンプレートで keys_to_add
パラメーターとして提供します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"source_database_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2022-08-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"createMode": "Secondary",
"sourceDatabaseId": "[parameters('source_database_id')]"
}
}
]
}
encryption_protector
と keys_to_add
のパラメーターの例を次に示します。
"keys_to_add": {
"value": {
"https://yourvault.vault.azure.net/keys/yourkey1/fd021f84a0d94d43b8ef33154bca0000": {},
"https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000": {}
}
},
"encryption_protector": {
"value": "https://yourvault.vault.azure.net/keys/yourkey2/fd021f84a0d94d43b8ef33154bca0000"
}
データベースのコピーを作成するには、次のテンプレートを同じパラメーターで使用します。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"server_name": {
"type": "String"
},
"database_name": {
"type": "String"
},
"user_assigned_identity": {
"type": "String"
},
"encryption_protector": {
"type": "String"
},
"location": {
"type": "String"
},
"source_database_id": {
"type": "String"
},
"keys_to_add": {
"type": "Object"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Sql/servers/databases",
"apiVersion": "2022-08-01-preview",
"name": "[concat(parameters('server_name'), concat('/',parameters('database_name')))]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic",
"tier": "Basic",
"capacity": 5
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[parameters('user_assigned_identity')]": {}
}
},
"properties": {
"collation": "SQL_Latin1_General_CP1_CI_AS",
"maxSizeBytes": 104857600,
"catalogCollation": "SQL_Latin1_General_CP1_CI_AS",
"zoneRedundant": false,
"readScale": "Disabled",
"requestedBackupStorageRedundancy": "Geo",
"maintenanceConfigurationId": "/subscriptions/e1775f9f-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
"isLedgerOn": false,
"encryptionProtector": "[parameters('encryption_protector')]",
"keys": "[parameters('keys_to_add')]",
"createMode": "Copy",
"sourceDatabaseId": "[parameters('source_database_id')]"
}
}
]
}
データベース レベルのカスタマー マネージド キーを使用して Azure SQL Database を復元する
このセクションでは、データベース レベルのカスタマー マネージド キーで構成された Azure SQL Database を復元するステップについて説明します。 ユーザー割り当てマネージド ID は、データベース作成フェーズの間に Transparent Data Encryption 用にカスタマー マネージド キーを設定するために必要です。
ポイントインタイム リストア
次のセクションでは、データベース レベルのカスタマー マネージド キーで構成されたデータベースを特定の時点に復元する方法について説明します。 SQL Database のバックアップ回復の詳細については、SQL Database のデータベース回復 に関する記事を参照してください。
Azure portal に移動し、復元したいデータベース レベルのカスタマー マネージド キーで構成された Azure SQL データベースに移動します。
データベースを特定の時点に復元するには、データベースの [概要] メニューから [復元] を選択します。
[SQL データベースの作成 - データベースの復元] メニューが表示されます。 必要なソースとデータベースの詳細を入力します。 [Transparent Data Encryption キー管理] セクションで、[Transparent Data Encryption の構成] を選択します。
[Transparent Data Encryption] メニューが表示されたら、データベースの CMK 設定を確認します。 設定とキーには、復元しようとしているデータベースで使用されているのと同じ ID とキーを設定する必要があります。
[適用] を選択して次に進んでから、[確認と作成] 、[作成] の順に選択してコピー データベースを作成します。
Azure CLI の現在のリリースのインストールについては、Azure CLI のインストール に関する記事を参照してください。
expand-keys
パラメーターと復元ポイント keys-filter
を使用して、プライマリ データベースで使用されるキーのリストを事前入力します。
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
新しいデータベースを復元先として作成し、ソース データベースから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を提供します。
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
重要
$keys は、ソース データベースから取得されたキーのスペース区切りリストです。
Az PowerShell モジュールのインストール手順については、Azure PowerShell のインストール を参照してください。 具体的なコマンドレットについては、「AzureRM.Sql 」を参照してください。
Get-AzSqlDatabase コマンドと、-ExpandKeyList
および -KeysFilter "2023-01-01"
のパラメーター (2023-01-01
は、データベースを復元する時点の例です) を使用して、プライマリ データベースで使用されるキーのリストを事前入力します。 すべてのキーを取得する場合は -KeysFilter
を除外します。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
Restore-AzSqlDatabase コマンドを -FromPointInTimeBackup
パラメーターと共に使用し、上記のステップから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を、-KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
(および必要に応じて -FederatedClientId
) パラメーターを使用して API 呼び出しで提供します。
$database = Get-AzSqlDatabase -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <DatabaseName> -ExpandKeyList -KeysFilter <Timestamp>
# Create a restored database
Restore-AzSqlDatabase -FromPointInTimeBackup -PointInTime <Timestamp> -ResourceId '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}' -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
削除済みのデータベースの復元
次のセクションでは、データベース レベルのカスタマー マネージド キーで構成された削除済みのデータベースを復元する方法について説明します。 SQL Database のバックアップ回復の詳細については、SQL Database のデータベース回復 に関する記事を参照してください。
Azure portal に移動し、復元したい削除されたデータベースの論理サーバーに移動します。 [データ管理] で [削除されたデータベース] を選択します。
復元する削除済みデータベースを選択します。
[SQL データベースの作成 - データベースの復元] メニューが表示されます。 必要なソースとデータベースの詳細を入力します。 [Transparent Data Encryption キー管理] セクションで、[Transparent Data Encryption の構成] を選択します。
[Transparent Data Encryption] メニューが表示されたら、データベースの [ユーザー割り当てマネージド ID] 、[カスタマー マネージド キー] 、[その他のデータベース キー] セクションを構成します。
[適用] を選択して次に進んでから、[確認と作成] 、[作成] の順に選択してコピー データベースを作成します。
Azure CLI の現在のリリースのインストールについては、Azure CLI のインストール に関する記事を参照してください。
expand-keys
パラメーターを使用して、削除済みのデータベースで使用されるキーのリストを事前に入力します。 ソース データベースで使用されていたすべてのキーを渡すことをお勧めします。 また、keys-filter
パラメーターを使用して、削除時に提供されたキーを使用して復元を試みることもできます。
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
重要
restorable-dropped-database-id
は、復元可能なすべての削除済みデータベースをサーバーに一覧表示することで取得でき、databaseName,deletedTimestamp
の形式になります。
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
新しいデータベースを復元先として作成し、削除済みのソース データベースから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を提供します。
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
重要
$keys
は、ソース データベースから取得されたキーのスペース区切りリストです。
Az PowerShell モジュールのインストール手順については、Azure PowerShell のインストール を参照してください。 具体的なコマンドレットについては、「AzureRM.Sql 」を参照してください。
Get-AzSqlDeletedDatabaseBackup コマンドと -ExpandKeyList
パラメーターを使用して、プライマリ データベースで使用されるキーのリストを事前に入力します。 ソース データベースで使用されていたすべてのキーを渡すことをお勧めします。 また、-KeysFilter
パラメーターを使用して、削除時に提供されたキーを使用して復元を試みることもできます。
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate "2/6/2023" -DatabaseName <databaseName>
重要
DatabaseId
は、復元可能なすべての削除済みデータベースをサーバーに一覧表示することで取得でき、databaseName,deletedTimestamp
の形式になります。
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
Restore-AzSqlDatabase コマンドを -FromDeletedDatabaseBackup
パラメーターと共に使用し、上記のステップから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を、-KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
(および必要に応じて -FederatedClientId
) パラメーターを使用して API 呼び出しで提供します。
$database = Get-AzSqlDeletedDatabaseBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseId "dbName,133201549661600000" -ExpandKeyList -DeletionDate <DeletionDate> -DatabaseName <databaseName>
# Create a restored database
Restore-AzSqlDatabase -FromDeletedDatabaseBackup -DeletionDate <Timestamp> -ResourceId '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/restorableDroppedDatabases/{databaseName}' -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
geo リストア
次のセクションでは、データベース レベルのカスタマー マネージド キーで構成されたデータベースの geo レプリケートされたバックアップを復元する方法について説明します。 SQL Database のバックアップ回復の詳細については、SQL Database のデータベース回復 に関する記事を参照してください。
Azure portal に移動し、データベースを復元したい論理サーバーに移動します。
[概要] メニューの [データベースの作成] を選択します。
[SQL データベースの作成] メニューが表示されます。 新しいデータベースの [基本] タブと [ネットワーク] タブを入力します。 [追加の設定] で、[既存データの使用] セクションの [バックアップ] を選択し、geo レプリケーションされたバックアップを選択します。
[セキュリティ] に移動します。[Transparent Data Encryption キー管理] セクションで、[Transparent Data Encryption の構成] を選択します。
[Transparent Data Encryption] メニューが表示されたら、[データベース レベル カスタマー マネージド キー (CMK)] を選択します。 ユーザー割り当てマネージド ID 、カスタマー マネージド キー 、および追加のデータベース キー は、復元したいソース データベースと一致している必要があります。 ユーザー割り当てマネージド ID が、バックアップで使用されたカスタマー マネージド キーを含むキー コンテナーにアクセスできることを確認します。
[適用] を選択して次に進んでから、[確認と作成] 、[作成] の順に選択してバックアップ データベースを作成します。
Azure CLI の現在のリリースのインストールについては、Azure CLI のインストール に関する記事を参照してください。
expand-keys
パラメーターを使用して、データベース レベルのカスタマー マネージド キーで構成されたデータベースの geo バックアップで使用されるキーのリストを事前入力します。
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
新しいデータベースを geo 復元先として作成し、削除済みのソース データベースから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を提供します。
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
重要
$keys
は、ソース データベースから取得されたキーのスペース区切りリストです。
Az PowerShell モジュールのインストール手順については、Azure PowerShell のインストール を参照してください。 具体的なコマンドレットについては、「AzureRM.Sql 」を参照してください。
Get-AzSqlDatabaseGeoBackup コマンドと、すべてのキーを取得する -ExpandKeyList
を使用して、プライマリ データベースで使用されるキーのリストを事前入力します。
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
重要
DatabaseId
は、復元可能なすべての削除済みデータベースをサーバーに一覧表示することで取得でき、databaseName,deletedTimestamp
の形式になります。
ユーザー割り当てマネージド ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を選択します。
Restore-AzSqlDatabase コマンドを -FromGeoBackup
パラメーターと共に使用し、上記のステップから取得したキーの事前入力されたリストと、上記の ID (およびテナント間アクセスを構成する場合はフェデレーション クライアント ID) を、-KeyList
、-AssignIdentity
、-UserAssignedIdentityId
、-EncryptionProtector
(および必要に応じて -FederatedClientId
) パラメーターを使用して API 呼び出しで提供します。
$database = Get-AzSqlDatabaseGeoBackup -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -DatabaseName <databaseName> -ExpandKeyList
# Create a restored database
Restore-AzSqlDatabase -FromGeoBackup -ResourceId "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" -ResourceGroupName <ResourceGroupName> -ServerName <ServerName> -TargetDatabaseName <TargetDatabaseName> -KeyList $database.Keys.Keys -EncryptionProtector <EncryptionProtector> -UserAssignedIdentityId <UserAssignedIdentityId> -AssignIdentity
重要
長期保有 (LTR) バックアップでは、バックアップで使用されるキーのリストは提供されません。 LTR バックアップを復元するには、ソース データベースで使用されるすべてのキーを LTR 復元先に渡す必要があります。
コピーまたは復元されたデータベースのキーの自動ローテーション オプション
新しくコピーまたは復元されたデータベースは、透過的なデータ暗号化に使用されるカスタマー マネージド キーを自動的にローテーションするように構成できます。 Azure portal または API を使用してキーの自動ローテーションを有効にする方法については、「データベース レベルでの自動キーローテーション 」を参照してください。
次のステップ
さまざまなデータベース レベルの CMK 操作に関する次のドキュメントを確認してください。