Azure DevTest Labs から個人データをエクスポートまたは削除する

この記事では、Azure DevTest Labs サービスから個人データを削除およびエクスポートする手順を説明します。

DevTest Labs によって収集される個人データ

DevTest Labs では、ユーザーから 2 つの主な個人データが収集されます。 これらは、ユーザーの電子メール アドレスとユーザー オブジェクト ID です。 この情報は、サービスがラボ管理者とラボ ユーザーに現在の機能を提供するために不可欠です。

ユーザーの電子メール アドレス

DevTest Labs では、ユーザーの電子メール アドレスを使用して、ラボ ユーザーに自動シャットダウンの電子メール通知を送信します。 電子メールでは、ユーザーのマシンがシャットダウンされることをそのユーザーに通知します。 ユーザーは、必要に応じてシャットダウンを延期またはスキップできます。 電子メール アドレスは、ラボ レベルまたは VM レベルで構成します。

この個人データが必要な理由

DevTest Labs サービスでは、運用の目的で個人データを使用します。 このデータは、サービスが主要機能を提供するために不可欠です。 ユーザーの電子メール アドレスに対してアイテム保持ポリシーを設定した場合、ラボ ユーザーは、電子メール アドレスがシステムから削除された後、自動シャットダウンの電子メール通知をタイムリーに受信しません。 そのため、このデータは、ラボ内でユーザーのリソースがアクティブになっている限り保持する必要があります。

システムに個人情報を破棄させる方法

ラボ ユーザーは、ラボ内の対応するリソースを削除すると個人情報を削除できます。 DevTest Labs サービスは、ユーザーによって削除された個人データを 30 日後に匿名化します。

たとえば、VM を削除するか、メール アドレスを削除した場合、DevTest Labs サービスにより、リソースの削除から 30 日後にこのデータが匿名化されます。 削除後 30 日間のアイテム保持ポリシーによって、DevTest Labs からラボ管理者に正確な前月比コスト予測の提供が保証されます。

個人データのエクスポートを要求する方法

Azure PowerShell を使用して個人およびラボの利用状況データをエクスポートできます。 DevTest Labs は、名前に要求されたエクスポートの日付と時刻を含む csv ファイルとしてデータをエクスポートします。

Azure PowerShell

Param (
    [Parameter (Mandatory=$true, HelpMessage="The resource group name of the storage account")]
[string] $resourceGroupName,
	
	[Parameter (Mandatory=$true, HelpMessage="The subscription id of the storage account and DTL")]    
[string] $subscriptionId,

    [Parameter (Mandatory=$true, HelpMessage="The storage account name")]
[string] $storageAccountName,

    [Parameter (Mandatory=$true, HelpMessage="Expire time of the SAS Token")]
[string] $expiryTime,

    [Parameter (Mandatory=$true, HelpMessage="Date to pull data from")][string] $startTime,

    [Parameter (Mandatory=$true, HelpMessage="Name of the lab to export")]
[string] $labName,

    [Parameter (Mandatory=$true, HelpMessage="The desired SKU")]
[string] $desiredSKU,

    [Parameter (Mandatory=$true, HelpMessage="Protocol for SAS token generation")]
[string] $protocol,

    [Parameter (Mandatory=$true, HelpMessage="Permissions given for SAS token")]
[string] $permissions

# Log in 
Connect-AzAccount -UseDeviceAuthentication
 
# Set your subscription
Set-AzContext -SubscriptionId $subscriptionId
 
 
# Create a resource group and storage account
  New-AzStorageAccount -ResourceGroupName $resourceGroupName `
                     -Name $storageAccountName `
                     -Location $location `
                     -SkuName $desiredSKU
 
# Get storage account context
$storageAccountContext = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -AccountName $storageAccountName
$storageAccountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName
 
$Ctx = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKeys[0].Value

# Create blob container
$containerName = "exportlabresources"
New-AzStorageContainer -Name $containerName `
                       -Context $Ctx `
                       -Permission Off

# Get SAS token
$sasToken = New-AzStorageContainerSASToken `
-Context $Ctx `
-Name $containerName `
-StartTime (Get-Date) `
-ExpiryTime $expiryTime `
-Permission $permissions `
-Protocol $protocol

# Make blob endpoint
$blobEndpointWithSas = $storageAccountContext.Context.BlobEndPoint + $containerName+ "?" + $sasToken

# Invoke Export Job
$actionParameters = @{
    'blobStorageAbsoluteSasUri' = $blobEndpointWithSas    
}

$actionParameters.Add('usageStartDate', $startdate.Date.ToString())
 
$resourceId = "/subscriptions/" + $subscriptionId + "/resourceGroups/" + $resourceGroupName + "/providers/Microsoft.DevTestLab/labs/" + $labName + "/"
 
$result = Invoke-AzureRmResourceAction -Action 'ExportResourceUsage' -ResourceId $resourceId -Parameters $actionParameters -Force

上記のサンプルの主要なコンポーネントは次のとおりです。

  • Invoke-AzureRmResourceAction コマンド。

    Invoke-AzureRmResourceAction -Action 'ExportResourceUsage' -ResourceId $resourceId -Parameters $actionParameters -Force
    
  • 2 つのアクション パラメーター

    • blobStorageAbsoluteSasUri - Shared Access Signature (SAS) トークンを含むストレージ アカウントの URI。 PowerShell スクリプトでは、ストレージ キーの代わりにこの値を渡すことができます。
    • usageStartDate - データを取得する開始日。終了日は、アクションが実行された現在の日付です。 粒度は日単位なので、時間情報を追加しても無視されます。

次のステップ

次の記事を参照してください: