Extended Server Blob Auditing Policies - Create Or Update

확장 서버의 Blob 감사 정책을 만들거나 업데이트합니다.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/extendedAuditingSettings/default?api-version=2021-11-01

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
blobAuditingPolicyName
path True

blobAuditingPolicyName

Blob 감사 정책의 이름입니다.

resourceGroupName
path True

string

리소스를 포함하는 리소스 그룹의 이름입니다. Azure 리소스 관리자 API 또는 포털에서 이 값을 가져올 수 있습니다.

serverName
path True

string

서버의 이름입니다.

subscriptionId
path True

string

Azure 구독을 식별하는 구독 ID입니다.

api-version
query True

string

요청에 사용할 API 버전입니다.

요청 본문

Name 필수 형식 Description
properties.state True

BlobAuditingPolicyState

감사 상태를 지정합니다. 상태가 사용인 경우 storageEndpoint 또는 isAzureMonitorTargetEnabled가 필요합니다.

properties.auditActionsAndGroups

string[]

감사할 Actions-Groups 및 작업을 지정합니다.

사용할 권장 작업 그룹 집합은 다음 조합입니다. 이 조합은 데이터베이스에 대해 실행된 모든 쿼리 및 저장 프로시저와 성공 및 실패한 로그인을 감사합니다.

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

위의 조합은 Azure Portal 감사를 사용하도록 설정할 때 기본적으로 구성된 집합이기도 합니다.

