<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def _get_block_blob_service(kwargs=None):
    '''
    Get the block blob storage service.
    '''
    resource_group = kwargs.get('resource_group') or config.get_cloud_config_value(
                         'resource_group',
                         get_configured_provider(), __opts__, search_global=False
                     )
    sas_token = kwargs.get('sas_token') or config.get_cloud_config_value(
                    'sas_token',
                    get_configured_provider(), __opts__, search_global=False
                )
    storage_account = kwargs.get('storage_account') or config.get_cloud_config_value(
                          'storage_account',
                          get_configured_provider(), __opts__, search_global=False
                      )
    storage_key = kwargs.get('storage_key') or config.get_cloud_config_value(
                      'storage_key',
                      get_configured_provider(), __opts__, search_global=False
                  )

    if not resource_group:
        raise SaltCloudSystemExit(
            'A resource group must be specified'
        )

    if not storage_account:
        raise SaltCloudSystemExit(
            'A storage account must be specified'
        )

    if not storage_key:
        storconn = get_conn(client_type='storage')
        storage_keys = storconn.storage_accounts.list_keys(resource_group, storage_account)
        storage_keys = {v.key_name: v.value for v in storage_keys.keys}
        storage_key = next(six.itervalues(storage_keys))

    cloud_env = _get_cloud_environment()

    endpoint_suffix = cloud_env.suffixes.storage_endpoint

    return BlockBlobService(storage_account, storage_key,
                            sas_token=sas_token,
                            endpoint_suffix=endpoint_suffix)