Как удалить контейнер аренды с журналом аудита в Azure?

Здесь есть несколько вопросов по Stackoverflow по этому поводу, но все они связаны с арендой из-за виртуальной машины и ее дисков. Тогда ответ - сначала удалить диск, чтобы иметь возможность удалить учетную запись / контейнер хранения.

Пример: Как удалить Учетная запись хранения Azure, содержащая арендованный большой двоичный объект?

Моя проблема в том, что у меня есть настраиваемый журнал аудита, в котором мы использовали арендованный контейнер (мы не хотим, чтобы кто-либо манипулировал журналами obv.). Но мы переместили эти журналы в другое место, поэтому теперь я хочу удалить старый ресурс. Но не удалось из-за блокировки в аренде.

Скорее всего, это из-за того, что я не понимаю, как работает аренда. Моя первая попытка заключалась в том, чтобы разорвать договор аренды и разблокировать .. Это было сделано:

введите здесь описание изображения

Я предполагал, что могу удалить ресурс сейчас, но все равно получаю сообщение об ошибке:

«Не удалось удалить 1 из 1 контейнера (ов): auditlog-container: ContainerProtectedFromDeletion: контейнер stgutauditlog учетной записи хранения auditlog-container защищен от удаления из-за ImmutabilityPolicy».

Поэтому, глядя на эту ImmutablePolicy, я попробовал Контейнеры BLOB-объектов - Удалить политику неизменности, но появилось сообщение об ошибке:

{
  "error": {
    "code": "ContainerImmutabilityPolicyFailure",
    "message": "Operation not allowed on immutability policy with incorrect etag."
  }
}

Глядя на eTag, вы должны указать версию eTag (только параметр, связанный с eTag) в заголовке If-Match. Но я попытался добавить eTag, попробовал * и другие, но все равно сообщение.

Воспользовавшись командой Контейнеры BLOB-объектов - получить политику неизменности, попробуйте и получите eTag. Я получаю только eTag, который уже поставляется, и тому подобное.

{
  "id": "/subscriptions/<removed>/resourceGroups/<removed>/providers/Microsoft.Storage/storageAccounts/<removed>/blobServices/default/containers/auditlog-container/immutabilityPolicies/default",
  "name": "default",
  "type": "Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies",
  "etag": "\"<removed>\"",
  "properties": {
    "immutabilityPeriodSinceCreationInDays": 8,
    "state": "Locked"
  }
}

(В приведенном выше коде удалена некоторая информация о безопасности, помеченная как удаленная)

Здесь написано заблокировано ... А как мне снять эту блокировку ??

Также удаление файлов в нем невозможно, параметры выделены серым цветом:

введите здесь описание изображения

Я не знаю, что делать дальше или что я пропустил. Как удалить эту учетную запись хранения / контейнер?

Любая помощь приветствуется!


person JohanSellberg    schedule 08.01.2019    source источник


Ответы (2)


@Swippen, я попытался воспроизвести сценарий и получил следующие ошибки при попытке удалить контейнер с помощью PowerShell и проводника хранилища, где неизменяемая политика находится в заблокированном состоянии. policy1 policy Но когда я попытался с помощью портала удалить тот же контейнер. Он был успешно удален и работал у меня, не могли бы вы попробовать один раз удалить контейнер с помощью портала. policy3

Примечание: - Удаление заблокированной политики неизменяемости не разрешено, единственный способ - удалить контейнер после удаления всех больших двоичных объектов внутри контейнера.

person YASWANTH-MSFT    schedule 08.01.2019
comment
Думаю, моя проблема в вашем примечании .. Мои капли внутри контейнера не удаляются. (Я все еще получаю ошибку при попытке удалить контейнер на портале) Сначала я подумал, что не могу удалить файлы внутри контейнера ... но, похоже, я просто не могу удалить папки. когда я перехожу к файлу, который я могу удалить ... Думаю, мне просто нужно пройтись по всем папкам и сначала удалить все капли по отдельности .. - person JohanSellberg; 09.01.2019
comment
Да, это была проблема ... После того, как я удалил все отдельные капли, я смог удалить контейнер. Было бы неплохо иметь эту информацию в виде сообщения об ошибке или предупреждения .. Что контейнер должен быть пустым, чтобы его можно было удалить. В любом случае спасибо за помощь! - person JohanSellberg; 09.01.2019

Я предлагаю вам попробовать приведенный ниже сценарий Power Shell для удаления конкретного контейнера, если доступен статус аренды. Посмотри, поможет ли это тебе.

Login-AzureRmAccount
Set-AzureRmContext -SubscriptionID "yoursubscription id"
$ResourceGroupName = "your resourcegroup name"
$StorageAccountName = "your storage account name"
$StorageContainerNames = "container1, container2"

try{

## Get Storage Details
Write-Output ("Get Storage Account $StorageAccountName Keys")
$Keys = Get-AzureRmStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName;

Write-Output ("Get Storage Account $StorageAccountName Context")
$StorageContext = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $Keys[0].Value;

## Proccess Each Container
$StorageContainerNames.Split(",") | ForEach {       

    $currentContainer = $_

    Write-Output ("Start Remove for Container $currentContainer")

    ## Remove Container
    if ((Get-AzureStorageContainer -Context $StorageContext | Where-Object { $_.Name -eq $currentContainer })){           

        ## Remove a Blob Container in the Storage Account
        Write-Output ("Removing Container: $currentContainer")
        Remove-AzureStorageContainer -Context $StorageContext -Name $currentContainer -Force;
        Write-Output ("Container $currentContainer Removed")           

    }
    else {

        Write-Warning "Container $currentContainer doesn't exists."

    }
}
}catch {

Write-Error "$_.Exception.Message"

} 
person YASWANTH-MSFT    schedule 08.01.2019
comment
Спасибо за предложение, но сценарий PowerShell по-прежнему выдает ошибку, аналогичную ошибке портала: Remove-AzureStorageContainer: Fjärrservern replnerade ett fel: (409) Konflikt. Код состояния HTTP: 409 - Сообщение об ошибке HTTP: запрошенная операция не разрешена, поскольку у контейнера заблокирована политика неизменности. В строке: 28 знаков: 9 ... - person JohanSellberg; 08.01.2019