감사할 지원되는 작업 그룹은 (참고: 감사 요구 사항을 다루는 특정 그룹만 선택합니다. 불필요한 그룹을 사용하면 매우 많은 양의 감사 레코드가 발생할 수 있습니다.

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

이러한 그룹은 데이터베이스에 대해 실행되는 모든 sql 문 및 저장 프로시저를 포함하는 그룹이며, 중복 감사 로그가 발생하므로 다른 그룹과 함께 사용하면 안 됩니다.

자세한 내용은 데이터베이스 수준 감사 작업 그룹을 참조하세요.

데이터베이스 감사 정책의 경우 특정 작업을 지정할 수도 있습니다(서버 감사 정책에 대해 작업을 지정할 수 없음). 감사할 수 있는 작업은 SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES입니다.

감사할 작업을 정의하는 일반적인 양식은 {action} ON {object} BY {principal}입니다.

위의 형식에서는 테이블, 뷰 또는 저장 프로시저와 같은 개체 또는 전체 데이터베이스 또는 스키마를 참조할 수 있습니다. 후자의 경우 각각 DATABASE::{db_name} 및 SCHEMA::{schema_name} 형식이 사용됩니다.

예: Dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

자세한 내용은 데이터베이스 수준 감사 작업을 참조하세요.

properties.isAzureMonitorTargetEnabled

boolean

감사 이벤트를 Azure Monitor로 보낼지 여부를 지정합니다. Azure Monitor에 이벤트를 보내려면 'State'를 'Enabled'로, 'IsAzureMonitorTargetEnabled'를 true로 지정합니다.

REST API를 사용하여 감사를 구성하는 경우 데이터베이스에 'SQLSecurityAuditEvents' 진단 로그 범주가 있는 진단 설정도 만들어야 합니다. 서버 수준 감사의 경우 'master' 데이터베이스를 {databaseName}으로 사용해야 합니다.

진단 설정 URI 형식: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

자세한 내용은 진단 설정 REST API 또는 진단 설정 PowerShell을 참조하세요.

properties.isDevopsAuditEnabled

boolean

devops 감사의 상태를 지정합니다. 상태가 사용이면 devops 로그가 Azure Monitor로 전송됩니다. Azure Monitor에 이벤트를 보내려면 'State'를 'Enabled'로, 'IsAzureMonitorTargetEnabled'를 true로, 'IsDevopsAuditEnabled'를 true로 지정합니다.

REST API를 사용하여 감사를 구성하는 경우 master 데이터베이스에서 'DevOpsOperationsAudit' 진단 로그 범주가 있는 진단 설정도 만들어야 합니다.

진단 설정 URI 형식: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

자세한 내용은 진단 설정 REST API 또는 진단 설정 PowerShell을 참조하세요.

properties.isManagedIdentityInUse

boolean

관리 ID를 사용하여 Blob Storage에 액세스할지 여부를 지정합니다.

properties.isStorageSecondaryKeyInUse

boolean

storageAccountAccessKey 값이 스토리지의 보조 키인지 여부를 지정합니다.

properties.predicateExpression

string

감사를 만들 때 where 절의 조건을 지정합니다.

properties.queueDelayMs

integer

감사 동작이 강제 처리되기 전까지 허용되는 시간(밀리초)을 지정합니다. 최소값은 1000입니다. 이 값은 1초에 해당하며 기본값입니다. 최대값은 2,147,483,647입니다.

properties.retentionDays

integer

스토리지 계정의 감사 로그에 유지할 일 수를 지정합니다.

properties.storageAccountAccessKey

string

감사 스토리지 계정의 식별자 키를 지정합니다. 상태가 Enabled이고 storageEndpoint가 지정된 경우 storageAccountAccessKey를 지정하지 않으면 SQL Server 시스템 할당 관리 ID를 사용하여 스토리지에 액세스합니다. 관리 ID 인증을 사용하기 위한 필수 구성 요소:

  1. AAD(Azure Active Directory)에서 시스템 할당 관리 ID를 SQL Server 할당합니다.
  2. 서버 ID에 'Storage Blob 데이터 기여자' RBAC 역할을 추가하여 SQL Server ID에 스토리지 계정에 대한 액세스 권한을 부여합니다. 자세한 내용은 관리 ID 인증을 사용하여 스토리지에 대한 감사를 참조하세요.
properties.storageAccountSubscriptionId

string

Blob Storage 구독 ID를 지정합니다.

properties.storageEndpoint

string

Blob Storage 엔드포인트를 지정합니다(예: https://MyAccount.blob.core.windows.net). 상태가 사용인 경우 storageEndpoint 또는 isAzureMonitorTargetEnabled가 필요합니다.

응답

Name 형식 Description
200 OK

ExtendedServerBlobAuditingPolicy

확장된 감사 설정을 업데이트했습니다.

202 Accepted

확장 감사 설정 업데이트가 진행 중입니다.

Other Status Codes

오류 응답: ***

  • 400 InvalidServerBlobAuditingPolicyCreateRequest - 서버 Blob 감사 정책 만들기 요청이 없거나 속성 개체가 없습니다.

  • 400 InvalidBlobAuditActionsAndGroups - 잘못된 감사 작업 또는 작업 그룹입니다.

  • 400 DataSecurityInvalidUserSuppliedParameter - 클라이언트에서 잘못된 매개 변수 값을 제공했습니다.

  • 400 BlobAuditingPredicateExpressionEmpty - 'predicateExpression' 매개 변수가 잘못되었습니다. 값을 비울 수 없습니다.

  • 400 BlobAuditingInvalidStorageAccountCredentials - 제공된 스토리지 계정 또는 액세스 키가 잘못되었습니다.

  • 400 InvalidBlobAuditActionsAndGroups - 잘못된 감사 작업 또는 작업 그룹입니다.

  • 400 InsufficientDiskSpaceForAuditing - 데이터베이스에 감사 메타데이터를 저장할 디스크 공간이 부족합니다.

  • 400 InvalidBlobAuditActions - 잘못된 감사 작업

  • 404 SubscriptionDoesNotHaveServer - 요청된 서버를 찾을 수 없습니다.

  • 404 ServerNotInSubscriptionResourceGroup - 지정된 서버가 지정된 리소스 그룹 및 구독에 없습니다.

  • 404 OperationIdNotFound - ID가 있는 작업이 없습니다.

  • 409 ServerBlobAuditingPolicyInProgress - 서버 Blob 감사 설정이 이미 진행 중입니다.

  • 409 OperationCancelled - 사용자가 작업을 취소했습니다.

  • 409 OperationInterrupted - 동일한 리소스의 다른 작업에 의해 중단되었으므로 리소스에 대한 작업을 완료할 수 없습니다.

  • 429 SubscriptionTooManyCreateUpdateRequests - 사용 가능한 리소스에서 처리할 수 있는 최대 요청을 초과하는 요청입니다.

  • 429 SubscriptionTooManyRequests - 사용 가능한 리소스에서 처리할 수 있는 최대 요청을 초과하는 요청입니다.

  • 500 OperationTimedOut - 작업 시간이 초과되고 자동으로 롤백됩니다. 작업을 다시 시도하세요.

  • 503 TooManyRequests - 사용 가능한 리소스에서 처리할 수 있는 최대 요청을 초과하는 요청입니다.

예제

Update a server's extended blob auditing policy with all parameters
Update a server's extended blob auditing policy with minimal parameters

Update a server's extended blob auditing policy with all parameters

Sample Request

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "predicateExpression": "object_name = 'SensitiveData'",
    "isAzureMonitorTargetEnabled": true
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "predicateExpression": "object_name = 'SensitiveData'",
    "isAzureMonitorTargetEnabled": true
  }
}

