internal virtual void PolicizeStorageInfo(AuditModelType model, ProxyResource policy) { dynamic dynamicPolicy = (dynamic)policy; ExtractStorageAccountProperties(model.StorageAccountResourceId, out string storageAccountName, out Guid storageAccountSubscriptionId); dynamicPolicy.StorageEndpoint = GetStorageAccountEndpoint(storageAccountName); dynamicPolicy.StorageAccountSubscriptionId = storageAccountSubscriptionId; if (AzureCommunicator.IsStorageAccountInVNet(model.StorageAccountResourceId)) { Guid?principalId = Communicator.AssignServerIdentityIfNotAssigned(model.ResourceGroupName, model.ServerName); AzureCommunicator.AssignRoleForServerIdentityOnStorageIfNotAssigned(model.StorageAccountResourceId, principalId.Value, RoleAssignmentId); } else { PolicizePublicStorageInfo(model, policy); } }
private void PolicizeStorageInfo(ServerAuditModel model, dynamic policy) { ExtractStorageAccountProperties(model.StorageAccountResourceId, out string storageAccountName, out Guid storageAccountSubscriptionId); policy.StorageEndpoint = GetStorageAccountEndpoint(storageAccountName); policy.StorageAccountSubscriptionId = storageAccountSubscriptionId; if (AzureCommunicator.IsStorageAccountInVNet(model.StorageAccountResourceId)) { Guid?principalId = Communicator.AssignServerIdentity(model.ResourceGroupName, model.ServerName); AzureCommunicator.AssignRoleForServerIdentityOnStorage(model.StorageAccountResourceId, principalId.Value, RoleAssignmentId); } else { policy.IsStorageSecondaryKeyInUse = model.StorageKeyType == StorageKeyKind.Secondary; policy.StorageAccountAccessKey = AzureCommunicator.RetrieveStorageKeysAsync(model.StorageAccountResourceId).GetAwaiter().GetResult()[model.StorageKeyType]; } if (model.RetentionInDays != null) { policy.RetentionDays = (int)model.RetentionInDays; } }