Microsoft.Sql/servers/auditingSettings запрашивает доступ к StorageBlobContributor для учетной записи хранения без виртуальной сети.

Я развертываю SQL Server через шаблон ARM. При настройке параметров аудита для этого сервера sql с учетной записью хранения запрашиваются разрешения.

Согласно link нам нужны разрешения, ТОЛЬКО когда учетная запись хранения находится за брандмауэром. Однако моя учетная запись хранения открыта для Интернета, поэтому предварительное требование разрешения не должно применяться здесь.

Я использовал командлет Powershell «Set-AzSqlServerAudit», чтобы установить эту конфигурацию, и она работает. Но это не работает в шаблоне ARM.

Фрагмент шаблона:

{
            "type": "Microsoft.Sql/servers/auditingSettings",
            "apiVersion": "2020-08-01-preview",
            "name": "[concat(parameters('serverName'), '/Default')]",
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('serverName'))]"
            ],
            "properties": {
                "isDevopsAuditEnabled": false,
                "retentionDays": 0,
                "auditActionsAndGroups": [
                    "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
                    "FAILED_DATABASE_AUTHENTICATION_GROUP",
                    "BATCH_COMPLETED_GROUP"
                ],
                "isStorageSecondaryKeyInUse": false,
                "isAzureMonitorTargetEnabled": false,
                "state": "Enabled",
                "storageEndpoint": "[parameters('centralMonitoringStorageAccount')]",
                "storageAccountSubscriptionId": "[parameters('centralMonitoringStorageAccountSubscriptionId')]"
            }
        },

Ошибка:

New-AzResourceGroupDeployment : 4:37:56 AM - Resource Microsoft.Sql/servers/auditingSettings 'coe-extollo-apis-sqlserver-dev/Default' failed with message '{
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "BlobAuditingInsufficientStorageAccountPermissions",
        "message": "Insufficient read or write permissions on storage account 'xtocoeeucommonsdev'. Add permissions to the server Identity to the storage account."
      }
    ]
  }
}'

person Manjunath Rao    schedule 26.03.2021    source источник


Ответы (1)


Что касается проблемы, вы не добавляете storageAccountAccessKey в свой шаблон, тогда у SQL-сервера нет разрешений на доступ к учетной записи хранения. Если вы не добавите его, необходимо включить удостоверение на сервере SQL Azure и назначить Storage Blob Data Contributor удостоверению на уровне учетной записи хранения. Затем SQL может иметь разрешения на доступ к учетной записи хранения. Дополнительные сведения см. на здесь. . введите здесь описание изображения

Поэтому, пожалуйста, обновите свой шаблон, как показано ниже.

{
            "type": "Microsoft.Sql/servers/auditingSettings",
            "apiVersion": "2020-08-01-preview",
            "name": "[concat(parameters('serverName'), '/Default')]",
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('serverName'))]"
            ],
            "properties": {
                "isDevopsAuditEnabled": false,
                "retentionDays": 0,
                "auditActionsAndGroups": [
                    "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
                    "FAILED_DATABASE_AUTHENTICATION_GROUP",
                    "BATCH_COMPLETED_GROUP"
                ],
                "isStorageSecondaryKeyInUse": false,
                "isAzureMonitorTargetEnabled": false,
                "state": "Enabled",
                "storageEndpoint": "[parameters('centralMonitoringStorageAccount')]",
                "storageAccountAccessKey":"<account key>"
                "storageAccountSubscriptionId": "[parameters('centralMonitoringStorageAccountSubscriptionId')]"
            }
        },

person Jim Xu    schedule 26.03.2021