Update a server's extended blob auditing policy with minimal parameters

Sample Request

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}

Sample Response

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/extendedAuditingSettings/default",
  "name": "default",
  "type": "Microsoft.Sql/servers/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": false
  }
}

정의

Name Description
blobAuditingPolicyName

Blob 감사 정책의 이름입니다.

BlobAuditingPolicyState

감사 상태를 지정합니다. 상태가 사용인 경우 storageEndpoint 또는 isAzureMonitorTargetEnabled가 필요합니다.

ExtendedServerBlobAuditingPolicy

확장 서버 Blob 감사 정책입니다.

blobAuditingPolicyName

Blob 감사 정책의 이름입니다.

Name 형식 Description
default

string

BlobAuditingPolicyState

감사 상태를 지정합니다. 상태가 사용인 경우 storageEndpoint 또는 isAzureMonitorTargetEnabled가 필요합니다.

Name 형식 Description
Disabled

string

Enabled

string

ExtendedServerBlobAuditingPolicy

확장 서버 Blob 감사 정책입니다.

Name 형식 Description
id

string

리소스 ID입니다.

name

string

리소스 이름입니다.

properties.auditActionsAndGroups

string[]

감사할 Actions-Groups 및 작업을 지정합니다.

사용할 권장 작업 그룹 집합은 다음 조합입니다. 이 조합은 데이터베이스에 대해 실행된 모든 쿼리 및 저장 프로시저와 성공 및 실패한 로그인을 감사합니다.

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

위의 조합은 Azure Portal 감사를 사용하도록 설정할 때 기본적으로 구성된 집합이기도 합니다.

