### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

LocalStack does not validate the KMS key when do S3 ops `put-object` or `get-object` even configured required environment variables:
```
environment:
      - PROVIDER_OVERRIDE_S3=asf
      - S3_SKIP_KMS_KEY_VALIDATION=0
```
Had similar issue here https://github.com/localstack/localstack/issues/7782 got resolved but still facing the problem. 

### Expected Behavior

LocalStack should throw either `KMS.DisabledException` or `KMS.KMSInvalidStateException` when `KeyState` is `Disabled` or `PendingDeletion`.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)
docker-compose.yml

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)
1.  My LocalStack not pointing default `4566` so I have to do `export EDGE_PORT=<PORT>`.
2. Create the key in `ap-south-1` region:
```
awslocal kms create-key --description "byok confluence" --region ap-south-1
```
3. Get the above key `Arn` and export in env var: `export KEY_ID=<Arn>`

Now, I have two scenarios, one is disable the key and another is schedule the key deletion.

**Scenario 1**
1. Disable the key:
```
awslocal kms disable-key --key-id "$KEY_ID" --region ap-south-1
```
2. Run the command to confirm the key is disabled, i.e. `"KeyState": "Disabled"`:
```
awslocal kms describe-key --key-id "$KEY_ID" --region ap-south-1
```
Output: 
```
{
    "KeyMetadata": {
        "AWSAccountId": "000000000000",
        "KeyId": "f0e44ead-305f-4f7d-a492-e93ac8e9bda9",
        "Arn": "arn:aws:kms:ap-south-1:000000000000:key/f0e44ead-305f-4f7d-a492-e93ac8e9bda9",
        "CreationDate": 1685650954.265076,
        "Enabled": false,
        "Description": "byok confluence",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Disabled",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegion": false
    }
}
```
3. Calling `put-object` went through which is not expected since it needs to throw `KMS.DisabledException`:
```
awslocal s3api put-object --bucket <bucket-name> --key test.json --server-side-encryption aws:kms --ssekms-key-id "$KEY_ID" --body test.json
```
Output:
```
{
    "ETag": "\"d56d80665de6de5b29e9b5c9c907f02f\"",
    "ServerSideEncryption": "aws:kms",
    "VersionId": "1e9973de-eec2-4b69-bc5f-3b7492eb250c",
    "SSEKMSKeyId": "arn:aws:kms:ap-south-1:000000000000:key/f0e44ead-305f-4f7d-a492-e93ac8e9bda9"
}
``` 
Similarly calling `get-object` using `awslocal s3api get-object --bucket <bucket-name> --key test.json output.txt` went through no errors out.
 
**Scenario 2**
1. Schedule the key deletion:
```
awslocal kms schedule-key-deletion --key-id "$KEY_ID" --pending-window-in-days 7 --region ap-south-1
```
2. Run the command to confirm the key is pending deletion, i.e. `"KeyState": "PendingDeletion"`:
```
awslocal kms describe-key --key-id "$KEY_ID" --region ap-south-1
```
Output:
```
{
    "KeyMetadata": {
        "AWSAccountId": "000000000000",
        "KeyId": "f0e44ead-305f-4f7d-a492-e93ac8e9bda9",
        "Arn": "arn:aws:kms:ap-south-1:000000000000:key/f0e44ead-305f-4f7d-a492-e93ac8e9bda9",
        "CreationDate": 1685650954.265076,
        "Enabled": false,
        "Description": "byok confluence",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "PendingDeletion",
        "DeletionDate": 1686256290.104983,
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegion": false
    }
}
```
3. Similar to above scenario 1 no errors out when calling `put-object` and `get-object`.

### Environment

```markdown
- OS: Apple M1 Pro, 13.3.1 (a) (22E772610a).
- LocalStack: 1.4.0.
```


### Anything else?

_No response_
import time
from io import BytesIO
from operator import itemgetter
from typing import TYPE_CHECKING
from urllib.parse import SplitResult, parse_qs, quote, urlencode, urlparse, urlunsplit
from zoneinfo import ZoneInfo
import boto3 as boto3
import pytest
import 
import xmltodict
from boto3.s3.transfer import KB, TransferConfig
from botocore import UNSIGNED
from botocore.auth import SigV4Auth
from botocore.client import Config
from botocore.exceptions import ClientError
from localstack import config, constants
from localstack.aws.api.s3 import StorageClass
from localstack.config import LEGACY_S3_PROVIDER
from localstack.constants import (
    LOCALHOST_HOSTNAME,
    S3_VIRTUAL_HOSTNAME,
    SECONDARY_TEST_AWS_ACCESS_KEY_ID,
    SECONDARY_TEST_AWS_REGION_NAME,
    SECONDARY_TEST_AWS_SECRET_ACCESS_KEY,
    TEST_AWS_ACCESS_KEY_ID,
    TEST_AWS_SECRET_ACCESS_KEY,
)
from localstack.services.awslambda.lambda_utils import (
    LAMBDA_RUNTIME_NODEJS14X,
    LAMBDA_RUNTIME_PYTHON39,