/// <summary> /// Changes the server auditing policy with new values /// </summary> private void ChangeBlobAuditPolicy(BlobAuditingProperties properties) { properties.RetentionDays = 10; properties.AuditActionsAndGroups = new List <string> { "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP" }; }
/// <summary> /// Takes the cmdlets model object and transform it to the policy as expected by the endpoint /// </summary> /// <param name="model">The AuditingPolicy model object</param> /// <param name="storageEndpointSuffix">The suffix of the storage endpoint</param> /// <returns>The communication model object</returns> private BlobAuditingCreateOrUpdateParameters PolicizeBlobAuditingModel(BaseBlobAuditingPolicyModel model, string storageEndpointSuffix) { var updateParameters = new BlobAuditingCreateOrUpdateParameters(); var properties = new BlobAuditingProperties(); updateParameters.Properties = properties; properties.State = model.AuditState.ToString(); if (!IgnoreStorage && (model.AuditState == AuditStateType.Enabled)) { properties.StorageEndpoint = ExtractStorageAccountName(model, storageEndpointSuffix); properties.StorageAccountAccessKey = Subscription.GetId().Equals(model.StorageAccountSubscriptionId) ? ExtractStorageAccountKey(model.StorageAccountName, model.StorageKeyType) : ExtractStorageAccountKey(model.StorageAccountSubscriptionId, model.StorageAccountName, model.StorageKeyType); properties.IsStorageSecondaryKeyInUse = model.StorageKeyType == StorageKeyKind.Secondary; properties.StorageAccountSubscriptionId = Subscription.GetId().Equals(model.StorageAccountSubscriptionId) ? ExtractStorageAccountSubscriptionId(model.StorageAccountName) : model.StorageAccountSubscriptionId.ToString(); } properties.AuditActionsAndGroups = ExtractAuditActionsAndGroups(model); if (model.RetentionInDays != null) { properties.RetentionDays = (int)model.RetentionInDays; } return(updateParameters); }
/// <summary> /// Creates and returns a BlobAuditingProperties object that holds the default settings for a database blob auditing policy /// </summary> /// <returns>A BlobAuditingProperties object with the default audit policy settings</returns> private BlobAuditingProperties GetDefaultBlobAuditProperties() { BlobAuditingProperties props = new BlobAuditingProperties { State = "Disabled", RetentionDays = 0, StorageAccountAccessKey = "", StorageEndpoint = "" }; return(props); }
/// <summary> /// Verify that the received properties match their expected values /// </summary> /// <param name="expected">The expected value of the properties object</param> /// <param name="actual">The properties object that needs to be checked</param> private static void VerifyAuditingPolicyInformation(BlobAuditingProperties expected, BlobAuditingProperties actual) { Assert.Equal(expected.State, actual.State); Assert.Equal(expected.RetentionDays, actual.RetentionDays); Assert.Equal(expected.StorageEndpoint, actual.StorageEndpoint); Assert.Equal(expected.StorageAccountAccessKey, actual.StorageAccountAccessKey); if (expected.AuditActionsAndGroups == null) { Assert.Equal(actual.AuditActionsAndGroups, null); } else { Assert.Equal(expected.AuditActionsAndGroups.Count, actual.AuditActionsAndGroups.Count); actual.AuditActionsAndGroups.ForEach(s => Assert.True(expected.AuditActionsAndGroups.Any(es => es.Equals(s)))); } }
/// <summary> /// Takes the cmdlets model object and transform it to the policy as expected by the endpoint /// </summary> /// <param name="model">The AuditingPolicy model object</param> /// <param name="storageEndpointSuffix">The suffix of the storage endpoint</param> /// <returns>The communication model object</returns> private BlobAuditingCreateOrUpdateParameters PolicizeBlobAuditingModel(BaseBlobAuditingPolicyModel model, string storageEndpointSuffix) { var updateParameters = new BlobAuditingCreateOrUpdateParameters(); var properties = new BlobAuditingProperties(); updateParameters.Properties = properties; properties.State = model.AuditState.ToString(); if (!IgnoreStorage) { properties.StorageEndpoint = ExtractStorageAccountName(model, storageEndpointSuffix); properties.StorageAccountAccessKey = ExtractStorageAccountKey(model.StorageAccountName); } properties.AuditActionsAndGroups = ExtractAuditActionsAndGroups(model); properties.RetentionDays = (int)model.RetentionInDays; return(updateParameters); }