감사할 지원되는 작업 그룹은 (참고: 감사 요구 사항을 다루는 특정 그룹만 선택합니다. 불필요한 그룹을 사용하면 매우 많은 양의 감사 레코드가 발생할 수 있습니다.

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

이러한 그룹은 데이터베이스에 대해 실행되는 모든 sql 문 및 저장 프로시저를 포함하는 그룹이며, 중복 감사 로그가 발생하므로 다른 그룹과 함께 사용하면 안 됩니다.

자세한 내용은 데이터베이스 수준 감사 작업 그룹을 참조하세요.

데이터베이스 감사 정책의 경우 특정 작업을 지정할 수도 있습니다(서버 감사 정책에 대해 작업을 지정할 수 없음). 감사할 수 있는 작업은 SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES입니다.

감사할 작업을 정의하는 일반적인 양식은 {action} ON {object} BY {principal}입니다.

위의 형식에서는 테이블, 뷰 또는 저장 프로시저와 같은 개체 또는 전체 데이터베이스 또는 스키마를 참조할 수 있습니다. 후자의 경우 각각 DATABASE::{db_name} 및 SCHEMA::{schema_name} 형식이 사용됩니다.

예: Dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

자세한 내용은 데이터베이스 수준 감사 작업을 참조하세요.

properties.isAzureMonitorTargetEnabled

boolean

감사 이벤트를 Azure Monitor로 보낼지 여부를 지정합니다. Azure Monitor에 이벤트를 보내려면 'State'를 'Enabled'로, 'IsAzureMonitorTargetEnabled'를 true로 지정합니다.

REST API를 사용하여 감사를 구성하는 경우 데이터베이스에 'SQLSecurityAuditEvents' 진단 로그 범주가 있는 진단 설정도 만들어야 합니다. 서버 수준 감사의 경우 'master' 데이터베이스를 {databaseName}으로 사용해야 합니다.

진단 설정 URI 형식: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

자세한 내용은 진단 설정 REST API 또는 진단 설정 PowerShell을 참조하세요.

properties.isDevopsAuditEnabled

boolean

devops 감사의 상태를 지정합니다. 상태가 사용이면 devops 로그가 Azure Monitor로 전송됩니다. Azure Monitor에 이벤트를 보내려면 'State'를 'Enabled'로, 'IsAzureMonitorTargetEnabled'를 true로, 'IsDevopsAuditEnabled'를 true로 지정합니다.

REST API를 사용하여 감사를 구성하는 경우 master 데이터베이스에서 'DevOpsOperationsAudit' 진단 로그 범주가 있는 진단 설정도 만들어야 합니다.

진단 설정 URI 형식: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

자세한 내용은 진단 설정 REST API 또는 진단 설정 PowerShell을 참조하세요.

properties.isManagedIdentityInUse

boolean

관리 ID를 사용하여 Blob Storage에 액세스할지 여부를 지정합니다.

properties.isStorageSecondaryKeyInUse

boolean

storageAccountAccessKey 값이 스토리지의 보조 키인지 여부를 지정합니다.

properties.predicateExpression

string

감사를 만들 때 where 절의 조건을 지정합니다.

properties.queueDelayMs

integer

감사 동작이 강제 처리되기 전까지 허용되는 시간(밀리초)을 지정합니다. 최소값은 1000입니다. 이 값은 1초에 해당하며 기본값입니다. 최대값은 2,147,483,647입니다.

properties.retentionDays

integer

스토리지 계정의 감사 로그에 유지할 일 수를 지정합니다.

properties.state

BlobAuditingPolicyState

감사 상태를 지정합니다. 상태가 사용인 경우 storageEndpoint 또는 isAzureMonitorTargetEnabled가 필요합니다.

properties.storageAccountAccessKey

string

감사 스토리지 계정의 식별자 키를 지정합니다. 상태가 Enabled이고 storageEndpoint가 지정된 경우 storageAccountAccessKey를 지정하지 않으면 SQL Server 시스템 할당 관리 ID를 사용하여 스토리지에 액세스합니다. 관리 ID 인증을 사용하기 위한 필수 구성 요소:

  1. AAD(Azure Active Directory)에서 시스템 할당 관리 ID를 SQL Server 할당합니다.
  2. 서버 ID에 'Storage Blob 데이터 기여자' RBAC 역할을 추가하여 SQL Server ID에 스토리지 계정에 대한 액세스 권한을 부여합니다. 자세한 내용은 관리 ID 인증을 사용하여 스토리지에 대한 감사를 참조하세요.
properties.storageAccountSubscriptionId

string

Blob Storage 구독 ID를 지정합니다.

properties.storageEndpoint

string

Blob Storage 엔드포인트를 지정합니다(예: https://MyAccount.blob.core.windows.net). 상태가 사용인 경우 storageEndpoint 또는 isAzureMonitorTargetEnabled가 필요합니다.

type

string

리소스 종류.