**Use case**
With S3, you have to send the header `x-amz-server-side-encryption-customer-key` and `x-amz-server-side-encryption-customer-key-md5` if the resource is server side encrypted.

https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeysSSEUsingRESTAPI.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html

**Describe the solution you'd like**
Ability to set this in the query.
{
    std::lock_guard lock(mutex);
    settings.clear();
    if (!config.has(config_elem))
        return;
    Poco::Util::AbstractConfiguration::Keys config_keys;
    config.keys(config_elem, config_keys);
    for (const String & key : config_keys)
    {
        if (config.has(config_elem + "." + key + ".endpoint"))
        {
            auto endpoint = config.getString(config_elem + "." + key + ".endpoint");
            auto access_key_id = config.getString(config_elem + "." + key + ".access_key_id", "");
            auto secret_access_key = config.getString(config_elem + "." + key + ".secret_access_key", "");
            std::optional<bool> use_environment_credentials;
            if (config.has(config_elem + "." + key + ".use_environment_credentials"))
            {
                use_environment_credentials = config.getBool(config_elem + "." + key + ".use_environment_credentials");
            }
            HeaderCollection headers;
            Poco::Util::AbstractConfiguration::Keys subconfig_keys;
            config.keys(config_elem + "." + key, subconfig_keys);