Конечная точка AWS DMS S3 SSE-KMS (исключение InvalidParameterCombinationException)

#aws-kms #aws-dms

#amazon-kms #aws-dms

Вопрос:

Пытаюсь использовать Lambda / Boto3 для изменения конечной точки.

Согласно документации:

 response = client.modify_endpoint(
    EndpointArn='string',
    S3Settings={
        'EncryptionMode': 'sse-s3'|'sse-kms',
        'ServerSideEncryptionKmsKeyId': 'string',
   }
  

Однако, когда я устанавливаю ‘sse-kms’ и передаю свой KeyID, я получаю эту ошибку обратно :

[ОШИБКА] Ошибка интерфейса: произошла ошибка (исключение InvalidParameterCombinationException) при вызове операции ModifyEndpoint: поддерживается только режим шифрования SSE_S3. Обратная трассировка (последний вызов): Файл «/var/task/main.py «, строка 16, в основном ответе = client.modify_endpoint( файл «/var/runtime/botocore/client.py «, строка 316, в _api_call возвращает self._make_api_call(operation_name, kwargs) файл «/var/runtime/botocore/client.py «, строка 635, в _make_api_call вызывает ошибку class(parsed_response, operation_name)

Вот мой полный лямбда:

 def main(event,context):
 
    client = boto3.client('dms')

    response = client.modify_endpoint(
        EndpointArn = 'arn:aws:dms:us-east-1:123456789012:endpoint:xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        ExtraConnectionAttributes = 'cdcPath=undefined',
        S3Settings = {
            'CompressionType': 'none', 
            'DataFormat': 'parquet', 
            'EncryptionMode': 'sse-kms', 
            'ServerSideEncryptionKmsKeyId': 'arn:aws:kms:us-east-1:772631637424:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
        }
    )
  

Комментарии:

1. Каков существующий режим шифрования? Используется ли она по умолчанию или sse-kms?

2. Если это SSE_S3, то вы не можете изменить его на SSE_KMS

3. Хорошо, спасибо. Я создавал конечную точку с помощью Terraform, но там много ошибок между s3_settings и extra_connection_attributes, кажется, я не могу создать это со всеми настройками, которые мне нужны. Может быть, я просто попробую создать всю конечную точку с помощью Boto.

Ответ №1:

Похоже, что вы создали или ваш существующий EncryptionMode конечной точки, для которого установлено значение SSE_S3. Согласно этому документу, вы не можете перейти с SSE_S3 на SSE_KMS.

Для операции ModifyEndpoint вы можете изменить существующее значение параметра EncryptionMode с SSE_KMS на SSE_S3. Но вы не можете изменить существующее значение с SSE_S3 на SSE_KMS.